书籍详情
Android驱动开发与移植实战详解
作者:李骏,陈小玉 编著
出版社:人民邮电出版社
出版时间:2012-08-01
ISBN:9787115283610
定价:¥79.00
购买这本书可以去
内容简介
Android凭借其开源性、优异的用户体验和极为方便的开发方式,赢得了广大用户和开发者的青睐,目前已经发展成为市场占有率很高的智能手机操作系统。《Android驱动开发与移植实战详解》分为18章,依次讲解了Android系统的基本知识, Linux内核的基本知识,分析了Android系统的源码,深入分析HAL层的基本知识,GoldFish下的驱动、MSM内核和驱动、OMAP内核和驱动、显示系统驱动、输入系统驱动、振动器系统驱动、音频系统驱动和视频输出系统驱动,多媒体框架,传感器系统、照相机系统、Wi-Fi系统、蓝牙系统、GPS系统和电话系统的知识。在每一章中,重点介绍了与Android驱动开发相关的底层知识,并对Android源码进行了详细的分析及驱动开发实现。《Android驱动开发与移植实战详解》适合Android程序员、研发人员及Android爱好者学习,也可以作为相关培训学校和大专院校相关专业的教学用书。
作者简介
暂缺《Android驱动开发与移植实战详解》作者简介
目录
第1章 迅猛发展的Android系统
1.1 智能手机世界
1.1.1 何谓智能手机
1.1.2 当前主流智能手机系统
1.2 Android的自身优势
1.2.1 开源
1.2.2 强大的开发团队支持
1.2.3 实行奖励机制
1.3 认识驱动
1.4 分析Android架构
1.4.1 操作系统层(OS)
1.4.2 各种库和Android运行环境
1.4.3 应用程序
1.4.4 应用程序框架
1.5 开源的问题
1.5.1 雾里看花的开源
1.5.2 从选择Java开始谈为什么不开源驱动程序
1.5.3 对驱动开发者的影响
第2章 简要分析Linux内核
2.1 Linux基础
2.1.1 Linux历史简介
2.1.2 主要版本
2.1.3 Linux的发展机遇
2.2 Android和Linux的关系
2.2.1 Android继承于Linux
2.2.2 Android和Linux内核的区别
2.3 Linux内核简介
2.3.1 内核的体系结构
2.3.2 和Android相关的Linux内核知识
2.4 分析Linux内核源码
2.4.1 源码目录结构
2.4.2 浏览源码的工具
2.4.3 用汇编语言编写内核代码
2.4.4 Linux内核的显著特性
2.4.5 学习Linux内核的过程
第3章 开始分析Android源码
3.1 搭建Linux开发环境和工具
3.1.1 搭建Linux开发环境
3.1.2 设置环境变量
3.1.3 安装编译工具
3.2 获取Android源码
3.3 分析Android源码结构
3.4 编译Android源码
3.5 运行Android源码
3.6 实践演练--演示两种编译Android程序的方法
3.6.1 编译Native C的helloworld模块
3.6.2 手工编译C模块
3.7 编译Android Kernel
3.7.1 获取Goldfish内核代码
3.7.2 获取MSM内核代码
3.7.3 获取OMAP内核代码
3.7.4 编译Android的Linux内核
3.8 运行模拟器
3.8.1 Linux环境下运行模拟器的方法
3.8.2 模拟器辅助工具--ADB
第4章 驱动移植
4.1 Android移植
4.1.1 移植的任务
4.1.2 移植的内容
4.1.3 驱动开发需要做的工作
4.2 Android对Linux的改造
4.2.1 Android的核心驱动
4.2.2 为Android构建Linux操作系统
4.3 内核空间和用户空间接口
4.3.1 实现系统和硬件之间的交互
4.3.2 实现内核到用户空间的数据传输
4.4 三类驱动程序
4.4.1 字符设备驱动
4.4.2 块设备驱动
4.4.3 网络设备驱动
第5章 深入详解HAL层
5.1 初识HAL层
5.1.1 HAL层简介
5.1.2 比较HAL_legacy和HAL
5.2 分析HAL层源码
5.2.1 分析HAL module
5.2.2 分析mokoid工程
5.3 Sensor在HAL层的表现
5.3.1 HAL层的Sensor代码
5.3.2 总结Sensor编程的流程
5.4 移植总结
5.4.1 移植各个Android部件的方式
5.4.2 辅助工作
第6章 常见的驱动平台
6.1 专用驱动
6.1.1 Binder驱动程序
6.1.2 Logger驱动
6.1.3 组件Lowmemorykiller
6.1.4 Timed Output驱动程序
6.1.5 Timed Gpio驱动程序
6.1.6 唤醒和休眠
6.1.7 Ashmem驱动程序
6.1.8 Pmem驱动程序
6.1.9 Alarm驱动程序
6.1.10 USB Gadget驱动程序
6.1.11 Android Paranoid驱动程序
6.2 Goldfish设备驱动
6.3 MSM内核和驱动
6.3.1 MSM基础
6.3.2 移植MSM内核
6.3.3 移植MSM
6.3.4 高通特有的组件
6.4 OMAP内核和驱动
6.4.1 OMAP基础
6.4.2 OMAP内核
6.4.3 移植OMAP体系结构
6.4.4 移植Android专用驱动和组件
6.4.5 OMAP的设备驱动
第7章 输入系统驱动
7.1 输入系统介绍
7.1.1 Android输入系统结构元素介绍
7.1.2 Android输入系统驱动
7.1.3 Input系统的层次结构
7.1.4 移植工作
7.2 Input驱动源码分析
7.2.1 文件input.h
7.2.2 文件KeycodeLabels.h
7.2.3 文件KeyCharacterMap.h
7.2.4 Kl格式文件
7.2.5 kcm格式文件
7.2.6 文件EventHub.cpp
7.3 Input设备的运作过程
7.3.1 Input设备的注册(硬件驱动层)
7.3.2 Input子系统的加载过程(子系统核心层)
7.3.3 Input子系统的事件处理(事件处理层)
7.4 模拟器的输入驱动
7.5 高通平台的输入驱动实现
7.5.1 触摸屏驱动
7.5.2 按键和轨迹球驱动
7.6 OMAP处理器中的输入驱动实现
7.6.1 触摸屏驱动程序
7.6.2 键盘驱动程序
第8章 电话系统驱动
8.1 电话系统基础
8.1.1 Android电话系统简介
8.1.2 深入分析电话系统的实现文件
8.1.3 电话系统结构
8.2 移植Modem驱动和RIL硬件抽象层
8.3 移植和调试
8.3.1 驱动程序
8.3.2 RIL接口
8.4 实现电话系统驱动
8.4.1 RIL中消息队列的建立
8.4.2 与底层Modem通信
8.5 深入分析实现Android电话系统的流程
8.5.1 初始启动流程
8.5.2 接收信息流程
8.5.3 等待硬件响应
第9章 显示系统驱动
9.1 显示系统基础
9.1.1 Android的版本
9.1.2 不同的显示系统
9.1.3 FrameBuffer驱动的使用基础
9.2 移植Android显示系统
9.2.1 FrameBuffer驱动程序
9.2.2 硬件抽象层
9.3 实现显示系统的驱动程序
9.3.1 Goldfish中的FrameBuffer驱动程序
9.3.2 使用Gralloc模块的驱动程序
9.4 MSM中显示驱动的实现
9.4.1 MSM中的FrameBuffer驱动程序
9.4.2 MSM中的Gralloc驱动程序
9.5 OMAP中显示驱动的实现
9.5.1 文件omapfb-main.c
9.5.2 文件omapfb.h
9.6 6416中FrameBuffer的工作原理
第10章 音频系统驱动
10.1 音频系统结构
10.2 音频系统的层次
10.2.1 层次说明
10.2.2 Media库中的Audio框架
10.2.3 本地代码
10.2.4 JNI代码
10.2.5 Java代码
10.3 移植工作
10.3.1 两个任务
10.3.2 Audio的硬件抽象层
10.3.3 实现AudioFlinger中的Audio硬件抽象层
10.3.4 真正实现Audio硬件抽象层
10.4 MSM平台实现Audio驱动系统
10.4.1 实现Audio驱动程序
10.4.2 实现硬件抽象层
10.5 OSS平台实现Audio驱动系统
10.5.1 OSS驱动程序介绍
10.5.2 mixer
10.6 ALSA平台实现Audio系统
10.6.1 ALSA基础
10.6.2 注册音频设备和音频驱动
10.6.3 ALSA的底层接口
10.6.4 放音流程
10.6.5 录音流程
10.6.6 在Android中使用ALSA声卡
10.6.7 在OMAP平台移植Android的ALSA声卡驱动
10.7 6410中的ALSA驱动
10.7.1 ALSA的设备文件
10.7.2 创建声卡和PCM设备
第11章 视频输出系统驱动
11.1 视频输出系统结构
11.2 移植的内容
11.3 分析硬件抽象层
11.3.1 Overlay系统硬件抽象层的接口
11.3.2 实现硬件抽象层
11.3.3 实现接口
11.4 实现Overlay硬件抽象层
11.5 在OMAP平台实现Overlay系统
11.5.1 实现输出视频驱动程序
11.5.2 实现Overlay硬件抽象层
11.6 系统层调用Overlay模块
11.6.1 测试文件
11.6.2 在Android系统中创建Overlay
11.6.3 管理Overlay HAL模块
11.7 抽象层实现(V4l2驱动实现方式)
第12章 振动器系统驱动
12.1 振动器系统结构
12.1.1 硬件抽象层
12.1.2 JNI框架部分
12.2 开始移植
12.2.1 移植振动器驱动程序
12.2.2 实现硬件抽象层
12.3 在MSM平台实现振动器驱动
第13章 Android多媒体插件框架
13.1 Android多媒体插件
13.2 需要移植的内容
13.3 OpenCore引擎详解
13.3.1 OpenCore的层次结构
13.3.2 OpenCore的代码结构
13.3.3 OpenCore的编译结构
13.3.4 OpenCore OSCL
13.3.5 实现OpenCore中的OpenMax部分
13.3.6 OpenCore的扩展
13.4 Stagefright引擎
13.4.1 代码结构
13.4.2 实现OpenMax接口
13.4.3 Video Buffer传输流程
第14章 Camera照相机驱动
14.1 Camera系统的结构
14.2 移植的内容
14.2.1 fimc驱动模块的加载
14.2.2 V4l2驱动的用法
14.3 移植和调试
14.3.1 V4L2驱动程序
14.3.2 硬件抽象层
14.4 实现Camera系统的硬件抽象层
14.4.1 Java程序部分
14.4.2 Java本地调用部分
14.4.3 本地库libui.so
14.4.4 Camera服务libcameraservice.so
14.5 实现Camera系统
14.5.1 在MSM平台实现Camera系统
14.5.2 OMAP平台实现Camera系统
14.6 借助Sensor驱动使用照相机系统
第15章 传感器系统驱动
15.1 传感器系统的结构
15.2 移植Sensor驱动
15.2.1 移植驱动程序
15.2.2 移植硬件抽象层
15.2.3 实现上层部分
15.3 实现传感器
第16章 Wi-Fi系统、蓝牙系统和GPS系统
16.1 Wi-Fi系统的应用和移植
16.1.1 Wi-Fi系统的结构
16.1.2 移植的内容
16.1.3 移植和调试
16.1.4 OMAP平台实现Wi-Fi
16.1.5 配置Wi-Fi
16.1.6 SDIO设备的移植
16.1.7 移植Wi-Fi驱动的注意事项
16.2 蓝牙系统的应用和移植
16.2.1 蓝牙结构
16.2.2 移植的内容
16.2.3 具体移植
16.2.4 MSM平台的蓝牙驱动
16.2.5 本地适配器连接过程
16.2.6 远程适配器连接过程
16.2.7 分析6410的蓝牙驱动
16.3 定位系统
16.3.1 系统结构
16.3.2 移植的内容
16.3.3 移植和调试
16.3.4 GPS的串口驱动和数据读取
第17章 振动器驱动和警报器驱动
17.1 Alarm系统基础
17.1.1 Alarm系统的结构
17.1.2 移植的内容
17.2 移植和调试
17.3 实现Alarm驱动
17.4 MSM平台实现Alarm
第18章 光系统驱动和电池系统驱动
18.1 Lights光系统的应用和移植
18.1.1 Lights系统的结构
18.1.2 移植的内容
18.1.3 移植和调试
18.1.4 MSM平台实现光系统
18.1.5 深入分析Android的光系统
18.2 Battery电池系统的应用和移植
18.2.1 Battery系统的结构
18.2.2 移植的内容
18.2.3 移植和调试
18.2.4 模拟器中实现电池系统
……
1.1 智能手机世界
1.1.1 何谓智能手机
1.1.2 当前主流智能手机系统
1.2 Android的自身优势
1.2.1 开源
1.2.2 强大的开发团队支持
1.2.3 实行奖励机制
1.3 认识驱动
1.4 分析Android架构
1.4.1 操作系统层(OS)
1.4.2 各种库和Android运行环境
1.4.3 应用程序
1.4.4 应用程序框架
1.5 开源的问题
1.5.1 雾里看花的开源
1.5.2 从选择Java开始谈为什么不开源驱动程序
1.5.3 对驱动开发者的影响
第2章 简要分析Linux内核
2.1 Linux基础
2.1.1 Linux历史简介
2.1.2 主要版本
2.1.3 Linux的发展机遇
2.2 Android和Linux的关系
2.2.1 Android继承于Linux
2.2.2 Android和Linux内核的区别
2.3 Linux内核简介
2.3.1 内核的体系结构
2.3.2 和Android相关的Linux内核知识
2.4 分析Linux内核源码
2.4.1 源码目录结构
2.4.2 浏览源码的工具
2.4.3 用汇编语言编写内核代码
2.4.4 Linux内核的显著特性
2.4.5 学习Linux内核的过程
第3章 开始分析Android源码
3.1 搭建Linux开发环境和工具
3.1.1 搭建Linux开发环境
3.1.2 设置环境变量
3.1.3 安装编译工具
3.2 获取Android源码
3.3 分析Android源码结构
3.4 编译Android源码
3.5 运行Android源码
3.6 实践演练--演示两种编译Android程序的方法
3.6.1 编译Native C的helloworld模块
3.6.2 手工编译C模块
3.7 编译Android Kernel
3.7.1 获取Goldfish内核代码
3.7.2 获取MSM内核代码
3.7.3 获取OMAP内核代码
3.7.4 编译Android的Linux内核
3.8 运行模拟器
3.8.1 Linux环境下运行模拟器的方法
3.8.2 模拟器辅助工具--ADB
第4章 驱动移植
4.1 Android移植
4.1.1 移植的任务
4.1.2 移植的内容
4.1.3 驱动开发需要做的工作
4.2 Android对Linux的改造
4.2.1 Android的核心驱动
4.2.2 为Android构建Linux操作系统
4.3 内核空间和用户空间接口
4.3.1 实现系统和硬件之间的交互
4.3.2 实现内核到用户空间的数据传输
4.4 三类驱动程序
4.4.1 字符设备驱动
4.4.2 块设备驱动
4.4.3 网络设备驱动
第5章 深入详解HAL层
5.1 初识HAL层
5.1.1 HAL层简介
5.1.2 比较HAL_legacy和HAL
5.2 分析HAL层源码
5.2.1 分析HAL module
5.2.2 分析mokoid工程
5.3 Sensor在HAL层的表现
5.3.1 HAL层的Sensor代码
5.3.2 总结Sensor编程的流程
5.4 移植总结
5.4.1 移植各个Android部件的方式
5.4.2 辅助工作
第6章 常见的驱动平台
6.1 专用驱动
6.1.1 Binder驱动程序
6.1.2 Logger驱动
6.1.3 组件Lowmemorykiller
6.1.4 Timed Output驱动程序
6.1.5 Timed Gpio驱动程序
6.1.6 唤醒和休眠
6.1.7 Ashmem驱动程序
6.1.8 Pmem驱动程序
6.1.9 Alarm驱动程序
6.1.10 USB Gadget驱动程序
6.1.11 Android Paranoid驱动程序
6.2 Goldfish设备驱动
6.3 MSM内核和驱动
6.3.1 MSM基础
6.3.2 移植MSM内核
6.3.3 移植MSM
6.3.4 高通特有的组件
6.4 OMAP内核和驱动
6.4.1 OMAP基础
6.4.2 OMAP内核
6.4.3 移植OMAP体系结构
6.4.4 移植Android专用驱动和组件
6.4.5 OMAP的设备驱动
第7章 输入系统驱动
7.1 输入系统介绍
7.1.1 Android输入系统结构元素介绍
7.1.2 Android输入系统驱动
7.1.3 Input系统的层次结构
7.1.4 移植工作
7.2 Input驱动源码分析
7.2.1 文件input.h
7.2.2 文件KeycodeLabels.h
7.2.3 文件KeyCharacterMap.h
7.2.4 Kl格式文件
7.2.5 kcm格式文件
7.2.6 文件EventHub.cpp
7.3 Input设备的运作过程
7.3.1 Input设备的注册(硬件驱动层)
7.3.2 Input子系统的加载过程(子系统核心层)
7.3.3 Input子系统的事件处理(事件处理层)
7.4 模拟器的输入驱动
7.5 高通平台的输入驱动实现
7.5.1 触摸屏驱动
7.5.2 按键和轨迹球驱动
7.6 OMAP处理器中的输入驱动实现
7.6.1 触摸屏驱动程序
7.6.2 键盘驱动程序
第8章 电话系统驱动
8.1 电话系统基础
8.1.1 Android电话系统简介
8.1.2 深入分析电话系统的实现文件
8.1.3 电话系统结构
8.2 移植Modem驱动和RIL硬件抽象层
8.3 移植和调试
8.3.1 驱动程序
8.3.2 RIL接口
8.4 实现电话系统驱动
8.4.1 RIL中消息队列的建立
8.4.2 与底层Modem通信
8.5 深入分析实现Android电话系统的流程
8.5.1 初始启动流程
8.5.2 接收信息流程
8.5.3 等待硬件响应
第9章 显示系统驱动
9.1 显示系统基础
9.1.1 Android的版本
9.1.2 不同的显示系统
9.1.3 FrameBuffer驱动的使用基础
9.2 移植Android显示系统
9.2.1 FrameBuffer驱动程序
9.2.2 硬件抽象层
9.3 实现显示系统的驱动程序
9.3.1 Goldfish中的FrameBuffer驱动程序
9.3.2 使用Gralloc模块的驱动程序
9.4 MSM中显示驱动的实现
9.4.1 MSM中的FrameBuffer驱动程序
9.4.2 MSM中的Gralloc驱动程序
9.5 OMAP中显示驱动的实现
9.5.1 文件omapfb-main.c
9.5.2 文件omapfb.h
9.6 6416中FrameBuffer的工作原理
第10章 音频系统驱动
10.1 音频系统结构
10.2 音频系统的层次
10.2.1 层次说明
10.2.2 Media库中的Audio框架
10.2.3 本地代码
10.2.4 JNI代码
10.2.5 Java代码
10.3 移植工作
10.3.1 两个任务
10.3.2 Audio的硬件抽象层
10.3.3 实现AudioFlinger中的Audio硬件抽象层
10.3.4 真正实现Audio硬件抽象层
10.4 MSM平台实现Audio驱动系统
10.4.1 实现Audio驱动程序
10.4.2 实现硬件抽象层
10.5 OSS平台实现Audio驱动系统
10.5.1 OSS驱动程序介绍
10.5.2 mixer
10.6 ALSA平台实现Audio系统
10.6.1 ALSA基础
10.6.2 注册音频设备和音频驱动
10.6.3 ALSA的底层接口
10.6.4 放音流程
10.6.5 录音流程
10.6.6 在Android中使用ALSA声卡
10.6.7 在OMAP平台移植Android的ALSA声卡驱动
10.7 6410中的ALSA驱动
10.7.1 ALSA的设备文件
10.7.2 创建声卡和PCM设备
第11章 视频输出系统驱动
11.1 视频输出系统结构
11.2 移植的内容
11.3 分析硬件抽象层
11.3.1 Overlay系统硬件抽象层的接口
11.3.2 实现硬件抽象层
11.3.3 实现接口
11.4 实现Overlay硬件抽象层
11.5 在OMAP平台实现Overlay系统
11.5.1 实现输出视频驱动程序
11.5.2 实现Overlay硬件抽象层
11.6 系统层调用Overlay模块
11.6.1 测试文件
11.6.2 在Android系统中创建Overlay
11.6.3 管理Overlay HAL模块
11.7 抽象层实现(V4l2驱动实现方式)
第12章 振动器系统驱动
12.1 振动器系统结构
12.1.1 硬件抽象层
12.1.2 JNI框架部分
12.2 开始移植
12.2.1 移植振动器驱动程序
12.2.2 实现硬件抽象层
12.3 在MSM平台实现振动器驱动
第13章 Android多媒体插件框架
13.1 Android多媒体插件
13.2 需要移植的内容
13.3 OpenCore引擎详解
13.3.1 OpenCore的层次结构
13.3.2 OpenCore的代码结构
13.3.3 OpenCore的编译结构
13.3.4 OpenCore OSCL
13.3.5 实现OpenCore中的OpenMax部分
13.3.6 OpenCore的扩展
13.4 Stagefright引擎
13.4.1 代码结构
13.4.2 实现OpenMax接口
13.4.3 Video Buffer传输流程
第14章 Camera照相机驱动
14.1 Camera系统的结构
14.2 移植的内容
14.2.1 fimc驱动模块的加载
14.2.2 V4l2驱动的用法
14.3 移植和调试
14.3.1 V4L2驱动程序
14.3.2 硬件抽象层
14.4 实现Camera系统的硬件抽象层
14.4.1 Java程序部分
14.4.2 Java本地调用部分
14.4.3 本地库libui.so
14.4.4 Camera服务libcameraservice.so
14.5 实现Camera系统
14.5.1 在MSM平台实现Camera系统
14.5.2 OMAP平台实现Camera系统
14.6 借助Sensor驱动使用照相机系统
第15章 传感器系统驱动
15.1 传感器系统的结构
15.2 移植Sensor驱动
15.2.1 移植驱动程序
15.2.2 移植硬件抽象层
15.2.3 实现上层部分
15.3 实现传感器
第16章 Wi-Fi系统、蓝牙系统和GPS系统
16.1 Wi-Fi系统的应用和移植
16.1.1 Wi-Fi系统的结构
16.1.2 移植的内容
16.1.3 移植和调试
16.1.4 OMAP平台实现Wi-Fi
16.1.5 配置Wi-Fi
16.1.6 SDIO设备的移植
16.1.7 移植Wi-Fi驱动的注意事项
16.2 蓝牙系统的应用和移植
16.2.1 蓝牙结构
16.2.2 移植的内容
16.2.3 具体移植
16.2.4 MSM平台的蓝牙驱动
16.2.5 本地适配器连接过程
16.2.6 远程适配器连接过程
16.2.7 分析6410的蓝牙驱动
16.3 定位系统
16.3.1 系统结构
16.3.2 移植的内容
16.3.3 移植和调试
16.3.4 GPS的串口驱动和数据读取
第17章 振动器驱动和警报器驱动
17.1 Alarm系统基础
17.1.1 Alarm系统的结构
17.1.2 移植的内容
17.2 移植和调试
17.3 实现Alarm驱动
17.4 MSM平台实现Alarm
第18章 光系统驱动和电池系统驱动
18.1 Lights光系统的应用和移植
18.1.1 Lights系统的结构
18.1.2 移植的内容
18.1.3 移植和调试
18.1.4 MSM平台实现光系统
18.1.5 深入分析Android的光系统
18.2 Battery电池系统的应用和移植
18.2.1 Battery系统的结构
18.2.2 移植的内容
18.2.3 移植和调试
18.2.4 模拟器中实现电池系统
……
猜您喜欢