Android深度探索 卷2 系统应用源代码分析与ROM定制PDF电子书下载
- 电子书积分:15 积分如何计算积分?
- 作 者:李宁编著
- 出 版 社:北京:人民邮电出版社
- 出版年份:2015
- ISBN:9787115367945
- 页数:496 页
第1章 学习前的准备工作 1
1.1 安装和配置JDK 1
1.2 安装和配置Android开发环境 1
1.3 官方Android源代码 2
1.3.1 下载Android源代码 2
1.3.2 编译Android源代码 3
1.4 官方Linux内核源代码 4
1.4.1 Linux内核支持的Android设备 4
1.4.2 下载Linux内核源代码 5
1.4.3 查看Linux内核的分支 6
1.4.4 看看Google公司的人在做什么 6
1.4.5 获取Linux内核的配置文件 8
1.4.6 安装交叉编译器 9
1.4.7 编译Linux内核源代码 10
1.5 Cyanogenmod(CM)源代码 10
1.5.1 什么是CM 10
1.5.2 CM支持哪些Android设备 11
1.5.3 与Android设备对应的Codename和CM版本 12
1.5.4 下载CMAndroid源代码 13
1.5.5 下载经过CM适配的Linux内核源代码 14
1.5.6 编译Android源代码生成ReoveryROM 14
1.5.7 单独编译CMLinux内核源代码 17
1.5.8 刷机!刷机! 18
1.5.9 下载现成的CMROM 19
1.6 小结 20
第2章 提取ROOT权限 21
2.1 什么是ROM 21
2.2 ROM的种类 22
2.3 刷官方的ROM 22
2.3.1 下载官方的ROM 23
2.3.2 用无人值守方式刷ROM 23
2.3.3 分别刷ROM包含的各种镜像文件 24
2.4 Android手机获取ROOT权限的必要性 26
2.5 提取ROOT权限的原理 26
2.6 用极客的方式提取ROOT权限 27
2.6.1 提取ROOT权限的步骤 27
2.6.2 需要一个很酷的recovery 28
2.6.3 su命令源代码分析 30
2.6.4 制作第一个Recovery刷机包(编写updater-script脚本文件) 32
2.6.5 首次通过DIY方式提取ROOT权限 35
2.6.6 上传Android应用到/system/app目录 35
2.7 小结 36
第3章 Root权限的安全屏障 37
3.1 通过su提取Root权限的安全隐患 37
3.2 Android应用申请Root权限 38
3.3 Superuser.apk为什么不见了 39
3.4 申请Root权限为什么失灵了 41
3.5 CMROM如何为Root权限增加安全屏障 42
3.6 ADBShell动作管理命令(am) 44
3.6.1 显示窗口(Activity) 44
3.6.2 发送广播(Broadcast) 45
3.6.3 开始服务(Service) 46
3.7 su实现原理及源代码分析 46
3.7.1 su进行Root授权的处理流程 46
3.7.2 初始化调用者数据 50
3.7.3 初始化路径 53
3.7.4 动态宏定义 54
3.7.5 检测数据库 56
3.7.6 创建LocalSocket服务 57
3.7.7 显示“Root授权”窗口 58
3.7.8 等待Superuser连接LocalSocket服务 59
3.7.9 向Superuser传输调用者信息 60
3.7.10 接收用户选择的“Root授权”策略 61
3.7.11 允许和拒绝“Root授权” 62
3.8 Superuser的实现原理与源代码分析 63
3.8.1 “Root授权”警告窗口的处理流程 63
3.8.2 设置“Root授权”窗口的控件 65
3.8.3 获取“Root授权”持续时间 68
3.8.4 处理“Root授权”策略 70
3.8.5 读取Su协议数据 71
3.8.6 获取和设置“调用者”信息 73
3.9 小结 74
第4章 ROM定制 75
4.1 刷机的那些事 75
4.1.1 Android刷机的本质 75
4.1.2 制作ROM的不同层次 77
4.1.3 为什么要刷机 78
4.1.4 刷机带来的风险及其预防措施 78
4.2 在官方ROM的基础上定制各种镜像 79
4.2.1 修改系统镜像(system.img) 80
4.2.2 定制开机动画 82
4.2.3 用户数据镜像(userdata.img) 84
4.2.4 内存磁盘镜像(ramdisi.img) 87
4.2.5 Linux内核镜像(boot.img) 88
4.2.6 制作已经有ROOT权限的ROM 89
4.2.7 Recovery镜像(recovery.img) 90
4.2.8 缓存镜像(cache.img) 91
4.2.9 制作完美的Bootloader ROM 91
4.3 直接从CM源代码制作ROM 93
4.3.1 制作Bootloader ROM 94
4.3.2 制作Recovery ROM 95
4.4 Edify语言 98
4.4.1 Edify语言概述 98
4.4.2 测试Edify脚本(updater-script) 98
4.4.3 Edify函数详解 99
4.4.4 Ediry语言的实现原理 106
4.5 集成Google Services Framework和Google Play 109
4.6 在CMROM中集成第三方APK程序 110
4.6.1 为什么不能直接复制APK和ODEX文件 110
4.6.2 校验odex文件需要依赖哪些Library 111
4.6.3 合并APK和ODEX文件 111
4.7 小结 113
第5章 Recovery深度分析与定制 114
5.1 什么是Recovery 114
5.2 Clockworkmod Recovery源代码解析 116
5.2.1 如何分析Recovery源代码 116
5.2.2 显示主菜单 117
5.2.3 切换不同的菜单项 120
5.2.4 选择菜单项 121
5.3 Recovery支持的各种操作 122
5.3.1 重启和关闭Android设备 122
5.3.2 从SD卡刷ROM 124
5.3.3 使用sideload模式刷ROM 129
5.3.4 清除指定文件系统中的数据 130
5.3.5 备份与恢复 133
5.3.6 挂载(mount)、卸载(umount)和格式化(format)文件系统 137
5.4 添加自己的Recovery菜单项 140
5.5 汉化Recovery 142
5.5.1 汉化Recovery的原理和步骤 142
5.5.2 初始化字体 143
5.5.3 绘制中文字符 144
5.6 小结 145
第6章 Android系统应用的开发与测试 146
6.1 什么是Android系统应用 146
6.2 为什么要研究Android系统应用 146
6.3 如何编写Android系统应用 147
6.4 分析第一个Android系统应用:计算器 149
6.4.1 计算器应用(Calculator)的基本结构 149
6.4.2 编译、测试和调试Calculator 152
6.4.3 允许其他Android应用通过Calculator计算表达式 152
6.5 小结 154
第7章 安装与卸载应用程序(PackageInstaller) 155
7.1 分析源代码的第一步应该做什么 155
7.2 寻找PaekageInstaller的突破口 157
7.3 安装和卸载Android应用的全部方式 159
7.4 安装Android应用前的校验 160
7.4.1 安装Android应用的初始化工作 160
7.4.2 显示校验窗口 163
7.4.3 获取Android应用的权限列表 166
7.5 开始安装应用程序 168
7.5.1 PackageInstaller的安装原理 169
7.5.2 静默安装Android应用 174
7.6 卸载Android应用 177
7.6.1 PackageInstaller卸载Android应用前的确认 178
7.6.2 卸载Android应用的原理 180
7.6.3 静默卸载Android应用 182
7.7 小结 184
第8章 系统设置(一) 185
8.1 为系统设置添加新功能 185
8.1.1 系统设置的编译与权限 185
8.1.2 修改开机动画 186
8.1.3 寻找Settings的入口点 191
8.1.4 为Settings添加新的功能项 192
8.1.5 迁移修改开机动画的窗口类 194
8.2 Wi-Fi 195
8.2.1 如何为设置项添加Switch控件 195
8.2.2 为“修改开机动画”设置项添加Switch控件 199
8.2.3 “关闭/打开”Wi-Fi 202
8.2.4 系统信息与SQLite的WAL模式 204
8.2.5 禁止飞行模式下单独开启Wi-Fi 205
8.2.6 系统设置内容提供者(SettingsContent Provider) 206
8.2.7 用广播方式设置Switch控件的状态 211
8.2.8 搜索可用热点 212
8.2.9 热点对象(AccessPoint) 216
8.2.10 获取可用热点的各种状态 223
8.2.11 连接可用热点 226
8.3 蓝牙 227
8.3.1 “关闭/打开”蓝牙 227
8.3.2 蓝牙的本地状态 228
8.3.3 蓝牙设置的架构与实现 229
8.3.4 “允许/禁止”当前蓝牙设备被搜索到 234
8.4 流量使用情况 235
8.5 小结 241
第9章 系统设置(二) 242
9.1 声音 242
9.1.1 调整音量 242
9.1.2 响铃模式 247
9.1.3 手机铃声 249
9.1.4 渐强铃声 251
9.2 显示 253
9.2.1 调整屏幕亮度 254
9.2.2 壁纸设置(动态扩展) 256
9.2.3 屏幕休眠设置 258
9.3 存储 260
9.3.1 添加设置项 261
9.3.2 检测存储空间 264
9.4 语言与输入法 269
9.4.1 改变当前语言 269
9.4.2 设置当前的输入法 273
9.4.3 扩展输入法 274
9.5 开发者选项 278
9.5.1 Root授权 278
9.5.2 启动USB调试 282
9.5.3 启动网络ADB调试 284
9.6 关于手机 287
9.6.1 手机的状态信息 287
9.6.2 手机的其他信息 290
9.6.3 在线更新(OTA) 291
9.7 小结 292
第10章 系统设置内容提供者(SettingsProvider) 293
10.1 系统设置数据库创建与升级 293
10.2 读写系统设置的数据(settings.db) 297
10.3 系统设置数据的备份和恢复 300
10.4 小结 305
第11章 电话与联系人 306
11.1 拨号应用 306
11.1.1 实现拨号盘UI 306
11.1.2 显示与删除电话号 310
11.1.3 用拨号盘输入电话号 312
11.1.4 播放和停止按键提示音 314
11.1.5 拨打电话 316
11.1.6 电话号到底是如何拨出的 320
11.2 通话记录管理 325
11.3 联系人管理 332
11.3.1 初始化联系人列表 332
11.3.2 获取经常呼叫的联系人 334
11.3.3 获取所有的联系人 338
11.3.4 来电黑名单 339
11.4 小结 342
第12章 短信和彩信管理 343
12.1 显示会话列表 343
12.1.1 主窗口类ConversationList和跨应用程序调用 343
12.1.2 会话列表适配器(ConversationList Adapter) 344
12.1.3 异步查询会话信息 346
12.2 删除会话 349
12.3 发送短信 354
12.3.1 显示发送短信窗口 354
12.3.2 发送短信 356
12.3.3 监听发送短信状态 359
12.4 监听短信的收发 361
12.4.1 处理收发短信广播的流程 362
12.4.2 处理接收短信广播 363
12.4.3 处理发送短信广播 365
12.5 浏览当前会话 368
12.6 小结 369
第13章 AndroidHome应用:Launcher2(一) 370
13.1 Launcher2的那些事 370
13.2 初始化LauncherHomeUI 372
13.2.1 Launcher2的主布局文件(launcher.xml) 372
13.2.2 初始化Android桌面 373
13.2.3 全局对象LauncherApplication 376
13.2.4 初始化桌面UI控制器 379
13.2.5 装载桌面UI视图 381
13.2.6 任务装载器(LoaderTask) 382
13.3 装载和绑定Workspace 385
13.3.1 根据不同类型装载桌面视图 385
13.3.2 装载默认的桌面UI数据 390
13.3.3 添加默认桌面UI数据的若干方法 398
13.3.4 从favorites表中提取和分类桌面UI数据 402
13.3.5 绑定Workspace 405
13.3.6 回调方法 407
13.3.7 绑定前的清理工作 408
13.3.8 在Android桌面上添加各种UI视图 408
13.3.9 如何将快捷方式和文件夹添加到Android桌面上 410
13.3.10 如何将AppWidget添加到Android桌面上 412
13.4 装载和绑定Android应用 413
13.4.1 装载和绑定Android应用的时机 413
13.4.2 一体化装载和绑定Android应用 416
13.4.3 隐藏和显示指定的Android应用 419
13.4.4 隐藏和显示系统和普通Android应用 422
13.4.5 仅绑定Android应用 424
13.5 小结 425
第14章 AndroidHome应用:Launcher2(二) 426
14.1 Android桌面 426
14.1.1 桌面布局(CellLayout) 426
14.1.2 工作空间(Workspace) 429
14.1.3 底座(Hotseat) 432
14.1.4 桌面左右滑动(DragLayer) 433
14.2 桌面UI 438
14.2.1 搜索框 438
14.2.2 拖放目标区域 442
14.2.3 删除快捷方式和卸载Android应用 448
14.2.4 编辑快捷方式 455
14.2.5 查看快捷方式和AppWidget的应用信息 458
14.3 文件夹(Folder) 459
14.3.1 文件夹的创建过程 459
14.3.2 将快捷方式拖入文件夹 462
14.3.3 将快捷方式从文件夹中拖出 463
14.3.4 显示文件夹中的快捷方式列表 465
14.4 应用程序列表 468
14.5 壁纸设置 469
14.5.1 壁纸选择器 469
14.5.2 壁纸设置与壁纸图像来源 471
14.6 广播接收器 473
14.6.1 安装快捷方式(InstallShortcut Receiver) 473
14.6.2 卸载快捷方式(UninstallShortcut Receiver) 476
14.6.3 回复默认桌面(PreloadReceiver) 478
14.7 内容提供者(LauncherProvider) 481
14.8 小结 481
第15章 近场通信(NFC)的实现原理 482
15.1 处理NFC NDEF消息的服务 482
15.2 处理NFC消息的回调接口 484
15.3 调用处理NFC消息的窗口(Activity) 486
15.4 手持设备与蓝牙传输 490
15.5 继续尝试其他处理NFC消息的可能性 491
15.6 通过蓝牙传递Uri 493
15.7 小结 496
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《语文教育教学实践探索》陈德收 2018
- 《学校特色教育探索与实践》管升起著 2019
- 《深度学习与飞桨PaddlePaddle Fluid实战》于祥 2019
- 《深度说服》(英国)尼克·鲍多克 2019
- 《深度拆解20个经典品牌民宿》严风林著 2019
- 《“知识新探索”百科丛书 经济学的世界 全彩版》(英)泰吉万·帕丁格 2019
- 《基于多维视角的英语语言学理论探索与应用》刘曦著 2019
- 《图书馆参考咨询多维探索与研究》李佳培著 2019
- 《民族地区高师院校英语教学探索》符春焕著 2011
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《人民院士》吴娜著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《中国人民的心》杨朔著;夕琳编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中华人民共和国成立70周年优秀文学作品精选 短篇小说卷 上 全2册》贺邵俊主编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《中华人民共和国成立70周年优秀文学作品精选 中篇小说卷 下 全3册》洪治纲主编 2019