通过本书的第一章了解到
1、Android的系统架构,其分为四层:Android是基于Linux内核的,而linux内核主要包括Linux的驱动程序,以及内存管理、进程管理、电源管理等程序;C/C++代码库包括C/C++编写的代码库,也包括dalivk虚拟机的运行时;Android SDK API,就是用java编写的各种Library;应用层及Android用户可以接触到的,实现的各种功能。
2、Android的移植分为应用移植和系统移植。系统移植是需要让Android识别平台上的各种硬件设备,主要是Linux驱动。除了驱动需要移植外,在Android系统中还增加了一个硬件抽象层(HAL)。HAL是普通的程序库
3、查看Linux系统的内核的方法:(1)uname -a;(2) cat /proc/version
4、Linux内核版本号,如:2.6.29.7-flykernel-l2a,2-主版本号,6-次版本号,29-修订版本号,7-微调版本号,flykernel-l2a-该Linux内核专门为flykernel调校
5、Linux驱动开发:掌握一个Linux内核版本的驱动开发;在Linux系统下搭建Linux驱动的开发环境;学习GNU C,其实对标准C的扩展;准备开发板;学习相关硬件知识
6、驱动作用是直接和硬件交互的一类程序,负责对硬件进行抽象;设备分为字符设备(鼠标、键盘),块设备(硬盘),网络设备
7、LED驱动:涉及很多系统的函数和结构体,如readl、writel、printk、miscdevice、module_exit、file_operations、miscdevice等.
8、小结:驱动只与内核有关,与系统无关。Android驱动开发一般会有相应的HAL程序库。