A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Android工程师成长路线全攻略

涨薪机密——潮流新技术、新框架资源以后不定期更新,
   
Android开发给人的感觉是门槛很低,因此有不少人会说Android很简单,实际上Android开发即简单也不简单。简单是因为它入门快、上手简单;不简单是因为Android的知识点比较琐碎,如何从琐碎的知识点中理解Android的本质并形成一个完整的知识体系,这是不简单的。

相信不少开发者会有这种感觉,Android的好多知识点自己都知道,但又不是特别懂,这就是碎片化知识未形成一个完整体系的表现。
如何对Android建立全面的理解?需要一种有效的学习方式,在学习过程中知道哪些知识点需要深挖、哪些知识点需要融会贯通、哪些知识点了解即可。有关Android学习路线是一个深度话题。黑马程序员Android学科参考众多学习者和开发者在Android应用层的学习过程,总结了一个适合大多数人的学习路线,整体路线如下图所示。
初级工程师
1. Java基础知识
对于完全没接触过Android开发的人,需要怎么学习才能成为初级工程师呢?这时候,黑马程序员本着毕业学员超越非一般Android工程师的水准要求,认为入门阶段需要掌握Java基础、一定的前端和JavaWeb知识。自学者通过一年左右的时间学习(此阶段在黑马程序员只需2个月,大大缩短了时间代价),相信大多数人都可以达到中级工程师的水平。中级工程师月薪可以达到15K。
总结来说,Java基础阶段要具备“Android工程师成长路线”图中“Java基础知识基本储备”模块所涉及内容。对Java基本的语法、面向对象及常用API有比较深入的理解。数据封装、读取写入和网络编程对任何领域而言,都是非常重要的数据层操作,因此, 要对集合、IO流、网络编程要非常熟悉。
2. 前端基本知识储备
大体上说,需要掌握“Html+CSS+JavaScript基础”模块知识,虽然前端知识不是必须,且在Android一般开发中用的不多,但对于后期结合H5混合开发能力的提升是有帮助的。
3.JavaWeb与数据库知识储备
这一部分的知识难度偏大,但与Android开发关联甚大, Android和JavaWeb项目的交互无处不在,如果想要实现Android在网络上与JavaWeb的交互,就要把JavaWeb的项目方法暴露在网络中,然后供Android的这一端调用,实现交互。
4.Android 核心基础
对Android的核心基本知识、结构、代码规范等都有了一个大概的了解,就可以写出一些简单的Activity了。这个阶段,Android开发很简单很好玩,通过在xml中摆放一些按钮文本框什么的就可以做一些界面了。
技术要求:
以Android技术知识来说,需要掌握:四大组件如何使用、如何创建Service、如何进行布局、简单的自定义View、动画等常见技术,将导图中的“Android核心基础”涵盖的知识点掌握了,就达到了这个层级的要求。另外,学好Android,官方文档是必须看的,既全面又权威。
总结一下,Android核心基础阶段,需要掌握的内容比较多,范围比较广,同时,要花比较长的时间把Android官方文档中的training和guide看一看,通过记笔记的方式做总结是不错的方式。
中级工程师
经过上一阶段的学习,跨越到成为Android中级工程师。到了中级工程师,已经可以在公司里胜任大部分开发工作,但是一些很重要的任务还不能一人承担起来,这时候需要学习的内容就很多了,如下所示:
◆ AIDL:熟悉AIDL,理解其工作原理,懂transact和onTransact的区别;
◆ Binder:从Java层大概理解Binder的工作原理,懂Parcel对象的使用;
◆ 多进程:熟练掌握多进程的运行机制,懂Messenger、Socket等;
◆ 事件分发:弹性滑动、滑动冲突等;
◆ 玩转View:View的绘制原理、各种自定义View;
◆ 动画系列:熟悉View动画和属性动画的不同点,懂属性动画的工作原理;
◆ 懂性能优化、熟悉mat等工具
◆ 懂点常见的设计模式
这个阶段须掌握图中“Android核心高级技术”;还要多阅读Android源码,阅读官方文档并尝试写技术文章,需要有一定技术深度和自我思考。在这个阶段的学习过程中,有2个点是比较困扰大家的,一个是阅读源码,另一个是自定义View以及滑动冲突。
如何阅读源码呢?阅读源码的时候不要深入代码细节不可自拔,要关注代码的流程并尽量挖掘出对应用层开发有用的结论。另外仔细阅读源码中对一个类或者方法的注释,在看不懂源码时,源码中的注释可以帮你更好地了解源码中的工作原理,这个过程虽然艰苦,但是别无他法,然而这个过程的收获也是其他学习方式不可替补的。
如何玩转自定义View呢?不要通过学习自定义view而学习自定义view。为什么这么说呢?因为自定义view的种类太多了,各式各样的绚丽的自定义效果,如何学的玩呢!要透过现象看本质,更多地去关注自定义view所需的知识点,这里做如下总结:
◆搞懂view的滑动原理
◆ 搞懂如何实现弹性滑动
◆ 搞懂view的滑动冲突
◆ 搞懂view的measure、layout和draw
◆ 然后再学习几个已有的自定义view的例子
◆ 最后就可以搞定自定义view了,所谓万变不离其宗
大概再需要1◆2年时间,即可达到高级工程师技术水平。注意,达到高级工程师技术水平不代表可以立刻成为高级工程师(受机遇、是否跳槽的影响),但是技术达到了,成为高级工程师只是很简单的事。
技术要求:
◆ 稍微深入的知识点: AIDL、Messenger、Binder、多进程、动画、滑动冲突、自定义View、消息队列等。
高级工程师
成为了梦寐以求的高级工程师,月薪可达到20k。这个时候的Android水平已经不错了,但是要达到资深工程师,月薪可以达到30k+。
为了成为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技术。

其他精华资源推荐:
平均薪资近12K,Android续写“刷薪”记录!
[持续更新]2016最新Android视频教程+源码+技巧/经验+软件+面试
为什么黑马程序员能给你2W的月薪黑马程序员:见Android 7.0发布,更见开发者

63 个回复

倒序浏览
非常好 谢谢
回复 使用道具 举报
收藏了,以后或许用的到
回复 使用道具 举报
有帮助!!!
回复 使用道具 举报
不错,支持
回复 使用道具 举报
666。。。。。
回复 使用道具 举报
楼主好帅,谢谢分享
回复 使用道具 举报
很好,顶一下 66666
回复 使用道具 举报
你又让我了解了不少安卓
回复 使用道具 举报
原本不知道毕业后能干什么,这个帖子让我了解了以后的路,谢谢
回复 使用道具 举报
我的安卓之路~
回复 使用道具 举报
学习了,学习 了
回复 使用道具 举报
学习了,顶
回复 使用道具 举报
5_282:}
回复 使用道具 举报
还有很多要学啊
回复 使用道具 举报
666666666666666666666
回复 使用道具 举报
zhoujiafan 来自手机 中级黑马 2016-9-2 22:52:38
17#
不错不错
回复 使用道具 举报
不错不错~!!
回复 使用道具 举报
谢谢三克油
回复 使用道具 举报
顶一顶!希望自己一切顺利!
回复 使用道具 举报
1234下一页
您需要登录后才可以回帖 登录 | 加入黑马