logo
分类于: 编程语言 计算机基础 互联网 云计算&大数据 人工智能

简介

Android底层开发技术实战详解(第2版): 内核、移植和驱动

Android底层开发技术实战详解(第2版): 内核、移植和驱动 0.0分

资源最后更新于 2020-03-29 04:22:27

作者:王振丽

出版社:出版社电子工业出版社

出版日期:2015-03

ISBN:9787121254413

文件格式: pdf

标签: 计算机 编程 软件开发 Android 操作系统 Android进阶 Android移动开发技术丛书

简介· · · · · ·

《Android底层开发技术实战详解——内核、移植和驱动(第2版)》从底层原理开始讲起,结合真实的案例向读者详细介绍了Android内核、移植和驱动开发的整个流程。全书分为21章,依次讲解驱动移植的必要性,何为HAL层深入分析,Goldfish、MSM、OMAP内核和驱动解析,显示系统、输入系统、振动器系统、音频系统、视频输出系统的驱动,OpenMax多媒体和多媒体插件框架,传感器,照相机,Wi-Fi,蓝牙和GPS,电话系统,时钟系统,USB Gadget驱动,Lights光系统和Battery电池系统等。在每一章中,重点介绍了与Android驱动开发相关的底层知识,并对Android源码进行了剖析。《Android底层开发技术实战详解——内核、移植和驱动(第2版)》适合Android研发人员及Android爱好者学习,也可以作为相关培训学校和大专院校相关专业的教学用书。王振丽:吉林大学计算机硕士,精通C、C++、Linux、Java开发技术,擅长嵌入式系统、物联网、大数据等开发技术,对蓝牙技术、传感器、NFC数据传播、红外传输技术有独特的见解。毕业设计《大安移动机器人》成果申请国家专利,已经被广大制造业公司的精密机床设备所使用。毕业后就职于贝尔豪斯公司,负责智能家居系统的研究和开发和产品设计工作,带领团队独立开发出多款功能强大的智能家居、健康仪器、智能电视、车载设备等大型系统。在Android底层架构和驱动开发方面有着丰富的经验,著名硬件驱动开发专家。

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

  1. 前言
  2. 本书内容
  3. 本书特色
  4. 本书作者
  5. 第1章 Android底层开发基础
  6. 1.1 什么是驱动
  7. 1.1.1 驱动程序的魅力
  8. 1.1.2 手机中的驱动程序
  9. 1.2 开源还是不开源的问题
  10. 1.2.1 雾里看花的开源
  11. 1.2.2 从为什么选择Java谈为什么不开源驱动程序
  12. 1.2.3 对驱动开发者来说是一把双刃剑
  13. 1.3 Android和Linux
  14. 1.3.1 Linux简介
  15. 1.3.2 Android和Linux的关系
  16. 1.4 简析Linux内核
  17. 1.4.1 内核的体系结构
  18. 1.4.2 和Android密切相关的Linux内核知识
  19. 1.5 分析Linux内核源代码很有必要
  20. 1.5.1 源代码目录结构
  21. 1.5.2 Linux 3.10的特性
  22. 1.5.3 浏览源代码的工具
  23. 1.5.4 为什么用汇编语言编写内核代码
  24. 1.5.5 Linux内核的显著特性
  25. 1.5.6 学习Linux内核的方法
  26. 第2章 分析Android源代码
  27. 2.1 搭建Linux开发环境和工具
  28. 2.1.1 搭建Linux开发环境
  29. 2.1.2 设置环境变量
  30. 2.1.3 安装编译工具
  31. 2.2 获取Android源代码
  32. 2.3 分析并编译Android源代码
  33. 2.3.1 Android源代码的结构
  34. 2.3.2 编译Android源代码
  35. 2.3.3 运行Android源代码
  36. 2.3.4 实践演练——演示编译Android程序的两种方法
  37. 2.4 编译Android Kernel
  38. 2.4.1 获取Goldfish内核代码
  39. 2.4.2 获取MSM内核代码
  40. 2.4.3 获取OMAP内核代码
  41. 2.4.4 编译Android的Linux内核
  42. 2.5 运行模拟器
  43. 2.5.1 Linux环境下运行模拟器的方法
  44. 2.5.2 模拟器辅助工具——adb
  45. 第3章 驱动需要移植
  46. 3.1 驱动开发需要做的工作
  47. 3.2 Android移植
  48. 3.2.1 移植的任务
  49. 3.2.2 移植的内容
  50. 3.2.3 驱动开发的任务
  51. 3.3 Android对Linux的改造
  52. 3.3.1 Android对Linux内核文件的改动
  53. 3.3.2 为Android构建Linux的操作系统
  54. 3.4 内核空间和用户空间接口是一个媒介
  55. 3.4.1 内核空间和用户空间的相互作用
  56. 3.4.2 系统和硬件之间的交互
  57. 3.4.3 使用Relay实现内核到用户空间的数据传输
  58. 3.5 三类驱动程序
  59. 3.5.1 字符设备驱动程序
  60. 3.5.2 块设备驱动程序
  61. 3.5.3 网络设备驱动程序
  62. 第4章 HAL层深入分析
  63. 4.1 认识HAL层
  64. 4.1.1 HAL层的发展
  65. 4.1.2 过去和现在的区别
  66. 4.2 分析HAL层源代码
  67. 4.2.1 分析HAL moudle
  68. 4.2.2 分析mokoid工程
  69. 4.3 总结HAL层的使用方法
  70. 4.4 传感器在HAL层的表现
  71. 4.4.1 HAL层的Sensor代码
  72. 4.4.2 总结Sensor编程的流程
  73. 4.4.3 分析Sensor源代码看Android API与硬件平台的衔接
  74. 4.5 移植总结
  75. 4.5.1 移植各个Android部件的方式
  76. 4.5.2 移植技巧之一——不得不说的辅助工作
  77. 4.6 开发一个硬件驱动程序
  78. 4.6.1 源代码文件wuming.h和wuming.c
  79. 4.6.2 编译配置处理
  80. 4.6.3 修改配置文件
  81. 4.6.4 验证驱动程序
  82. 第5章 分析Goldfish内核系统
  83. 5.1 Android专有驱动介绍
  84. 5.2 Goldfish基础
  85. 5.3 Android专用驱动简介
  86. 5.3.1 Logger驱动介绍
  87. 5.3.2 Low Memory Killer组件介绍
  88. 5.3.3 Timed Output驱动介绍
  89. 5.3.4 Timed Gpio驱动介绍
  90. 5.3.5 Ram Console驱动介绍
  91. 5.4 Ashmem驱动介绍
  92. 5.5 Pmem驱动介绍
  93. 5.6 Alarm驱动程序
  94. 5.7 USB Gadget驱动程序
  95. 5.8 Paranoid驱动介绍
  96. 5.9 Goldfish的设备驱动
  97. 第6章 MSM内核和驱动解析
  98. 6.1 MSM基础
  99. 6.1.1 常见MSM处理器产品
  100. 6.1.2 Snapdragon内核介绍
  101. 6.2 移植MSM内核简介
  102. 6.3 移植MSM
  103. 6.3.1 Makefile文件
  104. 6.3.2 驱动和组件
  105. 6.3.3 设备驱动
  106. 6.3.4 高通特有的组件
  107. 第7章 OMAP内核和驱动解析
  108. 7.1 OMAP基础
  109. 7.1.1 OMAP简析
  110. 7.1.2 常见OMAP处理器产品
  111. 7.1.3 开发平台
  112. 7.2 OMAP内核
  113. 7.3 移植OMAP体系结构
  114. 7.3.1 移植OMAP平台
  115. 7.3.2 移植OMAP处理器
  116. 7.4 移植Android专用驱动和组件
  117. 7.5 OMAP的设备驱动
  118. 7.5.1 显示驱动程序
  119. 7.5.2 I2C总线驱动程序
  120. 7.5.3 摄像头和视频输出驱动程序
  121. 7.5.4 触摸屏和键盘驱动程序
  122. 7.5.5 实时时钟驱动程序
  123. 7.5.6 音频驱动程序
  124. 7.5.7 蓝牙驱动程序
  125. 第8章 显示系统驱动应用
  126. 8.1 显示系统介绍
  127. 8.2 分析内核层
  128. 8.2.1 分析接口文件fb.h
  129. 8.2.2 分析内核实现文件fbmem.c
  130. 8.3 分析硬件抽象层
  131. 8.3.1 分析头文件
  132. 8.3.2 分析硬件帧缓冲区
  133. 8.3.3 实现缓冲区的分配
  134. 8.3.4 显示缓冲映射
  135. 8.3.5 分析管理库文件LayerBuffer.cpp
  136. 8.4 分析显示系统的驱动程序
  137. 8.4.1 Goldfish中的FrameBuffer驱动程序
  138. 8.4.2 使用Gralloc模块的驱动程序
  139. 8.4.3 分析MSM高通处理器中的显示驱动实现
  140. 8.4.4 分析OMAP处理器中的显示驱动实现
  141. 第9章 输入系统驱动应用
  142. 9.1 输入系统介绍
  143. 9.1.1 Android输入系统结构元素介绍
  144. 9.1.2 移植Android输入系统时的工作
  145. 9.2 分析Input(输入)系统驱动
  146. 9.2.1 分析头文件
  147. 9.2.2 分析核心文件input.c
  148. 9.2.3 分析event机制
  149. 9.3 分析硬件抽象层
  150. 9.3.1 分析文件KeycodeLabels.h
  151. 9.3.2 分析文件KeyCharacterMap.h
  152. 9.3.3 分析Kl格式文件
  153. 9.3.4 分析kcm格式文件
  154. 9.3.5 分析文件EventHub.cpp
  155. 第10章 振动器系统驱动
  156. 10.1 振动器系统结构
  157. 10.2 分析硬件抽象层
  158. 10.3 分析JNI层部分
  159. 10.4 分析Java层部分
  160. 10.5 实现移植工作
  161. 10.5.1 移植振动器驱动程序
  162. 10.5.2 实现硬件抽象层
  163. 10.6 在MSM平台实现振动器驱动
  164. 第11章 音频系统驱动
  165. 11.1 音频系统结构
  166. 11.2 分析音频系统的层次
  167. 11.2.1 层次说明
  168. 11.2.2 Media库中的Audio框架
  169. 11.2.3 本地代码
  170. 11.2.4 分析JNI代码
  171. 11.2.5 Java层代码简介
  172. 11.3 移植Audio系统的工作
  173. 11.3.1 我们的工作
  174. 11.3.2 分析硬件抽象层
  175. 11.3.3 分析AudioFlinger中的Audio硬件抽象层的实现
  176. 11.3.4 真正实现Audio硬件抽象层
  177. 11.4 在MSM平台实现Audio驱动系统
  178. 11.4.1 实现Audio驱动程序
  179. 11.4.2 实现硬件抽象层
  180. 第12章 视频输出系统驱动
  181. 12.1 视频输出系统结构
  182. 12.2 需要移植的部分
  183. 12.3 分析硬件抽象层
  184. 12.3.1 Overlay系统硬件抽象层的接口
  185. 12.3.2 实现Overlay系统的硬件抽象层
  186. 12.3.3 实现接口
  187. 12.4 实现Overlay硬件抽象层
  188. 12.5 在OMAP平台实现Overlay系统
  189. 12.5.1 实现输出视频驱动程序
  190. 12.5.2 实现Overlay硬件抽象层
  191. 12.6 系统层调用Overlay HAL的架构
  192. 12.6.1 调用Overlay HAL的架构的流程
  193. 12.6.2 S3C6410 Android Overlay的测试代码
  194. 第13章 OpenMax多媒体框架
  195. 13.1 OpenMax基本层次结构
  196. 13.2 分析OpenMax框架构成
  197. 13.2.1 OpenMax总体层次结构
  198. 13.2.2 OpenMax IL层的结构
  199. 13.2.3 Android中的OpenMax
  200. 13.3 实现OpenMax IL层接口
  201. 13.3.1 OpenMax IL层的接口
  202. 13.3.2 在OpenMax IL层中需要做什么
  203. 13.3.3 研究Android中的OpenMax适配层
  204. 13.4 在OMAP平台实现OpenMax IL
  205. 13.4.1 实现文件
  206. 13.4.2 分析TI OpenMax IL的核心
  207. 13.4.3 实现TI OpenMax IL组件实例
  208. 第14章 多媒体插件框架
  209. 14.1 Android多媒体插件
  210. 14.2 需要移植的内容
  211. 14.3 OpenCore引擎
  212. 14.3.1 OpenCore层次结构
  213. 14.3.2 OpenCore代码结构
  214. 14.3.3 OpenCore编译结构
  215. 14.3.4 OpenCore OSCL
  216. 14.3.5 实现OpenCore中的OpenMax部分
  217. 14.3.6 OpenCore的扩展
  218. 14.4 Stagefright引擎
  219. 14.4.1 Stagefright代码结构
  220. 14.4.2 Stagefright实现OpenMax接口
  221. 14.4.3 Video Buffer传输流程
  222. 第15章 传感器系统
  223. 15.1 传感器系统的结构
  224. 15.2 分析需要移植的内容
  225. 15.2.1 移植驱动程序
  226. 15.2.2 移植硬件抽象层
  227. 15.2.3 实现上层部分
  228. 15.3 在模拟器中实现传感器驱动
  229. 第16章 照相机系统
  230. 16.1 Camera系统的结构
  231. 16.2 分析需要移植的内容
  232. 16.3 移植和调试
  233. 16.3.1 V4L2驱动程序
  234. 16.3.2 硬件抽象层
  235. 16.4 实现Camera系统的硬件抽象层
  236. 16.4.1 Java程序部分
  237. 16.4.2 Camera的Java本地调用部分
  238. 16.4.3 Camera的本地库libui.so
  239. 16.4.4 Camera服务libcameraservice.so
  240. 16.5 在MSM平台实现Camera驱动系统
  241. 16.6 在OMAP平台实现Camera驱动系统
  242. 第17章 Wi-Fi系统、蓝牙系统和GPS系统
  243. 17.1 Wi-Fi系统
  244. 17.1.1 Wi-Fi系统的结构
  245. 17.1.2 需要移植的内容
  246. 17.1.3 移植和调试
  247. 17.1.4 OMAP平台实现Wi-Fi
  248. 17.1.5 配置Wi-Fi的流程
  249. 17.1.6 具体演练——在Android下实现Ethernet
  250. 17.2 蓝牙系统
  251. 17.2.1 蓝牙系统的结构
  252. 17.2.2 需要移植的内容
  253. 17.2.3 具体移植
  254. 17.2.4 MSM平台的蓝牙驱动
  255. 17.3 定位系统
  256. 17.3.1 定位系统的结构
  257. 17.3.2 分析需要移植的内容
  258. 17.3.3 分析驱动程序
  259. 17.3.4 分析硬件抽象层
  260. 17.3.5 分析上层应用部分
  261. 第18章 电话系统
  262. 18.1 电话系统基础
  263. 18.1.1 电话系统简介
  264. 18.1.2 电话系统结构
  265. 18.2 需要移植的内容
  266. 18.3 移植和调试
  267. 18.3.1 驱动程序
  268. 18.3.2 RIL接口
  269. 18.4 电话系统实现流程分析
  270. 18.4.1 初始启动流程
  271. 18.4.2 request流程
  272. 18.4.3 response流程
  273. 第19章 分析时钟系统驱动
  274. 19.1 Alarm系统基础
  275. 19.1.1 Alarm层次结构介绍
  276. 19.1.2 我们需要移植的内容
  277. 19.2 分析RTC驱动程序
  278. 19.3 分析Alarm驱动程序
  279. 19.3.1 分析文件android_alarm.h
  280. 19.3.2 分析文件alarm.c
  281. 19.3.3 分析文件alarm-dev.c
  282. 19.4 分析JNI层
  283. 19.5 分析Java层
  284. 19.5.1 分析AlarmManagerService类
  285. 19.5.2 分析AlarmManager类
  286. 19.6 模拟器环境的具体实现
  287. 第20章 分析USB Gadget驱动
  288. 20.1 分析Linux内核的USB驱动程序
  289. 20.1.1 USB设备基础
  290. 20.1.2 分析USB和sysfs的联系
  291. 20.1.3 分析urb通信方式
  292. 20.1.4 分析USB驱动的例程
  293. 20.2 分析USB Gadget驱动
  294. 20.2.1 分析软件结构
  295. 20.2.2 层次整合
  296. 20.2.3 USB设备枚举
  297. 第21章 其他系统
  298. 21.1 Lights光系统
  299. 21.1.1 Lights光系统的结构
  300. 21.1.2 需要移植的内容
  301. 21.1.3 移植和调试
  302. 21.1.4 MSM平台实现光系统
  303. 21.2 Battery电池系统
  304. 21.2.1 Battery系统的结构
  305. 21.2.2 需要移植的内容
  306. 21.2.3 移植和调试
  307. 21.2.4 在模拟器中实现电池系统