《Android技术内幕:系统卷》

《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源码实现感兴趣的读者。
目录:
前言
  第1章准备工作 /1
  1.1深入认识android /2
  1.1.1android的系统构架 /2
  1.1.2android的初始化流程 /5
  1.1.3各个层次之间的相互关系 /8
  1.1.4android系统开发(移植)和应用开发 /11
  1.2获取和编译android的源码 /13
  1.2.1环境配置 /13
  1.2.2获取android源码 /14
  1.2.3编译android的源码及其工具包 /16
  1.2.4运行android系统 /21
  1.3开发环境搭建 /23
  1.3.1应用开发环境搭建 /23
  1.3.2源码开发环境搭建 /26
  1.4android源码结构 /32
  1.5小结 /33
  第2章android的内核机制和结构剖析 /34
  2.1linux与android的关系 /35
  .2.1.1为什么会选择linux /35
  2.1.2android不是linux /35
  2.2android对linux内核的改动 /37
  2.2.1goldfish /37
  2.2.2yaffs2 /38
  2.2.3蓝牙 /39
  2.2.4调度器(scheduler)/39
  2.2.5android新增的驱动 /40
  2.2.6电源管理 /41
  2.2.7杂项 /41
  2.3android对linux内核的增强 /42
  2.3.1alarm(硬件时钟)/43
  2.3.2ashmem(匿名内存共享)/46
  2.3.3low memory killer(低内存管理)/52
  2.3.4logger(日志设备)/56
  2.3.5android pmem /65
  2.3.6switch /79
  2.3.7timed gpio /88
  2.3.8android ram console /94
  2.4小结 /99
  第3章android的ipc机制--binder /100
  3.1binder概述 /101
  3.1.1为什么选择binder /101
  3.1.2初识binder /102
  3.2binder驱动的原理和实现 /102
  3.2.1binder驱动的原理 /102
  3.2.2binder驱动的实现 /103
  3.3binder的构架与实现 /132
  3.3.1binder的系统构架 /132
  3.3.2binder的机制和原理 /133
  3.4小结 /150
  第4章电源管理 /151
  4.1电源管理概述 /152
  4.2电源管理结构 /152
  4.3android的电源管理机制 /153
  4.4android电源管理机制的实现 /154
  4.5小结 /187
  第5章驱动的工作原理及实现机制 /188
  5.1显示驱动(framebuffer)/189
  5.1.1framebuffer的工作原理 /189
  5.1.2framebuffer的构架 /190
  5.1.3framebuffer驱动的实现机制 /190
  5.2视频驱动(v4l和v4l2)/201
  5.2.1v4l2介绍 /201
  5.2.2v4l2的原理和构架 /201
  5.2.3v4l2的实现 /202
  5.3音频驱动(oss和alsa)/208
  5.3.1oss与alsa介绍 /208
  5.3.2oss的构架与实现 /209
  5.3.3alsa的构架与实现 /213
  5.4mtd驱动 /214
  5.4.1mtd驱动的功能 /214
  5.4.2mtd驱动的构架 /215
  5.4.3mtd驱动的原理及实现 /215
  5.5event输入设备驱动 /223
  5.5.1input的系统构架 /223
  5.5.2event输入驱动的构架 /224
  5.5.3event输入驱动的原理 /224
  5.5.4event输入驱动的实现 /225
  5.6蓝牙驱动(bluetooth)/235
  5.6.1bluetooth驱动的构架 /235
  5.6.2bluez的原理及实现 /237
  5.7wlan驱动(wi-fi)/244
  5.7.1wlan构架 /244
  5.7.2wi-fi驱动的实现原理 /245
  5.8小结 /245
  第6章原生库的原理及实现 /246
  6.1系统c库(bionic libc)/247
  6.1.1bionic libc功能概述 /247
  6.1.2bionic libc实现原理 /248
  6.2功能库 /258
  6.2.1webkit构架与实现 /258
  6.2.2多媒体框架与实现 /275
  6.2.3android sqlite框架及原理 /285
  6.3扩展库 /289
  6.3.1skia底层库分析 /289
  6.3.2opengl底层库分析 /299
  6.3.3android-openssl实现及运用 /306
  6.3.4freetype及font engine manager /317
  6.3.5freetype结构体系和渲染流程 /317
  6.4原生服务 /328
  6.4.1audioflinger实现 /328
  6.4.2surfaceflinger实现 /341
  6.5小结 /353
  第7章硬件抽象层的原理与实现 /354
  7.1硬件抽象层的实现原理 /355
  7.1.1android hal构架 /355
  7.1.2android hal的实现 /357
  7.2android overlay构架与实现 /361
  7.2.1android overlay系统构架 /361
  7.2.2overlay hal框架与实现 /362
  7.2.3overlay与surfacefinger /369
  7.3android camera 构架与实现 /375
  7.3.1android camera系统构架 /375
  7.3.2camera hal框架与实现 /377
  7.3.3camera本地实现 /385
  7.4android audio hal实现 /394
  7.4.1audio hal框架 /395
  7.4.2android默认的audio hal实现 /398
  7.4.3dump功能的audio hal实现 /400
  7.4.4基于a2dp的蓝牙音频设备hal实现 /402
  7.4.5模拟器上的audio hal实现 /403
  7.5android ril实现 /404
  7.5.1android ril构架 /404
  7.5.2radiooptiongs实现 /407
  7.5.3libril库实现 /409
  7.5.4reference-ril库实现 /415
  7.5.5rild守护进程实现 /418
  7.5.6request流程分析 /423
  7.5.7response流程分析 /427
  7.6android sensor hal实现 /434
  7.6.1android sensor构建 /434
  7.6.2sensor hal接口 /435
  7.6.3sensor hal实现 /438
  7.7android wifi hal实现 /441
  7.7.1android wifi系统构架 /441
  7.7.2wpa_supplicant框架 /442
  7.7.3wifi hal实现 /444
  7.8android蓝牙本地实现 /447
  7.8.1android蓝牙构架 /447
  7.8.2bluez结构体系 /448
  7.8.3bluez适配层 /452
  7.9android 定位实现 /453
  7.9.1定位系统构架 /453
  7.9.2gps hal实现 /454
  7.10android power hal实现 /459
  7.11android vibrator hal实现 /461
  7.12小结 /462
  第8章dalvik虚拟机的构架、原理与实现 /463
  8.1dalvik虚拟机概述 /464
  8.1.1什么是dalvik虚拟机 /464
  8.1.2dalvik虚拟机的功能 /464
  8.1.3dalvik虚拟机与java虚拟机的区别 /465
  8.2dalvik构架与实现 /466
  8.2.1dalvik系统构架 /466
  8.2.2dx和dexdump工具 /468
  8.2.3.dex文件格式解析 /470
  8.2.4dalvik内部机制 /487
  8.2.5dalvik进程管理 /492
  8.2.6dalvik内存管理 /501
  8.2.7dalvik加载器 /509
  8.2.8dalvik解释器 /517
  8.2.9dalvik jit /519
  8.3jni的构架与实现 /523
  8.3.1jni构架 /523
  8.3.2jni实现 /524
  8.4小结 /526
  第9章android 核心库 /527
  9.1android核心库简介 /528
  9.2android系统api /529
  9.2.1android包 /529
  9.2.2android资源包 /529
  9.2.3apicheck机制 /529
  9.3小结 /532
  后记/533
2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章