Android技术内幕·系统卷

Android技术内幕·系统卷

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
6.957 评价豆瓣读书
免费试读

作品简介

《Android技术内幕:系统卷》是国内首本系统对Android的源代码进行深入分析的著作。全书将Android系统从构架上依次分为应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层等5个层次,旨在通过对Android系统源代码的全面分析来帮助开发者加深对Android系统架构设计和实现原理的认识,从而帮助他们解决开发中遇到的更加复杂的问题。

全书分为两卷,系统卷主要分析了Linux内核层、硬件抽象层和系统运行库层的各个模块的底层原理和实现细节;应用卷主要分析了应用层和应用框架层的各个模块的底层原理和实现细节。

具体而言,系统卷第1章首先从宏观上介绍了Android系统的架构以及各个层次之间的关系,然后介绍了如何获取Android源代码并搭建Android源代码开发环境和阅读环境的方法;第2章有针对性地剖析了Android的内核机制和结构,以及Android对Linux内核的改动和增强;第3章分析了Binder的架构和工作机制,以及Binder驱动的实现原理;第4章分析了Android电源管理模块的机制与实现;第5章全面地剖析了Android硬件设备驱动(显示、视频、音频、MTD、Event、蓝牙、WLAN等)的工作原理和实现,掌握这部分内容即可修改和编写基于Android的设备驱动程序;第6章深刻阐述了Android原生库的原理及实现,涉及系统C库、功能库、扩展库和原生的Server等重要内容;第7章系统地讲解了硬件抽象层的原理与实现,掌握这部分内容即可编写适合特定硬件设备驱动的抽象层接口;第8章和第9章是对系统运行库层的分析,主要讲解了Dalvik虚拟机的架构、原理与实现,以及Android的核心库相关的知识,掌握这部分内容即可完成对Android运行库的移植和修改。

本书适合所有的高级Android应用开发工程师、Android系统开发工程师、Android移植工程师、Android系统架构师和所有对Android源码实现感兴趣的读者。

杨丰盛,国内Android领域的先驱者和布道者,资深Android开发工程师,在Android应用开发方面有丰富的实战经验。他对Android的源代码进行了长达一年的系统学习和研究,对Android系统的架构设计和实现原理有非常深入的理解和认识,理论功底也十分深厚。国内著名IT技术网站51CTO推荐技术专家,曾多次接受《程序员》杂志采访并为其撰稿,同时他还多次应邀在国内的移动开发者大会和技术沙龙中开展讲座,深受欢迎。他还是畅销书作家,撰写的《Android应用开发揭秘》一书是目前Android领域口碑最好、销量也最好的一本书之一,这本书自上市以来已经重印9次,而且销量一直排在当当网、卓越网和互动网这3大网店的计算机类图书的排行榜前列。

此外,他还精通Java、C、C++等语言,在机顶盒软件开发和MTK平台软件开发方面有非常丰富的经验。游戏开发也是他的专长,曾经参与过《三国群英传说》、《大航海传奇》、《养成计划》等游戏的开发,2007年荣获中国软件行业协会游戏软件分会(CGIA)认证及国际游戏开发教育联合会国际认证。

