前言
正在准备 Android 面试的小伙伴千万不要错过哦!在这个金九银十的求职高峰期,小编给大家分享一些收集整理的 Android 大厂面试资料。祝大家都能有个好工作。
面试题知识点从基础到架构进阶,包含了BAT等一线互联网公司面试被问到的题目,涵盖了初中高级安卓技术点。文章中所列主要为大纲部分,详细内容可以看文章末尾获取!
如果你熟练掌握本文中列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。
一,Java 相关高频面试解析
- HashMap
- ArrayList
- LinkedList
- Hashset 源码分析
- 内存模型
- 垃圾回收算法(JVM)
- 垃圾回收机制和调用 System.gc()的区别?
- 类加载过程
- 反射
- 多线程和线程池
- HTTP、HTTPS、TCP/IP、Socket 通信、三次握手四次挥手过程
- 设计模式
- 断点续传
- Java 四大引用
- Java 的泛型
- final、finally、finalize 的区别
- 接口、抽象类的区别
二,Android 面试题解析大全
- 自定义 View
- 事件拦截分发
- 解决过的一些性能问题,在项目中的实际运用
- 性能优化工具
- 讲讲你自己项目中做过的性能优化
- Http[s] 请求慢的解决办法
- 缓存自己如何实现
- MVC 、MVP 、MVVM
- Handler、ThreadLocal、AsyncTask 、IntentService 原理及应用
- Gradle(y Groovy 语法、e Gradle 插件开发基础)
- 热修复、插件化
- 组件化架构思路
- 系统打包流程
- Android 有哪些存储数据的方式
- SharedPrefrence 源码和问题点
- sqlite 相关
- 如何判断一个APP 在前台还是后台?
- 混合开发
Android Framework 高频面试题
① AMS、PMS
- AMS 概述
- AMS 的启动流程
- AMS 与进程启动
- AMS 家族
- PMS 之 SyetemServer 处理部分
- PMS 构造方法
② Activity 启动流程,App 启动流程
- Activity 的启动模式
- 什么是 Zygote 进程
- Zygote 进程的启动流程
- SystemServer 进程启动流程 启动服务
③ Binder 机制(IPC、AIDL 的使用)
- 什么是 AIDL 以及如何使用
- AIDL的全称是什么?如何工作?能处理哪些类型的数据?
- android 的 IPC 通信方式,线程(进程间)通信机制有哪些?
- 为什么使用 Parcelable,好处是什么?
三,网络相关面试题
① HTTP/HTTPS
- HTTP 与 与 HTTPS 有什么区别?
- http1.1 和 http1.0 及 2.0 的区别?
- SPDY
- https 请求慢的解决办法
- Request 组成
- Response 组成
- 谈谈对 http 缓存的了解。
- http 长连接。
- https 加密原理。
- HTTPS 的 中的 SSL 握手建立过程
- HTTPS 如何防范中间人攻击?
- 有哪些响应码,分别都代表什么意思?
② TCP/UDP
- 为什么 TCP 要经过三次握手,四次挥手?
- TCP 可靠传输原理实现(滑动窗口)。
- TCP 和 UDP 的区别?
- 如何设计在 UDP 证 上层保证 UDP 的可靠性传输?
③ 其它重要网络概念
- socket 断线重连怎么实现,心跳机制又是怎样实现?
- Cookie 与 Session 的作用和原理
- IP 报文中的内容
- 浏览器输入地址到返回结果发生了什么?
四,三方源码高频面试总结
- Glide :加载、缓存、LRU 算法
- LeakCanary
- ARouter
- RXJava (RxJava 的线程切换原理)
- Retrofit(Retrofit 在 OkHttp 上做了哪些封装?动态代理和静态代理的区别,是怎么实现的)
- OkHttp
五,Kotlin 相关
- 从原理分析 Kotlin 的延迟初始化: lateinit var 和 by lazy
- From Java To Kotlin
- 怎么用 Kotlin 去提高生产力:Kotlin Tips
- 使用 Kotlin Reified 让泛型更简单安全
- Kotlin 里的 Extension Functions 实现原理分析
- Kotlin 系列之顶层函数和属性
- Kotlin 兼容 Java 遇到的最大的 “坑”
- Kotlin 的协程
- Kotlin 协程「挂起」的本质
- 到底什么是「非阻塞式」挂起?协程真的更轻量级吗?
- 资源混淆是如何影响到 Kotlin 协程的
- 破解 Kotlin 协程
六,Flutter 相关
- Dart 当中的 「..」表示什么意思?
- Dart 的作用域
- Dart 是不是单线程模型?是如何运行的?
- Dart 是如何实现多任务并行的?
- 说一下 Dart 异步编程中的 Future 关键字?
- 说一下 Dart 异步编程中的 Stream 数据流?
- Stream 有哪两种订阅模式?分别是怎么调用的?
- await for 如何使用?
- 说一下 mixin 机制?
- 请简单介绍下 Flutter 框架,以及它的优缺点?
- Flutter 的理念架构
- FFlutter 的 FrameWork 层和 Engine 层,以及它们的作用
- Widget、State、Context 概念
- 简述 Widget 的 StatelessWidget 和 StatefulWidget 两种状态组件类
- StatefulWidget 的生命周期
- 简述 Widgets、RenderObjects 和 Elements 的关系
- 什么是状态管理,你了解哪些状态管理框架?
- 简述 Flutter 的绘制流程
- 简述 Flutter 的线程管理模型
- 简述 Flutter 的热重载
Android 大厂面试资料传送门
最后
机会都是留给有准备的人,只有充足的准备,才可能让自己可以在候选人中脱颖而出。备战2021金九银十,各位做好准备了吗?