android学习路线

初级阶段

技术要求:

  • 四大组件Activity,Service, BroadcastReceive,ContentProvider的使用.参考文章
  • Fragment
  • ui设计
    • 各类layout
    • 简单自定义view,各种用户界面
    • 动画[包括valueAnimator,ObjectAnimator]
    • Bitmap,Canvas
  • 数据存储
    • sharePerference
    • SQLite3,GreenDao,Realm

书籍推荐:

  • 《Thinking in java》 经典

网站推荐:

中级阶段

技术要求

  • 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在不同版本上的表现细节
  • 线程池的细节和参数配置

总结

  • 系统核心机制
  • 基础知识点的细节
  • 设计模式和架构
  • 了解这张图的底层细节
    image

推荐书籍

  • 《android内核剖析》