安卓是一个庞大的系统,需要将整个系统模块化,从不同角度理解,学习要系统的学,碎片化的学习,到最终感觉什么都听过,什么都了解,可是说不出原理,只是停留
在了解的状态,所以要系统学习,建立自己的支持体系。从而形成自己的知识网。
1.语言
java/c/c++
2.操作系统
Linux
3.代码管理工具
Git
4.编译系统
Make编译系统
学习思路整理
1.安卓基本组件
2.安卓层次框架:应用层,framework层,native层,kernal层
3.一个app从编码到安装到手机到运行到卸载的过程
4.手机从启动到运行到关机整个过程发生了那些事情,开机过程中,那些系统服务被启动起来
5.从进程的角度理app的运行,系统服务的调度
6.服务:系统服务的创建/注册/获取/,如何创建一个系统服务,运行在system_server进程
7.aidl通信/binder/handler/
8.如何定制自己的rom,作为一个手机公司的工程师,怎么定制一款属于自己风格的rom
9.怎么编译jar包,怎么将相关实现做成sdk供外边使用
10.多进程通信
源码学习:
https://github.com/LittleFriendsGroup/AndroidSdkSourceAnalysis