安卓开发

android底层开发技术实战详解

android底层开发技术实战详解内核移植和驱动是一本Android底层开发技术指南,由一线android工程师王振丽编著。本书内容丰富翔实,所有内容都是从读者的实际需要出发,科学安排知识结构,内容由浅入深,叙述清楚,具有很强的知识性和实用性,反映了当前Android技术的发展和应用水平。同时全书精心筛选的最具代表性、读者最关心典型知识点,几乎包括Android底层和驱动技术的各个方面,包括剖析三大主流平台驱动的结构和实现,根据开源工程实现具体的产品,详尽分析驱动开发过程中的移植技巧等等,能够适用于android开发人员阅读。

《android底层开发技术实战详解:内核移植和驱动》从底层原理开始讲起,结合真实的案例向读者详细介绍了Android内核、移植和驱动开发的整个流程。全书分为19章,依次讲解驱动移植的必要性,何为HAL层深入分析,Goldfish、MSM、MAP内核和驱动解析,显示系统、输入系统、振动器系统、音频系统、视频输出系统的驱动,OpenMax多媒体、多媒体插件框架,传感器、照相机、Wi-Fi、蓝牙、GPS和电话系统等。在每一章中,重点介绍了与Android驱动开发相关的底层知识,并对Android源代码进行了剖析。

