第一章 介绍Android驱动开发和移植技术
一、Android的四层系统架构:
Android的系统架构分为4层,分别为:Linux内核,C/C++代码库,Android SDK API,应用程序。
Linux内核:Linux内核包括Linux的驱动以及内存管理,进程管理,电源管理等程序。
Linux的驱动:驱动就是驱使硬件设备行动。驱动是直接与底层硬件直接打交道,按照一定的工作方式,读写设备的寄存器,具有完成设备的轮询、中断处理、DMA通信,进行物理内存向虚拟内存的映射等功能,最终让通信设备能收发数据,让显示设备能显示文字和画面,让存储设备能记录文件和数据
内存管理: 内存管理的基本单位是物理页;内存管理单元的作用是以页为单位把虚拟地址转换为物理地址。
进程管理:进程是资源分配的基本单位,线程是资源调度的基本单位。其中,线程只拥有必不可少的一些资源,线程的这一功能使同一个进程的线程切换更加方便,提高了系统性能。 线程的实现有:用户级线程;内核级线程;混合线程模型的3种方法。
电源管理通过降低设备电压、频率,可以减少能量的消耗,有效地管理嵌入式系统中电源的功耗,达到省电的目的。
二、Android系统移植的主要工作:应用移植和系统移植。
应用程序,指为完成某项或多项特定工作的计算机程序,它运行在用户模式,可以和用户进行交互,具有可视的用户界面。它具有将应用程序层的程序移植到某一个特定硬件平台上的功能。
系统移植:可移植性指与软件从某一环境转移到另一环境下。系统移植具有让Android操作系统在某一个特定硬件平台上运行。
三,查看Linux内核版本:Linux内核有linux2.4、linux2.6、linux3.x3个版本;有2种查看方法。Linux版本号定义有一定的原则。
四.Linux设备驱动:直接和硬件交互的一类程序,有字符设备、网络设备、块设备。
字符设备字符设备:是以字符为单位进行传输的设备。
网络设备是网络设备及部件是连接到网络中的物理实体。网络设备有很多的种类。
块设备的作用是将信息存储在固定大小的块中。