初级阶段
技术要求:
- 四大组件Activity,Service, BroadcastReceive,ContentProvider的使用.参考文章
- Fragment
- ui设计
- 各类layout
- 简单自定义view,各种用户界面
- 动画[包括valueAnimator,ObjectAnimator]
- Bitmap,Canvas
- 数据存储
- sharePerference
- SQLite3,GreenDao,Realm
书籍推荐:
- 《Thinking in java》 经典
网站推荐:
- google api guides官方api,不知道怎么用,就看官方的
- 极客学院Android wiki非常全面
- Stack Overflow android tag
中级阶段
技术要求
- aidl:熟悉aidl,理解其工作原理,懂transact和onTransact的区别
- Binder:从java层大概理解Binder的工作原理,懂Parcel对象的使用
- 多进程:多进程的运行机制,消息队列,Messenger,Socket
- 事件分发:弹性滑动 滑动冲突
- 玩转view: view的绘制原理,各种自定义view
- 动画系列:熟悉view动画和属性动画的不同点,懂ObjectAnimator的工作原理
- 懂性能优化,熟悉mat等工具
- 熟悉常见的设计模式,比如mvp,mvvm
- 熟悉rxjava响应式编程
学习方法
- 阅读源码
- view以及事件分发
- view的滑动原理
- 如何实现弹性滑动
- view的滑动冲突
- view的measure,layout,draw
- 自己实现几个经典的view
高级阶段
技术要求
- 了解SystemSever的启动过程
- 了解AndroidFramework层的内容
- 了解主线程的消息循环模型
- 了解ams和psm的工作原理
- 了解Windows
- Activity的启动模式以及异常情况下不同Activity的表现
- Service的onBind和onReBind的关联
- onServiceDisconnected(ComponentName className)和binderDied()的区别
- AsyncTask在不同版本上的表现细节
- 线程池的细节和参数配置
总结
- 系统核心机制
- 基础知识点的细节
- 设计模式和架构
- 了解这张图的底层细节
推荐书籍
- 《android内核剖析》