第一章中,首先,我知道了:Android原生的代码支持的设备不多,需另开发程序使Android可识别相应设备中的硬件,这个为特定设备定制Android的过程称为“移植”。
其次我还了解到Android系统架构可分为4层:
第一层为Linux内核:Android是基于Linux内核的,这一层主要包括Linux的驱动程序以及内存管理、进程管理、电源管理等程序。
第二层为C/C++代码库:这一层主要包括使用C/C++编写的代码库(Linux下的.so文件以及嵌入到APK程序中的NDK代码),也包括Dalivk虚拟机的运行时(Rumtime)。
第三层为Android SDK API:直接面向应用程序的Java API层,用Java编写的各种Library(为基于Dalvik虚拟机格式的)。
第四层为应用程序:是所有Android用户都要接触到的,直接面向最终用户的Java应用程序,所有Android应用程序都属于这一层,主要依靠第三层来完成各种功能。
还有,Android移植可分为两部分:应用移植和系统移植。
Android移植在很大程度上是Linux内核的移植。而Linux内核移植主要就是移植驱动程序。
驱动是直接与硬件交互的一类程序,负责对硬件进行抽象。驱动针对的对象是存储器和外设,而不是针对CPU内核。Linux将存储器和外设分为3大类:1.字符设备,2.块设备,3.网络设备。其字符设备不经过系统的快速缓冲,块设备经过系统的快速缓冲,这两者没有明显的界限。