Android的设计与实现 卷1PDF电子书下载
- 电子书积分:14 积分如何计算积分?
- 作 者:杨云君著
- 出 版 社:北京:机械工业出版社
- 出版年份:2013
- ISBN:9787111417132
- 页数:420 页
第一部分 基础篇 2
第1章 Android体系结构及源代码阅读环境搭建 2
1.1 Android发展过程 2
1.2 Andid体系结构 3
1.2.1 静态视角的体系结构 3
1.2.2 动态视角的体系结构 7
1.3 Android源码下载和编译 8
1.3.1 搭建开发环境 8
1.3.2 下载Android上层系统源代码 9
1.3.3 下载指定模块源码 10
1.3.4 下载Android Linux Kernel源码 11
1.3.5 编译Android上层系统源码 12
1.3.6 编译指定模块源码 12
1.4 Android源码结构 14
1.5 Android源码开发工具的配置和使用 15
1.5.1 配置Android SDK 15
1.5.2 用Eclipse开发和调试源代码 16
1.5.3 用Source Insight阅读源代码 19
1.6 NDK开发环境配置 20
1.7 本章小结 21
第2章 框架基础JNI 22
2.1 JNI在Android系统中所处的位置 22
2.2 JNI框架层实例分析 23
2.2.1 Log系统Java层分析 24
2.2.2 Log系统的JNI层 24
2.2.3 Log系统的JNI方法注册 25
2.3 JNI总管:JNIEnv 27
2.4 在Java中调用JNI实现方法 29
2.4.1 Java数据类型与JNI数据类型转换 29
2.4.2 JNI方法命名规则 30
2.4.3 JNI方法签名规则 31
2.5 JNI操作Java对象 32
2.5.1 访问Java对象 32
2.5.2 操作成员变量(域)和方法 33
2.5.3 全局引用、弱全局引用和局部引用 34
2.6 JNI异常处理 36
2.7 JNI应用层实例分析 38
2.7.1 Java层分析 38
2.7.2 JNI层代码和异常处理 39
2.8 本章小结 42
第二部分 启动篇 44
第3章 Android启动过程的底层实现 44
3.1 Android正常模式启动流程 44
3.2 Kernel启动过程 44
3.2.1 内核引导阶段 45
3.2.2 内核启动阶段 46
3.3 init进程的执行过程 49
3.4 init.rc文件解析过程 53
3.4.1 Android初始化语言 53
3.4.2 init.rc的内容 56
3.4.3 解析配置文件 57
3.4.4 解析Service 60
3.4.5 解析Action 63
3.5 触发并启动Action和Service 65
3.5.1 触发Action 65
3.5.2 执行Action 66
3.5.3 启动Service 70
3.5.4 init对属性服务的处理 71
3.6 init循环监听处理事件 75
3.7 本章小结 77
第4章 Android启动过程的上层实现 78
4.1 第一个Dalvik虚拟机zygote 79
4.1.1 zygote的配置 79
4.1.2 如何执行zygote服务程序 80
4.2 ZygoteInit的启动过程 82
4.2.1 创建Dalvik虚拟机 83
4.2.2 注册JNI方法 85
4.2.3 开启Java世界 88
4.3 ZygoteInit开启Java世界的五部分工作 89
4.3.1 注册zygote的Socket 89
4.3.2 预加载Class资源和Resource资源 89
4.3.3 启动systen_server进程 92
4.3.4 执行MethodAndArgsCaller的run方法 98
4.3.5 执行runSelectLoopMode方法 102
4.4 zygote处理Home启动请求 104
4.5 本章小结 112
第三部分 Binder篇 114
第5章 Binder在Native框架层的实现 114
5.1 Binder与C/S体系结构概述 114
5.2 servicemanager进程的启动过程 115
5.2.1 初始化Binder通信环境 116
5.2.2 注册上下文管理者 118
5.2.3 等待接收并处理IPC通信请求 120
5.3 Server的启动和Service的注册过程 128
5.3.1 创建ProcessState对象 129
5.3.2 获取servicemanager的代理对象 131
5.3.3 注册Service 139
5.3.4 Server进程开启线程池 145
5.4 Client端使用服务代理对象 146
5.5 服务代理与服务通信 149
5.6 本章小结 152
第6章 Binder在Java框架层的实现 153
6.1 Java系统服务的创建过程 153
6.1.1 创建JavaBBinderHolder对象 155
6.1.2 JavaBBinder的作用 156
6.1.3 gBinderOffsets结构体解析 156
6.2 Java系统服务的注册过程 159
6.2.1 调用BinderInternal.getContextObject法 160
6.2.2 调用ServiceManagerNative.asInterface方法 165
6.2.3 调用ServiceManagerProxy.addService方法注册服务 167
6.3 Client端获取服务代理 169
6.3.1 获取服务的BinderProxy 170
6.3.2 构造服务Proxy对象 172
6.3.3 构造服务管理者对象 173
6.4 Client端调用Java系统服务的方法 174
6.5 统一的通信接口AIDL 177
6.5.1 AIDL实例 177
6.5.2 AIDL语法 180
6.5.3 处理自定义数据类型的传递 181
6.6 本章小结 182
第四部分 消息通信篇 184
第7章 线程消息通信与异步处理 184
7.1 什么是Looper线程 184
7.2 第一步:Looper线程准备阶段 185
7.2.1 创建Java层的Looper对象 186
7.2.2 创建Java层的MessageQueue对象 186
7.2.3 创建Native层的NativeMessage-Queue和Looper对象 187
7.2.4 NativeMessageQueue关联到MessageQueue 189
7.3 第二步:创建消息处理器并发送消息 190
7.3.1 Handler的创建和初始化 190
7.3.2 Message的创建和初始化 191
7.3.3 消息的发送过程 192
7.4 第三步:Looper线程循环阶段 198
7.4.1 记录并获取当前线程身份信息 198
7.4.2 循环监听消息 199
7.4.3 分发消息到处理器 205
7.4.4 回收消息并更新消息池 209
7.5 异步任务类AsyncTask 210
7.5.1 AsyncTask的实现 211
7.5.2 AsyncTask的执行 214
7.6 本章小结 223
第五部分 Package Manager篇 226
第8章 Package Manager的机制与实现 226
8.1 Package Manager体系结构 227
8.1.1 三层体系结构 227
8.1.2 三层之间的关系 228
8.2 PackageManagerService的启动过程 231
8.2.1 创建并初始化Settings对象 232
8.2.2 获取系统默认配置 236
8.2.3 启动PackageHandler 237
8.2.4 创建data目录并初始化UserManager 239
8.2.5 解析系统permission和feature信息 242
8.2.6 解析packages文件 245
8.2.7 dexopt优化判定 247
8.2.8 启动FileObserver监控APK文件的目录 250
8.2.9 调用scanDirLI方法扫描并安装APK包 252
8.2.1 0更新packages文件 253
8.3 PackageManagerService启动过程使用的核心组件 254
8.3.1 Java层的Installer 255
8.3.2 Installd中的命令 258
8.4 本章小结 260
第9章 APK的安装过程 261
9.1 通过scanDirLI方法安装APK 261
9.1.1 创建PackageParser 262
9.1.2 解析AndroidManifest.xml文件 263
9.1.3 过滤PackageParser.Package类型的pkg对象 270
9.1.4 解析和安装pkg 274
9.2 使用adb命令安装应用程序 282
9.2.1 通过消息机制安装指定的APK 283
9.2.2 调用handleStartCopy方法处理安装操作 286
9.2.3 调用handleReturnCode方法处理返回结果 290
9.3 本章小结 293
第六部分 Activity Manager篇 296
第10章 Activity Manager的机制与实现 296
10.1 Activity Manager概述 296
10.2 ActivityManagerService在系统启动阶段的主要工作 297
10.3 第一阶段:启动ActivityManagerService 299
10.3.1 启动AThread线程 300
10.3.2 创建ActivityThread对象 302
10.3.3 创建ActivityStack类 309
10.3.4 调用startRunning方法 310
10.4 第二阶段:调用setSystemProcess方法 310
10.4.1 查询并处理ApplicationInfo 312
10.4.2 创建并初始化ProcessRecord 313
10.5 第三阶段:调用install-SystemProviders方法 315
10.5.1 查询Content Provider 316
10.5.2 安装Content Provider 317
10.6 第四阶段:调用systemReady方法 323
10.6.1 发送ACTION_PRE_BOOT_COMPLETED广播 323
10.6.2 清理预启动的非persistent进程 325
10.6.3 读取Settings配置 326
10.6.4 运行Runnable回调接口 327
10.6.5 启动persistent应用程序和Home 328
10.7 本章小结 329
第11章 应用程序Activity的启动和调度 330
11.1 启动应用程序Activity时在Client端的执行流程 330
11.2 启动应用程序Activity时在Server端的执行流程 334
11.2.1 预启动 334
11.2.2 暂停 348
11.2.3 启动应用程序进程 356
11.2.4 加载应用程序Activity 362
11.2.5 显示Activity 369
11.2.6 Activity Idle状态的处理过程 379
11.2.7 停止源Activity 382
11.3 本章小结 387
第12章 ActivityManager进程管理 388
12.1 LRU weight机制 388
12.2 OOM adj机制 391
12.2.1 更新OOM adj值 392
12.2.2 OOM adi的计算过程 403
12.3 Low Memory Killer机制 414
12.3.1 OOM adj等级和最小内存阈值 414
12.3.2 LM Killer机制的实现 417
12.4 本章小结 419
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《Cinema 4D电商美工与视觉设计案例教程》樊斌 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019