更新时间:2019-10-12 15:40:45
封面
版权信息
内容简介
前言
第1篇 基础知识篇
第1章 Android驱动开发基础
1.1 认识什么是驱动
1.1.1 驱动程序的作用
1.1.2 PC中的驱动
1.1.3 手机中的驱动程序
1.2 开源还是不开源
1.2.1 雾里看花的开源
1.2.2 从为什么选择Java谈为什么不开源驱动程序
1.2.3 对驱动开发者来说是一把双刃剑
1.3 Linux开发基础
1.3.1 Linux历史简介
1.3.2 主要版本
1.3.3 Linux的巨大前景
1.4 Android和Linux的关系
1.4.1 Android继承于Linux
1.4.2 Android和Linux内核的区别
1.5 简析Linux内核
1.5.1 Linux内核的体系结构
1.5.2 和Android密切相关的Linux内核知识
1.6 分析Linux内核源码
1.6.1 源码目录结构
1.6.2 浏览源码的工具
1.6.3 Linux内核的显著特性
1.6.4 学习Linux内核的方法
第2章 获取并编译Android源码
2.1 获取Android源码
2.1.1 在Linux系统获取Android源码
2.1.2 在Windows平台获取Android源码
2.2 分析Android源码结构
2.3 编译Android源码
2.3.1 搭建编译环境
2.3.2 开始编译
2.3.3 在模拟器中运行
2.3.4 常见的错误分析
2.3.5 实践演练——演示两种编译Android程序的方法
2.4 编译Android Kernel
2.4.1 获取Goldfish内核代码
2.4.2 获取MSM内核代码
2.4.3 获取OMAP内核代码
2.4.4 编译Android的Linux内核
第3章 Android驱动移植基础
3.1 驱动开发需要做的工作
3.2 Android移植基础
3.2.1 移植的任务
3.2.2 需要移植的内容
3.2.3 驱动开发需要做的工作
3.3 Android对Linux的改造
3.3.1 Android的独有驱动
3.3.2 Android的核心驱动
3.3.3 Android对Linux内核文件的改动
3.3.4 为Android构建Linux的操作系统
3.4 内核空间和用户空间之间接口
3.4.1 内核空间和用户空间的相互作用
3.4.2 系统和硬件之间的交互
3.4.3 使用Relay实现内核到用户空间的数据传输
3.5 三类驱动程序
3.5.1 字符设备驱动
3.5.2 块设备驱动
3.5.3 网络设备驱动
第4章 分析三大内核系统
4.1 Goldfish内核和驱动解析
4.1.1 Goldfish基础
4.1.2 Android专用驱动简介
4.1.3 Ashmem驱动介绍
4.1.4 Pmem驱动介绍
4.1.5 Alarm驱动程序
4.1.6 USB Gadget驱动程序
4.1.7 Paranoid驱动介绍
4.1.8 Goldfish的设备驱动
4.2 MSM内核和驱动解析
4.2.1 MSM基础
4.2.2 移植MSM内核简介
4.2.3 移植MSM
4.3 OMAP内核和驱动解析
4.3.1 OMAP基础
4.3.2 OMAP内核
4.3.3 移植OMAP体系结构
4.3.4 移植Android专用驱动和组件
4.3.5 OMAP的设备驱动
第2篇 专用驱动篇
第5章 分析JNI
5.1 JNI的本质
5.2 分析Java层
5.2.1 加载JNI库
5.2.2 实现扫描工作
5.2.3 读取并保存信息
5.2.4 删除不是SD卡中的文件信息
5.2.5 processDirectory
5.2.6 扫描函数scanFile()
5.2.7 JNI中的异常处理
5.3 分析JNI层
5.3.1 将Native对象的指针保存到Java对象
5.3.2 创建Native层的MediaScanner对象
5.4 Native(本地)层
5.4.1 注册JNI函数