随着当前各种系统百花齐放,竞相发展,安卓系统占市场的份额已遥遥领先于其他系统,为使在各种设备上完美运行Android,我们可以学习基于Linux的Android驱动开发与移植,本章对Linux和Android做了一个比较系统的介绍,使我们更全面的了解Linux驱动,为我们进一步学习打下坚实的基础。
学习Android驱动开发我们首先要了解Android系统构架,它主要包括:
第一层:Linux内核
主要包括Linux的驱动程序及内存管理、进程管理、电源管理等程序。Android使用Linux2.6作为其内核。
第二层:c/c++代码库
主要包括c/c++编写的代码库和Dalivk虚拟机的运行时
第三层:Android SDK API
也称为Java API层
第四层:应用程序
即指Android的UI,所有的Android用户都要接触,这一层要依靠Android SDK API来完成各种功能。
其次我们要清楚Android系统一直的主要工作。Android移植可分为:应用移植和系统移植。应用移植是将Android系统构架中的应用程序移植到某一特定的硬件平台。系统移植是指让Android操作系统在某一特定硬件平台上运行。其首要条件就是该操作系统支持硬件平台的CPU构架,而且还必须让Android识别平台上的硬件,这主要由Linux内核完成。Android系统中还增加了硬件抽象层HAL,Linux驱动移植和HAL移植就是Android移植的主要工作。
此外,在Android移植与驱动开发时,我们要了解适用于Android的Linux内核的版本即Linux2.6。本章还介绍了Linux设备驱动的发展与作用,设备的分类与特点等。
最后,本章还通过一个实例用Linux驱动来控制开发板上的LED灯来加深我们对Linux驱动的认识。
我们要通过学习CNU 及相关硬件知识,再加上大量实践和练习,一定可以学好Linux驱动开发的。