1.我们为毛要学习framework?
-
首先是因为framework的系统架构,设计思路,还有代码中的一些使用技巧,都是这个行业内最顶尖的那群大牛智慧的体现。所以非常的值得我们去学习与借鉴。
-
其次是深入了解framework原理,对我们日常开发也是有帮助的。可以开拓思路。试想,如果我们对底层源码一无所知的话,又如何能设计出更加新颖好用的框架。
-
最主要的就是面试,这个在Android高级开发工程师面试中是必问的。
2.在学习过程中会遇到的困难有哪些
-
困难1:framework的代码量过于庞大
普通的框架几万行代码没有耐心的同学都不一定吃的消,对于framework要是没有耐心,学习起来是很难坚持下来的,所以要有耐心。 -
困难2:资料匮乏,市面上的大多数资料都是一些UI特效等。而关于framework尼,也有几个,但是按照作者的思路,大多数作者还是蛮厉害的,但是自己读起来就有些懵圈。其实作为一个应用工程师,还是要明白,我们所学习的framework并不是要学习全部的细节,因为我们的工作,并不是让我们去修改framework层,只是需要了解下其系统架构,总体流程,借鉴下其设计思路就足够了。而写的好的文章尼,又不全。。。
-
困难3:原理复杂 一个设计思路,往往要设计到好几个系统服务,各个系统组件间来回调用,还要横跨Java层,native层,驱动层等。
3.系列文章
-
1.系统服务
介绍系统的核心进程,关键系统服务的工作原理。 -
2.应用进程
介绍应用进程和初始化流程, -
3.activity原理
包含activity是如何启动的,如何初始化,显示原理,如何管理window和view。 -
4.服务和广播的原理
-
5.UI体系
比如UI的刷新机制等。 -
6.Binder原理
这个就不说了,面试或者笔试必问的科目 -
7.线程间的通讯
消息队列的创建,消息循环机制,Handler,ThreadLocal等。 -
8.应用安装的流程,跨进程等
4.END
该系列文章,只简述流程,不追求太过详细的细节,尽量简化,避免长篇大论,framework系统的讲解,涵盖基本的知识点。因工作原因,每周更新1到2篇,如有不足,欢迎指正。