作品目录

  1. 前言
  2. 本书面向的读者
  3. 如何阅读本书
  4. 致谢
  5. 第1章 准备工作
  6. 1.1 深入认识Android
  7. 1.1.1 Android的系统构架
  8. 1.1.2 Android的初始化流程
  9. 1.1.3 各个层次之间的相互关系
  10. 1.1.4 Android系统开发(移植)和应用开发
  11. 1.2 获取和编译Android的源码
  12. 1.2.1 环境配置
  13. 1.2.2 获取Android源码
  14. 1.2.3 编译Android的源码及其工具包
  15. 1.2.4 运行Android系统
  16. 1.3 开发环境搭建
  17. 1.3.1 应用开发环境搭建
  18. 1.3.2 源码开发环境搭建
  19. 1.4 Android源码结构
  20. 1.5 小结
  21. 第2章 Android的内核机制和结构剖析
  22. 2.1 Linux与Android的关系
  23. 2.1.1 为什么会选择Linux
  24. 2.1.2 Android不是Linux
  25. 2.2 Android对Linux内核的改动
  26. 2.2.1 Goldfish
  27. 2.2.2 YAFFS2
  28. 2.2.3 蓝牙
  29. 2.2.4 调度器(Scheduler)
  30. 2.2.5 Android新增的驱动
  31. 2.2.6 电源管理
  32. 2.2.7 杂项
  33. 2.3 Android对Linux内核的增强
  34. 2.3.1 Alarm(硬件时钟)
  35. 2.3.2 Ashmem(匿名内存共享)
  36. 2.3.3 Low Memory Killer(低内存管理)
  37. 2.3.4 Logger(日志设备)
  38. 2.3.5 Android PMEM
  39. 2.3.6 switch
  40. 2.3.7 Timed GPIO
  41. 2.3.8 Android Ram Console
  42. 2.4 小结
  43. 第3章 Android的IPC机制——Binder
  44. 3.1 Binder概述
  45. 3.1.1 为什么选择Binder
  46. 3.1.2 初识Binder
  47. 3.2 Binder驱动的原理和实现
  48. 3.2.1 Binder驱动的原理
  49. 3.2.2 Binder驱动的实现
  50. 3.3 Binder的构架与实现
  51. 3.3.1 Binder的系统构架
  52. 3.3.2 Binder的机制和原理
  53. 3.4 小结
  54. 第4章 电源管理
  55. 4.1 电源管理概述
  56. 4.2 电源管理结构
  57. 4.3 Android的电源管理机制
  58. 4.4 Android电源管理机制的实现
  59. 4.5 小结
  60. 第5章 驱动的工作原理及实现机制
  61. 5.1 显示驱动(Framebuffer)
  62. 5.1.1 Framebuffer的工作原理
  63. 5.1.2 Framebuffer的构架
  64. 5.1.3 Framebuffer驱动的实现机制
  65. 5.2 视频驱动(V4L和V4L2)
  66. 5.2.1 V4L2介绍
  67. 5.2.2 V4L2的原理和构架
  68. 5.2.3 V4L2的实现
  69. 5.3 音频驱动(OSS和ALSA)
  70. 5.3.1 OSS与ALSA介绍
  71. 5.3.2 OSS的构架与实现
  72. 5.3.3 ALSA的构架与实现
  73. 5.4 MTD驱动
  74. 5.4.1 MTD驱动的功能
  75. 5.4.2 MTD驱动的构架
  76. 5.4.3 MTD驱动的原理及实现
  77. 5.5 Event输入设备驱动
  78. 5.5.1 Input的系统构架
  79. 5.5.2 Event输入驱动的构架
  80. 5.5.3 Event输入驱动的原理
  81. 5.5.4 Event输入驱动的实现
  82. 5.6 蓝牙驱动(Bluetooth)
  83. 5.6.1 Bluetooth驱动的构架
  84. 5.6.2 BlueZ的原理及实现
  85. 5.7 WLAN驱动(Wi-Fi)
  86. 5.7.1 WLAN构架
  87. 5.7.2 Wi-Fi驱动的实现原理
  88. 5.8 小结
  89. 第6章 原生库的原理及实现
  90. 6.1 系统C库(Bionic Libc)
  91. 6.1.1 Bionic Libc功能概述
  92. 6.1.2 Bionic Libc实现原理
  93. 6.2 功能库
  94. 6.2.1 WebKit构架与实现
  95. 6.2.2 多媒体框架与实现
  96. 6.2.3 Android SQLite框架及原理
  97. 6.3 扩展库
  98. 6.3.1 Skia底层库分析
  99. 6.3.2 OpenGL底层库分析
  100. 6.3.3 Android-OpenSSL实现及运用
  101. 6.3.4 FreeType及Font Engine Manager
  102. 6.3.5 FreeType结构体系和渲染流程
  103. 6.4 原生服务
  104. 6.4.1 AudioFlinger实现
  105. 6.4.2 SurfaceFlinger实现
  106. 6.5 小结
  107. 第7章 硬件抽象层的原理与实现
  108. 7.1 硬件抽象层的实现原理
  109. 7.1.1 Android HAL构架
  110. 7.1.2 Android HAL的实现
  111. 7.2 Android Overlay构架与实现
  112. 7.2.1 Android Overlay系统构架
  113. 7.2.2 Overlay HAL框架与实现
  114. 7.2.3 Overlay与SurfaceFinger
  115. 7.3 Android Camera构架与实现
  116. 7.3.1 Android Camera系统构架
  117. 7.3.2 Camera HAL框架与实现
  118. 7.3.3 Camera本地实现
  119. 7.4 Android Audio HAL实现
  120. 7.4.1 Audio HAL框架
  121. 7.4.2 Android默认的Audio HAL实现
  122. 7.4.3 DUMP功能的Audio HAL实现
  123. 7.4.4 基于A2dp的蓝牙音频设备HAL实现
  124. 7.4.5 模拟器上的Audio HAL实现
  125. 7.5 Android RIL实现
  126. 7.5.1 Android RIL构架
  127. 7.5.2 radiooptiongs实现
  128. 7.5.3 libril库实现
  129. 7.5.4 reference-ril库实现
  130. 7.5.5 RILD守护进程实现
  131. 7.5.6 request流程分析
  132. 7.5.7 response流程分析
  133. 7.6 Android Sensor HAL实现
  134. 7.6.1 Android Sensor构建
  135. 7.6.2 Sensor HAL接口
  136. 7.6.3 Sensor HAL实现
  137. 7.7 Android WIFI HAL实现
  138. 7.7.1 Android WIFI系统构架
  139. 7.7.2 wpa_supplicant框架
  140. 7.7.3 WIFI HAL实现
  141. 7.8 Android蓝牙本地实现
  142. 7.8.1 Android蓝牙构架
  143. 7.8.2 BlueZ结构体系
  144. 7.8.3 BlueZ适配层
  145. 7.9 Android定位实现
  146. 7.9.1 定位系统构架
  147. 7.9.2 GPS HAL实现
  148. 7.10 Android Power HAL实现
  149. 7.11 Android Vibrator HAL实现
  150. 7.12 小结
  151. 第8章 Dalvik虚拟机的构架、原理与实现
  152. 8.1 Dalvik虚拟机概述
  153. 8.1.1 什么是Dalvik虚拟机
  154. 8.1.2 Dalvik虚拟机的功能
  155. 8.1.3 Dalvik虚拟机与Java虚拟机的区别
  156. 8.2 Dalvik构架与实现
  157. 8.2.1 Dalvik系统构架
  158. 8.2.2 dx和dexdump工具
  159. 8.2.3 .dex文件格式解析
  160. 8.2.4 Dalvik内部机制
  161. 8.2.5 Dalvik进程管理
  162. 8.2.6 Dalvik内存管理
  163. 8.2.7 Dalvik加载器
  164. 8.2.8 Dalvik解释器
  165. 8.2.9 Dalvik JIT
  166. 8.3 JNI的构架与实现
  167. 8.3.1 JNI构架
  168. 8.3.2 JNI实现
  169. 8.4 小结
  170. 第9章 Android核心库
  171. 9.1 Android核心库简介
  172. 9.2 Android系统API
  173. 9.2.1 android包
  174. 9.2.2 android资源包
  175. 9.2.3 ApiCheck机制
  176. 9.3 小结
  177. 后记
载入中