通过学习Android深度探索(卷一)HAL与驱动开发的第一章让我知道了Android的系统架构,Android系统移植的主要工作,Linux内核版本号的定义规则,设备驱动的作用及设备的分类和特点,并了解了如何学习Linux驱动开发。
Android系统架构第一层:Linux内核,这一层主要包括Linux的驱动程序以及内存管理,进程管理,电源管理等程序;第二层:C/C++代码库,其中包括了HAL也是普通的Linux程序库(.so文件)其目的是使Android SDK通过HAL直接访问Linux驱动;第三层:Android SDK API,实际上就是用Java编写的各种library;第四层:应用程序,相当于Android UI是所有的Android用户都要接触到的,主要依靠第三层来完成各种功能。
Android移植在很大程度上是Linux内核的移植其主要就是移植驱动程序。Android移植可分为应用移植和系统移植。应用移植是指将Android系统架构的第四层应用程序移植到某一个特定硬件平台上;系统移植是指让Android操作系统在某一个特定硬件平台上运行,不仅要支持CPU架构还要让Android识别平台上各种硬件,所以除了移植CPU架构外还要移植Linux驱动和移植HAL。
Linux内核版本号由主版本号,次版本号,修订版本号,微调版本号,为特定的Linux系统特别调校的描述组成,查看Linux内核版本的方法有:
1、在Linux终端下执行命令:uname -a;
2、执行命令:cat /proc/version并且/proc不是普通文件系统而是系统内核的映像。
驱动是直接和硬件交互的一类程序,负责对硬件进行抽象,针对的对象是存储器和外设。Linux的设备分为字符设备,块设备,网络设备。