第一章Android系统移植与驱动开发概述
第一章
首先了解到Android系统一直与驱动开发的关系;它是在为特定设备Android的移植过程中,需要linux驱动程序来支持各种硬件设备的(Android是基于linux内核的),因此,学习移植必需要学习驱动,有了这样一个大体框架后,接下来往更深层次学习。
1.1 Android系统架构
总共分为4层:第一层linux内核;主要包括linux驱动程序、内存管理、进程管理、电源管理等程序。第二层c/c++代码库。第三层是Android SDK API是用Java语言编写,实际上可称为Java API,这层就是用java编写的`各种Library。第四层应用程序层,就是用户接触到的UI
1.2Android系统移植的主要工作
工作有三种:
(1)CPU架构的移植(非主要)由于linux内核本身已经支持很多常用CPU架构,所以Android在不同的CPU架构之间移植不需要太大改动。
(2)liunx驱动的移植,为了让Android可以识别平台上的各种硬件
(3)HAL(Hardware abstract layer)的移植
1.3linux内核版本
Linux内核主要维护3个版本:linu2.4、linux2.6、linu3.x
查看llinux内核有两种方法:Uname –a ;cat/proc/version (uname命令就是从/proc/version文件中获取信息的)
1.4linux内核版本号的定义规则
Linux内核版本号 2(主版本号).6(次版本号).29(修定版本号).7(微调版本号)-flyKernel-12a(为特定的liunx系统特别调教的描述)
由于软件与硬件之间的耦合度高,使得需求决定了新的技术(抽象度越高,耦合度越低)从而产生linux驱动。