初级工程师

技术要求:
- 基本知识点
比如四大组件如何使用、如何创建Service、如何进行布局、简单的自定义View、动画等常见技术
- 书籍推荐
《第一行代码 Android》、《疯狂Android》

花一年时间把Android官方文档中的training和guide看一遍

中级工程师

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

阅读进阶书籍,阅读Android源码,阅读官方文档并尝试自己写相关的技术文章,需要有一定技术深度和自我思考。在这个阶段的学习过程中,有2个点是比较困扰大家的,一个是阅读源码,另一个是自定义View以及滑动冲突。

如何阅读源码呢?这是个头疼的问题,但是源码必须要读。阅读源码的时候不要深入代码细节不可自拔,要关注代码的流程并尽量挖掘出对应用层开发有用的结论。另外仔细阅读源码中对一个类或者方法的注释,在看不懂源码时,源码中的注释可以帮你更好地了解源码中的工作原理,这个过程虽然艰苦,但是别无他法。

如何玩转自定义View呢?我的建议是不要通过学习自定义view而学习自定义view。为什么这么说呢?因为自定义view的种类太多了,各式各样的绚丽的自定义效果,如何学的玩呢!我们要透过现象看本质,更多地去关注自定义view所需的知识点,这里做如下总结:
- 搞懂view的滑动原理
- 搞懂如何实现弹性滑动
- 搞懂view的滑动冲突
- 搞懂view的measure、layout和draw
- 然后再学习几个已有的自定义view的例子
- 最后就可以搞定自定义view了,所谓万变不离其宗

大概再需要1-2年时间,即可达到高级工程师的技术水平。《Android开发艺术探索》和《Android群英传》可以缩短这个过程为0.5-1年。

技术要求:
- 稍微深入的知识点
AIDL、Messenger、Binder、多进程、动画、滑动冲突、自定义View、消息队列等
- 书籍推荐
《Android开发艺术探索》、《Android群英传》

高级工程师

为了成为Android资深工程师,需要学习的东西就更多了,并且有些并不是那么具体了,如下所示:
- 继续加深理解”稍微深入的知识点“中所定义的内容
- 了解系统核心机制:
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学习路线整理相关推荐

  1. Android学习路线总结

    title: Android学习路线总结,绝对干货 tags: Android学习路线,Android学习资料,怎么学习android grammar_cjkRuby: true --- 一.前言 不 ...

  2. Android:学习路线总结,绝对干货

    转载请注明出处:http://blog.csdn.net/lowprofile_coding/article/details/51252781 一.前言 不知不觉自己已经做了几年开发了,由记得刚出来工 ...

  3. Android学习路线_工具篇(一)简单的编辑器

    工欲善其事,必先利其器.工具,是人类进化的一大助力,善于制造与使用工具,可以加快我们学习的速度.工具在人类的进化之路上随着人类共同进化,原始的人类需要的是原始的工具,先进的工具对于原始人来说也许是个占 ...

  4. Android学习路线的归纳总结,绝对干货!

    我们在学习Android的过程中也是一样的.本文将针对Android学习的路线做一个全名的归纳及总结!希望可以帮到你们,让你们少走弯路,提取一些工作中经常用到的技术! Android学习路线一:学习知 ...

  5. Android学习路线

    Android学习路线 第一阶段:Java面向对象编程 1.Java基本数据类型与表达式,分支循环.  2.String和StringBuffer的使用.正则表达式.  3.面向对象的抽象,封装,继承 ...

  6. Android学习路线总结,绝对干货

    一.前言 不知不觉自己已经做了几年开发了,由记得刚出来工作的时候感觉自己能牛逼,现在回想起来感觉好无知.懂的越多的时候你才会发现懂的越少. 如果你的知识是一个圆,当你的圆越大时,圆外面的世界也就越大. ...

  7. Android学习路线_梳理

    Android入门第一步,将需要学习的路线整体过一遍,了解学习的前置条件,明了自己的学习目标,胸有成竹才能势如破竹.本文中每个小点将单独出一篇文章,每篇文章将链路到此文,后续将持续更新. 1 工具篇 ...

  8. Android学习路线_入门篇(一)编写简单的APP

    Android学习入门的目标就是能够编写出一个完整的APP,有可交互的界面,有基本的功能,有本地的数据库,有与后台的数据交换.在本文我们会了解到如何在AndroidStudio中新建.运行.打包一个A ...

  9. android学习路线:如何成长为高级工程师

    前言 之所以写这篇文章,是因为最近博客和我的开发群( 215680213 )中,不少小伙伴都让我讲讲android学习路线,所以我决定写一篇博客,来说明这个问题.既然有不少小伙伴来咨询这个问题,说明大 ...

最新文章

  1. ml不是内部或外部命令_美国飞机制造商波音公司采用VR技术训练宇航员 ; Snap Lens Studio推出支持自定义ML驱动的Snapchat镜头...
  2. Centos7 上安装 mysql5.7
  3. python买什么书好-python看什么书好
  4. C++ Primer 5th笔记(chap 16 模板和泛型编程)模板实参推断
  5. HDU - 3966 Aragorn's Story(树链剖分+线段树)
  6. [respberry pi3][suse] 配置docker
  7. Linux配置自动时间同步
  8. codeM 2018 资格赛
  9. 从网上自学老男孩python全栈的笔记-经历
  10. 解读 PackageManager.resolveActivity
  11. solidworks2016安装教程及破解方法
  12. 皮克定理(格点三角形求面积或求三角形里格点(整点)个数)
  13. win7本地登录计算机,win7系统绑定微软账户到本地电脑上的具体办法
  14. python中mysqldb模块_Python学习之MySQLdb模块
  15. 4G信号变卡的主要原因
  16. 如何通过短视频源码快速开发短视频APP
  17. 提示猜数字范围python_Python 猜数字游戏
  18. 简单工厂、工厂方法、抽象工厂
  19. C语言学习笔记1——C语言程序
  20. 厉害了!麟哥新书登顶京东销量排行榜!

热门文章

  1. html纵向滚动条隐藏,css隐藏滚动条(横向,坚向)
  2. 企业财务制度二--会计科目名称和编号(一)1501 固定资产(转载)
  3. 抖音快手网红便签软件是哪款?
  4. 解析 ASN1格式0x80 问题
  5. 【建议收藏】18个适合程序员的在线学习网站,每个我都帮您试过了!
  6. OpenCV双目标定校正及三维重建的一些经验之谈
  7. AtCoder Beginner Contest 260 A~F 题解
  8. skew width_css3skew
  9. 电脑拓展触摸屏时,在触摸屏操作,相应的不是触摸屏
  10. 【文末福利】我用英飞凌的PSoC™ 62搞了点智能家居的创意