Android 核心考点全面梳理
一、四大组件深入
1. Activity 生命周期和启动模式
- 完整生命周期(onCreate → onDestroy)
- 可见生命周期(onStart → onStop)
- 前台生命周期(onResume → onPause)
- 异常情况下的生命周期(配置变更、内存不足)
- 四种启动模式:standard、singleTop、singleTask、singleInstance
- taskAffinity 的作用
- onNewIntent() 调用时机
- Activity 的启动流程(ActivityThread → Instrumentation)
2. Service 深度理解
- Service 的两种启动方式:startService() 和 bindService()
- Service 生命周期(两种启动方式的区别)
- IntentService 原理和源码
- 前台 Service 和 Notification
- Service 保活方案(前台服务、双进程守护、JobScheduler)
- AIDL 原理和 Binder 机制
- Service 与进程间通信
3. BroadcastReceiver
- 两种注册方式:静态注册和动态注册
- 有序广播和无序广播
- 本地广播 LocalBroadcastManager
- 广播的粘性(Sticky)问题
- 广播的安全性问题(权限控制)
4. ContentProvider
- ContentProvider 的 URI 机制
- 数据访问的线程安全问题
- ContentObserver 的使用
- ContentProvider 的启动优化
- 跨进程数据共享的安全性
二、View 系统全面
1. View 的绘制流程
- ViewRootImpl 的作用
- performTraversals() 的三个阶段
- MeasureSpec 的三种模式
- 自定义 View 的测量、布局、绘制
- invalidate() 和 requestLayout() 的区别
- 硬件加速的原理
2. View 的事件体系
- 触摸事件的分发机制
- 滑动冲突的解决方案
- 嵌套滑动机制
- 多点触控的处理
- 手势识别 GestureDetector
3. 动画系统
- 补间动画(Tween Animation)的局限
- 属性动画(Property Animation)原理
- ValueAnimator 和 ObjectAnimator
- 插值器(Interpolator)和估值器(TypeEvaluator)
- 转场动画(Transition Animation)
- Lottie 动画框架原理
4. RecyclerView 深度
- RecyclerView 的四级缓存
- LayoutManager 的工作原理
- ItemDecoration 和 ItemAnimator
- 局部刷新和 DiffUtil
- 预加载机制
- 多类型 Item 的处理
三、性能优化体系
1. 内存优化
- 内存泄漏检测和解决
- LeakCanary 原理
- 内存抖动分析
- 大图加载优化(Bitmap 压缩、采样)
- 对象池和内存复用
- 弱引用、软引用的使用场景
2. UI 性能优化
- 过度绘制检测和优化
- 布局层级优化(ConstraintLayout)
- 视图复用
- 异步布局(AsyncLayoutInflater)
- 启动白屏优化
3. 网络优化
- HTTP/2 的优势
- 网络请求合并和复用
- 图片懒加载和预加载
- CDN 加速原理
- DNS 优化(HTTPDNS)
4. 启动优化
- 冷启动、温启动、热启动
- 启动耗时分析(TraceView、Systrace)
- 启动阶段任务优化(异步初始化、延迟初始化)
- MultiDex 优化
- 启动白屏优化
5. 存储优化
- SharedPreferences 的缺陷和优化
- MMKV 原理
- SQLite 性能优化
- 文件存储优化
- 数据库升级策略
四、网络编程
1. HTTP 协议
- HTTP 1.0/1.1/2.0 区别
- HTTPS 握手过程
- 对称加密和非对称加密
- 证书机制
- 长连接和短连接
2. 网络框架
- OkHttp 原理(拦截器链、连接池)
- Retrofit 动态代理原理
- Glide 图片加载框架
- 网络请求的封装和复用
- 断点续传实现
3. WebSocket
- WebSocket 握手过程
- 心跳机制
- 消息重连机制
- 与 HTTP 轮询对比
五、多线程与并发
1. Java 并发基础
- synchronized 原理
- volatile 关键字
- CAS 原理和 ABA 问题
- AQS 框架原理
- ThreadLocal 原理
2. Android 线程模型
- Handler 机制
- AsyncTask 原理和问题
- IntentService 原理
- Executor 框架
- 线程池参数配置
3. Kotlin 协程
- 协程的挂起和恢复原理
- 协程上下文(CoroutineContext)
- 协程调度器(Dispatchers)
- Flow 和 LiveData 对比
- Channel 和 Actor 模型
六、架构设计
1. MVC/MVP/MVVM
- 三种架构模式的对比
- DataBinding 原理
- ViewModel 和 LiveData 原理
- 双向绑定的实现
2. 组件化
- 组件化路由(ARouter 原理)
- 组件间通信
- 组件独立调试
- 资源冲突解决
3. 插件化
- 类加载机制(双亲委派)
- 资源加载原理
- 四大组件插件化
- 热修复原理
4. Jetpack 组件
- Lifecycle 原理
- ViewModel 的生命周期管理
- Room 数据库框架
- WorkManager 后台任务
- Navigation 导航组件
七、存储与数据库
1. SQLite 深度
- SQLite 事务原理
- WAL 模式
- 索引优化
- 数据库升级策略
- Room 框架原理
2. 文件存储
- 内部存储和外部存储
- 文件权限管理
- 大文件分片上传
- 文件加密存储
3. 序列化
- Serializable 原理
- Parcelable 原理和性能对比
- Protobuf 和 FlatBuffers
- JSON 解析优化
八、安全与加密
1. 应用安全
- 代码混淆和加固
- 反编译防护
- 签名校验
- SO 文件加密
2. 数据安全
- 对称加密(AES)
- 非对称加密(RSA)
- 数字签名
- HTTPS 证书校验
3. 通信安全
- 数据加密传输
- 防中间人攻击
- Token 安全机制
- OAuth 2.0 授权流程
九、新技术与趋势
1. Kotlin 高级特性
- 扩展函数原理
- 高阶函数和内联函数
- 协程原理
- 密封类和泛型
- DSL 构建
2. Compose
- Composable 函数原理
- 状态管理
- 重组机制
- 与传统 View 系统对比
3. Flutter 混合开发
- Flutter 引擎原理
- 原生与 Flutter 通信
- 性能对比
- 包体积优化
十、系统原理
1. Binder 机制
- Binder 驱动原理
- 一次拷贝机制
- AIDL 生成代码分析
- ServiceManager 原理
2. AMS(ActivityManagerService)
- AMS 的启动流程
- Activity 栈管理
- 进程管理策略
- 四大组件启动流程
3. WMS(WindowManagerService)
- Window 添加流程
- Surface 原理
- 窗口层级管理
- 动画系统原理
4. PMS(PackageManagerService)
- APK 安装流程
- 权限管理
- 组件信息收集
- 应用升级机制
十一、调试与监控
1. 性能监控
- APM 监控体系
- 卡顿监控原理
- 内存泄漏监控
- 网络监控
- 崩溃监控和上报
2. 调试工具
- Android Profiler 使用
- Systrace 原理
- TraceView 分析
- 内存分析工具
3. 单元测试
- JUnit 和 Mockito
- 单元测试架构
- UI 自动化测试
- 覆盖率统计
十二、设计模式
1. 创建型模式
- 单例模式(DCL、静态内部类)
- 建造者模式(AlertDialog)
- 工厂模式
2. 结构型模式
- 适配器模式(RecyclerView.Adapter)
- 装饰器模式(ContextWrapper)
- 代理模式(Retrofit)
3. 行为型模式
- 观察者模式(LiveData)
- 策略模式(属性动画插值器)
- 责任链模式(事件分发)
十三、算法与数据结构
1. 常用数据结构
- 数组和链表对比
- 哈希表实现原理
- 堆和优先队列
- 树结构(二叉树、红黑树)
2. 常用算法
- 排序算法(快排、堆排、归并)
- 查找算法(二分查找)
- 动态规划
- 回溯算法
3. Android 特有算法
- LRU 缓存算法(LruCache)
- 视图测量布局算法
- 任务调度算法
- 内存回收算法
十四、混合开发
1. WebView 深度
- WebView 性能优化
- JSBridge 原理
- 内核升级策略
- 内存泄漏处理
2. React Native
- JavaScript 桥接原理
- 原生组件封装
- 性能优化
- 热更新机制
3. 小程序容器
- 小程序架构原理
- 渲染机制
- 沙箱隔离
- 多实例管理
十五、工程化
1. 构建系统
- Gradle 构建流程
- Transform API
- 多渠道打包
- 插件开发
2. CI/CD
- Jenkins 流水线
- 自动化测试
- 代码规范检查
- 性能回归测试
3. 质量保障
- 代码审查
- 自动化测试
- 性能监控
- 线上问题追踪
十六、业务场景
1. 直播相关
- 推拉流协议(RTMP、HLS)
- 首屏优化
- 卡顿优化
- 连麦实现
2. IM 即时通讯
- 长连接维护
- 消息可靠投递
- 离线消息
- 消息加密
3. 音视频处理
- 音视频采集
- 编解码优化
- 滤镜处理
- 音画同步
4. 地图导航
- 地图渲染优化
- 路径规划算法
- 定位精度优化
- 离线地图
十七、开源框架原理
1. 主流框架
- OkHttp 拦截器链
- Retrofit 动态代理
- Glide 四级缓存
- ARouter 路由原理
- EventBus 原理
2. 架构组件
- LiveData 原理
- ViewModel 实现
- Room 编译时处理
- WorkManager 任务调度
十八、软技能
1. 系统设计
- 高并发系统设计
- 大数据量处理
- 分布式系统
- 容灾设计
2. 项目经验
- 复杂问题解决
- 性能优化案例
- 架构演进
- 团队协作
3. 职业发展
- 技术规划
- 团队管理
- 技术影响力
- 学习能力
十九、前沿技术
1. AI 相关
- TensorFlow Lite
- 模型压缩和优化
- 端侧推理
- AI 应用场景
2. 物联网
- 蓝牙通信
- MQTT 协议
- 设备管理
- 数据同步
3. AR/VR
- ARCore 原理
- 3D 渲染
- 手势识别
- 空间定位
二十、面试技巧
1. 自我介绍
- 突出技术亮点
- 结合项目经验
- 展现思考深度
2. 项目阐述
- STAR 法则
- 技术选型理由
- 遇到的挑战和解决方案
3. 算法面试
- 先确认需求
- 分析时间和空间复杂度
- 考虑边界条件
- 测试用例设计
4. 反问环节
- 团队技术栈
- 业务发展方向
- 技术挑战
- 团队文化
这个全面的考点清单几乎涵盖了 Android 开发的所有重要领域。每个点都可以深入展开,形成完整的知识体系。建议根据自己的实际情况,有针对性地进行深入学习和准备。