Android系统如今已经和我们的生活密不可分,因为Android的是一个非常优秀的嵌入式操作系统,许多人在使用着Android的系统的手机、平板,体验着它带给我们的便利。Android的系统架构分为4层,第一层:Linux内核,第二层:C/C++代码库,第三层:Android SDK API,第四层:应用程序。Android移植可以分为两个部分:应用移植和系统移植。应用移植是指将Android的系统架构的第四层的应用程序移植到某一个特定的平台上;而Android系统移植是指让Android操作系统在某一特定平台上运行。除了需要移植CPU架构,最重要的就是移植Linux驱动(让Android可以识别平台上的各种硬件(如声卡、显示器、蓝牙设备等))。此外Android系统中还增加了一个硬件抽象层(HAL),HAL位于Android的系统架构的第二层,也是普通的Linux程序库(.so文件),只是Android SDK通过HAL直接访问Linux驱动。
Linux内核版本号的定义:主版本号,次版本号,修订版本号,微调版本号,和为特定的Linux系统特别调校的描述(调校描述可以是任意字符串)。Android使用的是Linux2.6,也是目前使用最广泛的linux内核版本。如果想查看Linux的版本有两种方法。(1)在Linux终端输入:uname –a。(2)在Linux终端输入:cat /proc/version(/proc不是普通的文件系统,而是系统内核的映像)。Linux将存储器和外设分为三个部分:字符设备、快设备、网络设备。驱动是直接和硬件交互的一类程序,负责对硬件进行抽象。对于任何的Linux驱动来说,都有一个装载函数(mobule_init)和一个卸载函数(module_exit)。
对于我们来说学习Linux驱动开发需要多进行实践,在Linux系统下搭建Linux驱动的开发环境,并在支持Android的开发板上测试驱动程序是否能正确的运行。毕竟实践出真知。