近期换了工作,做的是系统定制framework层开发,回想以前做Android的APP-做Android音视频编解码方向的APP,到现在做Android系统底层开发,觉得还是差别比较大,入门是一个比较困难的过程,这里记录一下学习历程。
Android系统的源代码数量非常庞大,这些代码主要分为4层,从低到高为Linux内核层、系统库层、应用程序框架层和应用程序层,它们分别由驱动工程师、系统工程师、框架工程师和应用程序工程师来开发,而一般来说系统工程师和框架工程师没有严格的区分。
目标
首先,学习目标,很简单也很清晰:了解并掌握Android底层开发模式和方法。
底层开发,其实就是framework层和HAL层的开发。必备技能,Linux、C、C++、Java。
Android系统架构与分层
整个Android系统是由软件和硬件组成的。
硬件包括CPU等,CPU里面又包含Cache、mmu、GPU、各种总线,这是CPU厂商提供的。
CPU确定之后就是其他硬件的选型了,比如camera的选型、sensor的选型、LCD的选型、memory的选择、存储空间的大小等等,
整个硬件确定之后,就开始搞软件了。