最全Android学习路线总结,绝对⼲货
⼀、前⾔
不知不觉⾃⼰已经做了⼏年开发了,由记得刚出来⼯作的时候感觉⾃⼰能⽜逼,现在回想起来感觉好⽆知。懂的越多的时候你才会发现懂的越少。
如果你的知识是⼀个圆,当你的圆越⼤时,圆外⾯的世界也就越⼤。
最近看到很多Android新⼿问Android学习路线,学习⽅法啊,如何⼊门啊,所以我从⽹上了⼀些资料,然后以我的⼯作经验给⼤家总结⼀下,让你们少⾛弯路,提取⼀些⼯作中经常⽤到的技术。
⼆、学习知识汇总
1、Java se基础
1).Java基本数据类型与表达式,分⽀循环。
2).String和StringBuffer的使⽤、正则表达式。
3).⾯向对象的抽象,封装,继承,多态,类与对象,对象初始化和回收;构造函数、this关键字、⽅法
和⽅法的参数传递过程、static关键字、内部类。
4).对象实例化过程、⽅法的覆盖、final关键字、抽象类、接⼝、继承的优点和缺点剖析;对象的多态性:⼦类和⽗类之间的转换、抽象类和接⼝在多态中的应⽤、多态带来的好处。
5).Java异常处理,异常的机制原理。
6).常⽤的设计模式:Singleton、Template、Strategy模式。
7).JavaAPI介绍:种基本数据类型包装类,System和Runtime类,Date和DateFomat类等。
8).Java集合介绍:Collection、Set、List、ArrayList、LinkedList、Hashset、Map、HashMap、Iterator等常⽤集合类API。
9).JavaI/O输⼊输出流:File和FileRandomAccess类,字节流InputStream和OutputStream,字符流Reader和Writer,以及相应实现类,IO性能分析,字节和字符的转化流,包装流的概念,以及常⽤包装类,计算机编码。
10).Java⾼级特性:反射和泛型。
11).多线程原理:如何在程序中创建多线程(Thread、Runnable),线程安全问题,线程的同步,线程之间的通讯、死锁。
2、android UI编程
1)、Android开发环境搭建:Android介绍,Android开发环境搭建,第⼀个Android应⽤程序,Android应⽤程序⽬录结构。
android编程入门指南 pdf2)、Android初级控件的使⽤:
TextView控件的使⽤
Button控件的使⽤⽅法
EditText控件的使⽤⽅法
ImageView的使⽤⽅法RadioButton的使⽤⽅法Checkbox的使⽤⽅法
Menu的使⽤⽅法
3)、Android⾼级控件的使⽤:ListView的使⽤⽅法
GridView的使⽤⽅法
Adapter的使⽤⽅法
Spinner的使⽤⽅法
Gallary的使⽤⽅法
ScrollView的使⽤⽅法RecyclerView
4)、对话框与菜单的使⽤:
Dialog的基本概念BlockquoteAlertDialog的使⽤⽅法DatePickerDialog的使⽤⽅法Menu的使⽤⽅法
⾃定义Menu的实现⽅法
5).控件的布局⽅法:
线性布局的使⽤⽅法
相对布局的使⽤⽅法
6).多Acitivity管理:l⽂件的作⽤Intent的使⽤⽅法
使⽤Intent传递数据的⽅法
启动Activity的⽅法
IntentFilter的使⽤⽅法
Activity Group的使⽤⽅法
7)、⾃定义控件实现⽅法:
⾃定义ListView的实现⽅法
可折叠ListView的使⽤⽅法
⾃定义Adapter的实现⽅法
⾃定义View的实现⽅法
动态控件布局的上实现⽅法
上拉刷新下拉加载更多
3、android⽹络编程与数据存储
1).基于Android平台的HTTP通讯:
Http协议回顾
使⽤Get⽅法向服务器提交数据的⽅法
使⽤POST⽅法向服务器提交数据的实现⽅法
使⽤Http协议实现多线程下载
使⽤Http协议实现断点续传
2).Android数据存储技术:
SQLite3数据库简介
SQL语句回顾
SQLite3编程接⼝介绍
SQLite3事务管理
SQLite3游标使⽤⽅法
SQLite3性能分析
访问SDCard的⽅法
访问SharedPreferences的⽅法
三、进阶之路(初级->中级->⾼级)
1、初级⼯程师
⼩明之前完全没接触过Android开发,是个应届⽣,他的待遇是13k,然后⼩明以校招的⾝份进⼊了百度,然后⼩明需要怎么学习才能成为初级⼯程师呢?这个时候,⼩明对编程基础、数据结构、C语⾔都有⼀定基础,Java语法什么的也都掌握的⽐较好,Android才有java语⾔,⽆奈的是⼩明并不会搞Android。
⼩明⾸先需要购买⼀本Android⼊门的书籍,为了更快地学习Android,⼩明业余时间也都⽤来⼀边看书⼀边照着书中的例⼦敲代码,结果2周时间⼩明就把这本书学了⼀遍。看完这本书后,⼩明对Android的历史、结构、代码规范等都有了⼀个⼤概的了解,并且,⼩明已经可以写出⼀些简单的Activity了。这个时候在⼩明眼⾥,Android开发很简单很好玩,通过在xml中摆放⼀些按钮⽂本框什么的就可以做⼀些界⾯了。
⼩明开始跟着他的技术导师做需求,⼀些简单的⼩需求⼩明⾃然是不在话下了。突然有⼀天来了⼀个需求,该需求要求⼩明在Activity中为⼀个button加⼀个动画效果,⼩明慌了:“完全没接触过,书上也没有讲,怎么办呢?”⼩明冷静了下,打开了百度搜索,输⼊“Android 动画”,打开前⼏个链接,⼩明恍然⼤悟,照着⽹上的例⼦把需求给实现了。后来导师告诉他:“学好Android,官⽅⽂档是必须看的,既全⾯⼜权威”。然后⼩明如获⾄宝,花了⼀年时间把上⾯的guide和training都看了⼀遍,并且他还动⼿抄了⼏个⼩例⼦。
有⼀天,⼩明⼜需要做⼀个动画相关的需求,这可难不倒⼩明,它熟练地打开了www.baidu,输⼊“Android 动画”,突然他楞了⼀下:”总不能每次写动画都要百度⼀下吧!“,于是他在CSDN开了⼀个博客,把动画相关的知识点都写上去,为的是后⾯再写动画相关的代码就不⽤百度去搜了,事实如何呢?后⾯再写动画相关的代码,⼩明的确不⽤再去百度搜了,因为通过写⼀篇动画博客,他把动画相关的细节都已经记住了,这样他就可以不⽤再去参考任何⽂档了,后来⼩明还学会了把⼀些琐碎的
不⽅便放在博客上的东西写到了印象笔记上⾯,什么时候忘了10秒钟以内都可以快速回来,⽽不是花10分钟去再次搜索⼀遍。
这⾥总结⼀下,Android⼊门的时候,需要有⼀本⼊门书,好好学习书中的内容,同时花⼀年时间把Android官⽅⽂档中的training和guide看⼀遍,同时通过写博客和记笔记的⽅式来做总结,建议让⾃⼰的每篇博客都有价值些。通过⼀年时间的学习,相信每个⼈都可以达到中级⼯程师的⽔平。
技术要求:
基本知识点
⽐如四⼤组件如何使⽤、如何创建Service、如何进⾏布局、简单的⾃定义 View、动画等常见技术
2、中级⼯程师
⼩明经过⼀年的努⼒学习终于成为Android中级⼯程师了,⽉薪变成了17k。到了中级⼯程师,已经可以在公司⾥⼲很多体⼒活了,但是⼀些很重要的任务⼩明还不能⼀个⼈承担起来,这个时候⼩明需要学习的内容就很多了,如下所⽰:
AIDL:
AIDL:熟悉AIDL,理解其⼯作原理,懂transact和onTransact的区别;
Binder:从Java层⼤概理解Binder的⼯作原理,懂Parcel对象的使⽤;
Binder:
多进程:熟练掌握多进程的运⾏机制,懂Messenger、Socket等;
多进程:
事件分发:弹性滑动、滑动冲突等;
事件分发:
玩转View: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、消息队列等
3、⾼级⼯程师
⼩明成为了梦寐以求的⾼级⼯程师,⽉薪达到了20k,还拿到了⼀丢丢股票。这个时候⼩明的Android⽔平已经不错了,但是⼩明的⽬标是资深⼯程师,⼩明听说资深⼯程师⽉薪可以达到30k+。
为了成为Android资深⼯程师,需要学习的东西就更多了,并且有些并不是那么具体了,如下所⽰:
继续加深理解”稍微深⼊的知识点“中所定义的内容
了解系统核⼼机制:
了解SystemServer的启动过程
了解主线程的消息循环模型
了解AMS和PMS的⼯作原理
能够回答问题”⼀个应⽤存在多少个Window?“
了解四⼤组件的⼤概⼯作流程
基本知识点的细节
Activity的启动模式以及异常情况下不同Activity的表现
Service的onBind和onReBind的关联
onServiceDisconnected(ComponentName className)和binderDied()的区别
AsyncTask在不同版本上的表现细节

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。