《最强Android书 架构大剖析》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)Jonathan Levin(乔纳森·列维)
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2018
  • ISBN:9787121318139
  • 页数:336 页
图书介绍:本书首次将android的内部工作机制整理成了文档,揭示了Android中各种组件的执行逻辑和工作流程。本书深入探讨了:分区和文件系统,启动过程,/init进程及其配置文件,/system/bin目录中的各个原生守护进程,框架服务的架构以及如何使用Linux系统提供的接口对系统进行监视,安全。此外Android的所有版本——从Froyo到Nougat(甚至是Nougat的最新预览版)——都在本书的讨论范围之内。案例的选取也覆盖了各种类型的Android设备——从Nexi,到三星的Galaxy S系列,再到NVidia Shield,Amazon Kindle, HTC One M8,当然也包括Android模拟器。

第1章 Android体系结构的变革之路 1

1.1 Android系统版本的历史变迁 2

冻酸奶 3

姜饼人 3

蜂巢 4

冰激凌三明治 5

果冻豆 5

奇巧 6

棒棒糖 7

棉花糖 8

牛轧糖 9

1.2 Android与Linux 11

并非另一个Linux发布版本 11

然后Android就登场了 12

与Linux的异同 13

Android的框架 15

Dalvik虚拟机 18

JNI 19

原生二进制可执行文件 20

Bionic 22

Android的原生库 25

源自其他项目的原生库 27

硬件抽象层 28

Linux内核 29

1.3 Android的衍生产品 30

谷歌官方的衍生产品 30

非谷歌官方的衍生品 33

1.4 对前方道路的思考 36

兼容64位 36

ART(Android运行时) 37

多画面 38

把Android用作台式机操作系统 38

Android和ARA项目 39

Brillo 40

本章小结 40

参考文献 41

第2章 Android的分区和文件系统 43

2.1 分区架构 43

需要许多单独分区的原因 44

GUID分区表 45

闪存(Flash Storage)系统 46

文件系统 46

Android设备中的分区 49

2.2 Android文件系统中存储的内容 53

root文件系统 53

/system分区 54

/data分区 65

/cache分区 71

/vendor目录 72

SD卡 73

2.3 受保护的文件系统 74

OBB:Opaque Binary Blobs 74

ASec:Android安全存储(Android Secure Storage) 76

2.4 Linux伪文件系统 78

cgroupfs 78

debugfs 79

functionfs(/dev/usb-ffs/adb) 80

procfs(/proc) 81

pstore(/sys/fs/pstore) 81

selinuxfs(/sys/fs/selinux) 82

sysfs(/sys) 83

本章小结 84

参考文献 84

第3章 Android的启动、备份和重置 86

3.1 Android系统镜像 87

Boot Loader 89

Boot镜像 93

内核 95

RAM disk 97

/System和/Data分区镜像 99

3.2 启动过程 101

固件启动过程 101

内核启动过程 105

3.3 关机和重启 109

3.4 应用的备份和恢复 112

命令行工具 113

本地备份 114

监视备份操作 117

3.5 系统重置(recovery)和升级 119

OTA(Over-The-Air)升级包 121

制作你自己的ROM 124

制作ROM时可用的网上资源 128

本章小结 130

参考文献 130

第4章 init 132

4.1 init的角色和任务 132

系统属性 134

.rc文件 140

总结:init的执行流程 146

4.2 init和USB 150

4.3 init的其他角色 152

ueventd 153

watchdogd 154

本章小结 154

本章讨论所涉及的文件 155

第5章 Android的守护进程 156

5.1 core类中的服务 156

adbd 156

servicemanager 160

healthd 161

lmkd(Android L) 165

logd(Android L) 168

vold 173

5.2 网络相关服务 182

netd 182

mdnsd 187

mtpd 187

racoon 188

rild 189

5.3 图形及多媒体服务 190

surfaceflinger 190

bootanimation 192

mediaserver 194

drmserver 196

5.4 其他服务 197

installd 197

keystore 200

debuggerd 204

gatekeeper(Android M) 207

sdcard 208

Zygote 211

本章小结 214

本章讨论涉及的文件 214

参考文献 215

第6章 框架服务的架构 216

6.1 再探servicemanager 217

6.2 服务调用的模式 222

优点和缺点 224

序列化和Android接口定义语言(AIDL) 225

6.3 Binder 228

简明历史 228

那么,Binder究竟是什么 229

使用Binder 230

分析Binder的当前使用情况 231

6.4 system_server 232

启动及执行流程 232

修改启动时的行为 234

本章小结 237

本章讨论涉及的文件 237

参考文献 237

第7章 从Linux角度看Android 238

7.1 重温/proc 239

符号链接:cwd、exe和root 240

fdinfo 245

status 247

7.2 用户模式内存管理 254

虚拟内存的分类和生命周期 254

内存的相关术语 258

内存不足时的应对方案 266

7.3 跟踪系统调用 269

toolbox ps工具 269

wchan和syscall文件 270

strace工具 271

本章小结 272

参考文献 272

第8章 Android安全性 274

8.1 移动安全威胁建模 275

攻击向量 275

攻击之道 278

8.2 Linux层上的安全措施 281

Android使用Linux权限的方式 281

Linux权能 289

SELinux 294

其他值得注意的特性 301

8.3 Dalvik层上的安全措施 305

Dalvik层上的权限 305

Dalvik代码签名 310

8.4 用户层上的安全措施 312

锁屏机制 312

支持多用户 316

密钥管理 318

证书管理 318

密钥和私钥管理 322

8.5 存储安全 323

加密/data分区 323

基于文件的加密(Nougat 7.1 ) 326

Direct Boot(Nougat的新特性) 326

启动过程中加强验证 327

8.6 Root Android设备 328

在设备启动环节中root 329

利用安全漏洞root 331

Root对安全的影响 332

本章小结 334

参考文献 334