图书介绍
Android的设计与实现 卷1PDF|Epub|txt|kindle电子书版本网盘下载
![Android的设计与实现 卷1](https://www.shukui.net/cover/29/31032954.jpg)
- 杨云君著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111417132
- 出版时间:2013
- 标注页数:420页
- 文件大小:36MB
- 文件页数:433页
- 主题词:移动终端-应用程序-程序设计
PDF下载
下载说明
Android的设计与实现 卷1PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 基础篇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 SDK15
1.5.2 用Eclipse开发和调试源代码16
1.5.3 用Source Insight阅读源代码19
1.6 NDK开发环境配置20
1.7 本章小结21
第2章 框架基础JNI22
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总管:JNIEnv27
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 解析Service60
3.4.5 解析Action63
3.5 触发并启动Action和Service65
3.5.1 触发Action65
3.5.2 执行Action66
3.5.3 启动Service70
3.5.4 init对属性服务的处理71
3.6 init循环监听处理事件75
3.7 本章小结77
第4章 Android启动过程的上层实现78
4.1 第一个Dalvik虚拟机zygote79
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的Socket89
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 注册Service139
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 获取服务的BinderProxy170
6.3.2 构造服务Proxy对象172
6.3.3 构造服务管理者对象173
6.4 Client端调用Java系统服务的方法174
6.5 统一的通信接口AIDL177
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关联到MessageQueue189
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 异步任务类AsyncTask210
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 启动PackageHandler237
8.2.4 创建data目录并初始化UserManager239
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层的Installer255
8.3.2 Installd中的命令258
8.4 本章小结260
第9章 APK的安装过程261
9.1 通过scanDirLI方法安装APK261
9.1.1 创建PackageParser262
9.1.2 解析AndroidManifest.xml文件263
9.1.3 过滤PackageParser.Package类型的pkg对象270
9.1.4 解析和安装pkg274
9.2 使用adb命令安装应用程序282
9.2.1 通过消息机制安装指定的APK283
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 第一阶段:启动ActivityManagerService299
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 查询并处理ApplicationInfo312
10.4.2 创建并初始化ProcessRecord313
10.5 第三阶段:调用install-SystemProviders方法315
10.5.1 查询Content Provider316
10.5.2 安装Content Provider317
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应用程序和Home328
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 加载应用程序Activity362
11.2.5 显示Activity369
11.2.6 Activity Idle状态的处理过程379
11.2.7 停止源Activity382
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