黑马程序员技术交流社区
标题: Android工程师成长路线全攻略 [打印本页]
作者: Android_Robot 时间: 2016-8-31 10:02
标题: Android工程师成长路线全攻略
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发布,更见开发者
作者: gohw007 时间: 2016-8-31 22:47
非常好 谢谢
作者: 坚持努力wbj 时间: 2016-8-31 22:53
收藏了,以后或许用的到
作者: 许华洋 时间: 2016-9-1 07:55
有帮助!!!
作者: 邓显俊 时间: 2016-9-1 08:34
不错,支持
作者: 噜噜吧 时间: 2016-9-1 11:37
666。。。。。
作者: caoshenv5 时间: 2016-9-1 20:03
楼主好帅,谢谢分享
作者: 52java 时间: 2016-9-1 20:18
很好,顶一下 66666
作者: 勿忘`初心 时间: 2016-9-1 20:42
你又让我了解了不少安卓
作者: apolo 时间: 2016-9-1 20:56
原本不知道毕业后能干什么,这个帖子让我了解了以后的路,谢谢
作者: a825125501 时间: 2016-9-1 21:45
我的安卓之路~
作者: yangguangyulei 时间: 2016-9-1 22:31
学习了,学习 了
作者: zaoan 时间: 2016-9-1 23:23
学习了,顶
作者: WK_Tian 时间: 2016-9-2 11:08
5_282:}
作者: xpf0121 时间: 2016-9-2 19:05
还有很多要学啊
作者: 岳鹏 时间: 2016-9-2 21:19
666666666666666666666
作者: zhoujiafan 时间: 2016-9-2 22:52
不错不错
作者: SakumaRei 时间: 2016-9-2 23:23
不错不错~!!
作者: 17729758673 时间: 2016-9-2 23:37
谢谢三克油
作者: a623562486 时间: 2016-9-3 21:05
顶一顶!希望自己一切顺利!
作者: apolo 时间: 2016-9-3 21:27
谢谢 赞一个
作者: 江月念华 时间: 2016-9-3 23:07
很不错的帖子
作者: silence丶早安 时间: 2016-9-3 23:29
已收藏,谢谢楼主
作者: 马蚁牙黑 时间: 2016-9-4 08:00
20k毕业的追求,努力加幸运
作者: jianzhen 时间: 2016-9-4 09:28
总结很全 谢谢
作者: chensc 时间: 2016-9-4 09:40
学习学习!
作者: finally 时间: 2016-9-4 09:50
{:3_46:}赞一个
作者: 丶旧时光I 时间: 2016-9-4 10:58
感谢大神,顶一下
作者: 蜡笔小心眼 时间: 2016-9-4 20:43
{:2_36:}不错不错
作者: 南Ke一梦 时间: 2016-9-4 20:50
感谢分享
作者: 你好吗520666 时间: 2016-9-4 23:09
666666666666666666666666666
作者: 小超超 时间: 2016-9-4 23:34
感谢分享。
作者: Rowan 时间: 2016-9-5 00:27
很好的分享,think you
作者: Aimon 时间: 2016-9-5 10:03
支持一个
作者: 877758007@qq.co 时间: 2016-9-5 10:26
很有帮助
作者: 978881478 时间: 2016-9-5 10:50
666888888888888888888888888888
作者: changfa 时间: 2016-9-5 11:22
学习android把四大组件学懂,大概要多长时间
作者: 小菜白白白 时间: 2016-9-5 12:07
怎么收藏帖子啊,没看到类似图标 收藏起来以后慢慢深入发展
作者: IT军犬 时间: 2016-9-5 12:53
不明觉厉!!!加油
作者: a825125501 时间: 2016-9-5 17:54
出去了才要更加学习
作者: zhao0506 时间: 2016-9-5 19:12
非常好,赞一个
作者: 岳鹏 时间: 2016-9-5 21:46
666666666666666
作者: 邓显俊 时间: 2016-9-5 22:16
不错不错
作者: apolo 时间: 2016-9-5 22:23
介绍的很详细
作者: hhhuuu 时间: 2016-9-5 22:31
学习到了,谢谢分享
作者: hhhuuu 时间: 2016-9-5 23:33
学习学习!!!!
作者: huihui520111 时间: 2016-9-6 00:16
天呀,,,那么多知识,,什么时候才能都掌握
作者: 山雨欲来风满楼 时间: 2016-9-6 00:44
学习中。。。。。。。。。。
作者: 邓显俊 时间: 2016-9-6 07:43
学习一下
作者: zhouyang1993 时间: 2016-9-6 09:15
作者: CC12300320 时间: 2016-9-6 12:00
可以,学到了很多,很有用
作者: Hi,Mr.H 时间: 2016-9-6 12:47
很好,谢谢楼主大大
作者: 17721165644 时间: 2016-9-6 17:47
收藏,非常好
作者: 648764479 时间: 2016-9-6 20:41
看了之后热血沸腾!加油!
作者: wangqiang1 时间: 2016-9-6 20:53
斯国一斯国一斯国一斯国一斯国一斯国一斯国一斯国一斯国一
作者: 白孟 时间: 2016-9-6 22:04
感觉安卓和java差不了太多
作者: CaiWeiXiong 时间: 2016-9-7 00:32
好文章,感谢
作者: zaoan 时间: 2016-9-7 00:45
顶一个 66
作者: 邓显俊 时间: 2016-9-7 07:42
顶一下,不错
作者: cjhhao1 时间: 2016-9-7 09:50
顶~~~~~~~~~~~~~~~~~~
作者: loveimust 时间: 2016-9-7 10:03
不错,正迷茫呢?
作者: edwardchan2003 时间: 2016-11-13 15:41
学习了,谢谢分享,很好的总结
作者: 飞天神猫 时间: 2016-11-14 22:52
666666666666666666
作者: 小牛想成为大牛 时间: 2016-11-15 23:56
前进qianjin~~~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |