成为Android工程师的基本要求

1. 初级Android工程师(1年)
官方文档 : traning,guide 阅读一遍
   做笔记
   动手抄几个例子(看API Demos)
   四大组件
   如何创建Service
   如何进行布局
   简单的自定义View
   动画

2. 中级Android工程师(1-2年)
   AIDL :熟悉AIDL 理解原理 懂transact和onTransact的区别
   Binder:从Java层大概理解Binder的工作原理,懂Parcel对象的使用。
   多线程:熟练掌握多进程的运行机制,懂Messenger、Socket等;
   事件分发:弹性滑动、滑动冲突等;
   玩转View:View的绘制原理、各种自定义View;
   动画系列:熟悉View动画和属性动画的不同点,懂属性动画的工作原理;
   懂性能优化、熟悉mat等工具
   懂点常见的设计模式

  自定义View :我的建议是不要通过学习自定义view而学习自定义view。为什么这么说呢?因为自定义view的种类太   多了,各式各样的绚丽的自定义效果,如何学的玩呢!我们要透过现象看本质,更多地去关注自定义view所需的知 识点,这里做如下总结:
  搞懂view的滑动原理

  搞懂如何实现弹性滑动

  搞懂view的滑动冲突

  搞懂view的measure、layout和draw

  我个人认为通过《Android开发艺术探索》和《Android群英传》可以缩短这个过程为0.5-1年。

  技术要求:
  稍微深入的知识点:
  AIDL、Messenger、Binder、多进程、动画、滑动冲突、自定义View、消息队列等

3. 高级Android工程师(3-5年)

  继续加深理解”稍微深入的知识点“中所定义的内容
   AIDL、Messenger、Binder、多进程、动画、滑动冲突、自定义View、消息队列等

    了解系统核心机制:
    1. 了解SystemServer的启动过程

   2.  了解主线程的消息循环模型

   3.  了解AMS和PMS的工作原理

   4.   能够回答问题”一个应用存在多少个Window?“

   5.   了解四大组件的大概工作流程

   6. ... ...

基本知识点的细节

1. Activity的启动模式以及异常情况下不同Activity的表现

2. Service的onBind和onReBind的关联

3. onServiceDisconnected(ComponentName className)和binderDied()的区别

4. AsyncTask在不同版本上的表现细节

5. 线程池的细节和参数配置

6. …


熟悉设计模式,有架构意识


学习方法:

这个时候已经没有太具体的学习方法了,无非就是看书、看源码和做项目,平时多种总结,尽量将知识融会贯通从而形成一种体系化的感觉。同时这个阶段对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习。关于设计模式的学习,最近一本新书推荐给大家《Android 源码设计模式解析与实战》,既可以学习设计模式,又可能体会到Android源码中的设计思想,我最近也在阅读此书。

高级Android工程师技术要求:

- 稍微深入的知识点

- 系统核心机制

- 基本知识点的细节

- 设计模式和架构

 书籍推荐

《Android开发艺术探索》、《Android 源码设计模式解析与实战》、《Android内核剖析》

你可能感兴趣的:(Android高级)