1 概述 1
1.1 上下文环境 1
1.2 输入输出模型 2
1.3 适用的终端类型 3
1.4 支持的应用类型 3
1.5 功能要求 4
1.5.1 电视直播要求 4
1.5.2 视频点播要求 4
1.5.3 应用管理要求 4
1.5.4 多桌面支持要求 4
1.5.5 可升级支持要求 4
2 软件架构 5
2.1 动态架构 5
2.2 静态架构 6
2.2.1 音频系统 9
2.2.2 图形系统 10
2.2.3 按键消息输入系统 11
3 技术基础 13
3.1 Binder框架 13
3.1.1 Native Binder框架和分层通信模型 13
3.1.2 Java Binder框架和分层通信模型 16
3.1.3 ProcessState 17
3.1.4 IPCThreadState 17
3.2 服务管理器(ServiceManager) 17
3.2.1 服务注册 18
3.2.2 服务获取 19
3.2.3 服务使用 19
3.3 孵化器(zygote) 19
3.4 启动过程 19
3.4.1 init进程 21
3.4.2 启动系统服务进程 25
3.4.3 启动Native服务 26
3.4.4 启动Java服务 27
3.4.5 启动Home主应用(Launcher) 31
3.5 广播(Broadcast)机制 31
3.6 观察者(Observer)机制 31
3.7 Java服务组件的基本模型和构成元素 38
3.7.1 2-Box模型 38
3.7.2 3-Box模型 41
3.7.3 1-Box模型 42
3.8 Native服务组件的基本模型和构成元素 43
3.8.1 2-Box模型 44
4 硬件抽象层 47
4.1.1 音频(Audio)模块 55
4.1.2 音频策略(Audio Policy)模块 57
4.1.3 摄像头(Camera)模块 61
4.1.4 Gralloc模块 62
4.1.5 HWComposer模块 66
4.1.6 传感器(Sensors)模块 68
5 Native能力层 70
5.1 系统服务进程 70
5.1.1 adbd 70
5.1.2 bluetoothd 70
5.1.3 bootanimation 71
5.1.4 console 71
5.1.5 debuggerd 72
5.1.6 dbus-daemon 72
5.1.7 dhcpcd_ethO 73
5.1.8 drmserver 73
5.1.9 dtvserver 74
5.1.10 dumpstate 76
5.1.11 installd 76
5.1.12 keystore 77
5.1.13 mediaserver 77
5.1.14 mtpd 79
5.1.15 netd 80
5.1.16 racoon 80
5.1.17 remote_server 80
5.1.18 secu_agent 81
5.1.19 servicemanager 81
5.1.20 surfaceflinger 83
5.1.21 ueventd 84
5.1.22 vold 85
5.1.23 wirelesskey 86
5.1.24 wpa_supplicant 86
5.1.25 zygote & system_server 87
5.2 服务组件 92
5.2.1 drmserver进程管理的Native服务组件 92
5.2.2 dtvserver进程管理的Native服务组件 97
5.2.3 mediaserver进程管理的Native服务组件 100
5.2.4 surfaceflinger进程管理的Native服务组件 138
5.2.5 system_server进程管理的Native服务组件 145
5.3 函数库 150
6 Java空间 156
6.1 Java执行环境——TVM 156
6.2 Java系统服务组件 158
6.2.1 SystemServer init2()创建的1-Box模型Java系统服务组件 158
6.2.2 SystemServer init2()创建的2-Box模型Java系统服务组件 166
6.3 Java应用框架服务组件 192
6.3.1 SystemServer init2()创建的2-Box模型Java应用框架服务组件 192
6.3.2 SystemServer init2()创建的3-Box模型Java应用框架服务组件 282
6.4 Java其他形式组件 311
6.4.1 SystemServer init2()创建的观察者组件 311
6.4.2 SystemServer init2()创建的其他组件 312
6.5 Java库 316
6.6 Java API 318
6.6.1 Java MEAPI 318
6.6.2 NGB-J API 321
6.6.3 Android API 322
6.7 Java应用 325
6.7.1 应用组件 325
6.7.2 清单文件 328
6.7.3 安装包 334
7 Web空间 337
7.1 基本Web技术要求 337
7.2 NGB-H定义JS对象 337
7.3 Web执行环境——浏览器 338
7.4 Web应用 339
参考文献 341