第1章 Android底层开发基础 11.1 什么是驱动 11.1.1 驱动程序的魅力 11.1.2 手机中的驱动程序 21.2 开源还是不开源的问题 21.2.1 雾里看花的开源 21.2.2 从为什么选择Java谈为什么不开源驱动程序 31.2.3 对驱动开发者来说是一把双刃剑 41.3 Android和Linux 41.3.1 Linux简介 41.3.2 Android和Linux的关系 51.4 简析Linux内核 71.4.1 内核的体系结构 71.4.2 和Android密切相关的Linux内核知识 91.5 分析Linux内核源代码很有必要 131.5.1 源代码目录结构 141.5.2 Linux 3.10的特性 161.5.3 浏览源代码的工具 171.5.4 为什么用汇编语言编写内核代码 171.5.5 Linux内核的显著特性 181.5.6 学习Linux内核的方法 26第2章 分析Android源代码 312.1 搭建Linux开发环境和工具 312.1.1 搭建Linux开发环境 312.1.2 设置环境变量 322.1.3 安装编译工具 322.2 获取Android源代码 332.3 分析并编译Android源代码 352.3.1 Android源代码的结构 352.3.2 编译Android源代码 402.3.3 运行Android源代码 422.3.4 实践演练――演示编译Android程序的两种方法 432.4 编译Android Kernel 462.4.1 获取Goldfish内核代码 472.4.2 获取MSM内核代码 492.4.3 获取OMAP内核代码 492.4.4 编译Android的Linux内核 502.5 运行模拟器 512.5.1 Linux环境下运行模拟器的方法 522.5.2 模拟器辅助工具――adb 53第3章 驱动需要移植 563.1 驱动开发需要做的工作 563.2 Android移植 583.2.1 移植的任务 593.2.2 移植的内容 593.2.3 驱动开发的任务 603.3 Android对Linux的改造 603.3.1 Android对Linux内核文件的改动 613.3.2 为Android构建Linux的操作系统 623.4 内核空间和用户空间接口是一个媒介 633.4.1 内核空间和用户空间的相互作用 633.4.2 系统和硬件之间的交互 633.4.3 使用Relay实现内核到用户空间的数据传输 653.5 三类驱动程序 683.5.1 字符设备驱动程序 683.5.2 块设备驱动程序 763.5.3 网络设备驱动程序 80第4章 HAL层深入分析 814.1 认识HAL层 814.1.1 HAL层的发展 814.1.2 过去和现在的区别 834.2 分析HAL层源代码 834.2.1 分析HAL moudle 834.2.2 分析mokoid工程 874.3 总结HAL层的使用方法 954.4 传感器在HAL层的表现 974.4.1 HAL层的Sensor代码 984.4.2 总结Sensor编程的流程 994.4.3 分析Sensor源代码看Android API与硬件平台的衔接 1004.5 移植总结 1104.5.1 移植各个Android部件的方式 1104.5.2 移植技巧之一――不得不说的辅助工作 1114.6 开发一个硬件驱动程序 1174.6.1 源代码文件wuming.h和wuming.c 1174.6.2 编译配置处理 1234.6.3 修改配置文件 1244.6.4 验证驱动程序 125第5章 分析Goldfish内核系统 1275.1 Android专有驱动介绍 1275.2 Goldfish基础 1285.3 Android专用驱动简介 1305.3.1 Logger驱动介绍 1305.3.2 Low Memory Killer组件介绍 1305.3.3 Timed Output驱动介绍 1315.3.4 Timed Gpio驱动介绍 1315.3.5 Ram Console驱动介绍 1325.4 Ashmem驱动介绍 1335.5 Pmem驱动介绍 1335.6 Alarm驱动程序 1345.7 USB Gadget驱动程序 1345.8 Paranoid驱动介绍 1355.9 Goldfish的设备驱动 136第6章 MSM内核和驱动解析 1396.1 MSM基础 1396.1.1 常见MSM处理器产品 1396.1.2 Snapdragon内核介绍 1406.2 移植MSM内核简介 1416.3 移植MSM 1436.3.1 Makefile文件 1436.3.2 驱动和组件 1446.3.3 设备驱动 1466.3.4 高通特有的组件 148第7章 OMAP内核和驱动解析 1517.1 OMAP基础 1517.1.1 OMAP简析 1517.1.2 常见OMAP处理器产品 1517.1.3 开发平台 1527.2 OMAP内核 1527.3 移植OMAP体系结构 1547.3.1 移植OMAP平台 1547.3.2 移植OMAP处理器 1577.4 移植Android专用驱动和组件 1617.5 OMAP的设备驱动 1627.5.1 显示驱动程序 1627.5.2 I2C总线驱动程序 1627.5.3 摄像头和视频输出驱动程序 1647.5.4 触摸屏和键盘驱动程序 1657.5.5 实时时钟驱动程序 1667.5.6 音频驱动程序 1667.5.7 蓝牙驱动程序 166第8章 显示系统驱动应用 1678.1 显示系统介绍 1678.2 分析内核层 1688.2.1 分析接口文件fb.h 1688.2.2 分析内核实现文件fbmem.c 1718.3 分析硬件抽象层 1958.3.1 分析头文件 1958.3.2 分析硬件帧缓冲区 1978.3.3 实现缓冲区的分配 1998.3.4 显示缓冲映射 2008.3.5 分析管理库文件LayerBuffer.cpp 2018.4 分析显示系统的驱动程序 2028.4.1 Goldfish中的FrameBuffer驱动程序 2038.4.2 使用Gralloc模块的驱动程序 2058.4.3 分析MSM高通处理器中的显示驱动实现 2158.4.4 分析OMAP处理器中的显示驱动实现 225第9章 输入系统驱动应用 2289.1 输入系统介绍 2289.1.1 Android输入系统结构元素介绍 2289.1.2 移植Android输入系统时的工作 2299.2 分析Input(输入)系统驱动 2309.2.1 分析头文件 2309.2.2 分析核心文件input.c 2349.2.3 分析event机制 2499.3 分析硬件抽象层 2519.3.1 分析文件KeycodeLabels.h 2529.3.2 分析文件KeyCharacterMap.h 2569.3.3 分析Kl格式文件 2579.3.4 分析kcm格式文件 2589.3.5 分析文件EventHub.cpp 258第10章 振动器系统驱动 26310.1 振动器系统结构 26310.2 分析硬件抽象层 26510.3 分析JNI层部分 26610.4 分析Java层部分 26710.5 实现移植工作 27110.5.1 移植振动器驱动程序 27110.5.2 实现硬件抽象层 27110.6 在MSM平台实现振动器驱动 272第11章 音频系统驱动 27611.1 音频系统结构 27611.2 分析音频系统的层次 27711.2.1 层次说明 27711.2.2 Media库中的Audio框架 27811.2.3 本地代码 28011.2.4 分析JNI代码 28311.2.5 Java层代码简介 28411.3 移植Audio系统的工作 28511.3.1 我们的工作 28511.3.2 分析硬件抽象层 28511.3.3 分析AudioFlinger中的Audio硬件抽象层的实现 28711.3.4 真正实现Audio硬件抽象层 29311.4 在MSM平台实现Audio驱动系统 29311.4.1 实现Audio驱动程序 29311.4.2 实现硬

Similar Posts

发表评论

邮箱地址不会被公开。 必填项已用*标注