图书介绍
深入理解Android 5源代码PDF|Epub|txt|kindle电子书版本下载
- 李骏编著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115405951
- 出版时间:2016
- 标注页数:674页
- 文件大小:100MB
- 文件页数:685页
- 主题词:移动终端-应用程序-程序设计
PDF下载
下载说明
深入理解Android 5源代码PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 Android系统介绍1
1.1 Android系统成功的秘诀1
1.1.1 获取了业界的广泛支持1
1.1.2 研发阵容强大1
1.1.3 为开发人员“精心定制”1
1.1.4 开源2
1.2 剖析Android系统架构2
1.2.1 底层操作系统层(OS)3
1.2.2 各种库(Libraries)和Android运行环境(RunTime)3
1.2.3 Application Framework(应用程序框架)3
1.2.4 顶层应用程序(Application)4
1.3 五大组件4
1.3.1 Activity界面4
1.3.2 Intent和Intent Filters切换4
1.3.3 Service(服务)5
1.3.4 Broadcast Receiver发送广播5
1.3.5 用Content Provider存储数据6
1.4 进程和线程6
1.4.1 什么是进程6
1.4.2 什么是线程6
第2章 获取并编译Android源代码7
2.1 获取Android源代码7
2.1.1 在Linux系统中获取Android源代码7
2.1.2 在Windows平台获取Android源代码8
2.2 分析Android源代码结构10
2.2.1 总体结构11
2.2.2 应用程序部分12
2.2.3 应用程序框架部分13
2.2.4 系统服务部分13
2.2.5 系统程序库部分15
2.2.6 硬件抽象层部分17
2.3 Android源代码提供的接口18
2.3.1 暴露接口和隐藏接口18
2.3.2 调用隐藏接口23
2.4 编译源代码25
2.4.1 搭建编译环境25
2.4.2 在模拟器中运行27
2.5 编译源代码生成SDK27
第3章 分析Java Native Interface系统30
3.1 JNI基础30
3.1.1 JNI的功能结构30
3.1.2 JNI的调用层次30
3.1.3 分析JNI的本质31
3.2 分析MediaScanner32
3.2.1 分析Java层32
3.2.2 分析JNI层37
3.2.3 分析Native(本地)层38
3.3 分析Camera系统的JNI44
3.3.1 Java层预览接口45
3.3.2 注册预览的JNI函数46
3.3.3 C/C++层的预览函数48
第4章 分析HAL系统49
4.1 HAL基础49
4.1.1 推出HAL的背景49
4.1.2 HAL的基本结构50
4.2 分析HALmodule架构51
4.2.1 hw_module_t52
4.2.2 结构hw_module_methods_t的定义52
4.2.3 hw_device_t结构53
4.3 分析文件hardware.c53
4.3.1 寻找动态链接库的地址53
4.3.2 数组variant keys54
4.3.3 载入相应的库54
4.3.4 获得hw module t结构体54
4.4 分析硬件抽象层的加载过程55
4.5 分析硬件访问服务58
4.5.1 定义硬件访问服务接口58
4.5.2 具体实现59
4.6 分析Android官方实例60
4.6.1 获取实例工程源代码60
4.6.2 直接调用Service方法的实现代码61
4.6.3 通过Manager调用Service的实现代码64
4.7 HAL和系统移植66
4.7.1 移植各个Android部件的方式66
4.7.2 设置设备权限67
4.7.3 init.rc初始化70
4.7.4 文件系统的属性70
第5章 分析IPC通信机制72
5.1 Binder机制概述72
5.2 分析Binder驱动程序73
5.2.1 分析数据结构73
5.2.2 分析设备初始化82
5.2.3 打开Binder设备文件83
5.2.4 内存映射85
5.2.5 释放物理页面89
5.2.6 分配内核缓冲区89
5.2.7 释放内核缓冲区91
5.2.8 查询内核缓冲区93
5.3 Binder封装库93
5.3.1 类BBinder94
5.3.2 类BpRefBase96
5.3.3 类IPCThreadState97
5.4 初始化Java层Binder框架99
5.5 分析MediaServer的通信机制101
5.5.1 MediaServer的入口函数101
5.5.2 ProcessState102
5.5.3 defaultServiceManager103
5.5.4 注册MediaPlayerService108
5.5.5 分析StartThread Pool和 join Thread Pool117
第6章 分析Binder对象和Java接口119
6.1 分析实体对象(binder node)119
6.2 分析本地对象(BBinder)121
6.3 分析引用对象(binder ref)129
6.4 分析代理对象(BpBinder)131
6.5 分析Java接口134
6.5.1 获取Service Manager134
6.5.2 分析ActivityManagerService的Java层138
第7章 分析ServiceManager和 MessageQueue151
7.1 分析ServiceManager151
7.1.1 分析主入口函数151
7.1.2 打开Binder设备文件152
7.1.3 注册处理154
7.1.4 创建Binder实体对象156
7.1.5 尽职的循环157
7.1.6 将信息注册到ServiceManager162
7.1.7 分析MediaPlayerService和Client164
7.2 获得Service Manager接口169
7.3 分析MessageQueue171
7.3.1 创建MessageQueue171
7.3.2 提取消息171
7.3.3 分析函数nativePollOnce174
第8章 init进程和Zygote进程182
8.1 分析init进程182
8.1.1 分析入口函数182
8.1.2 分析配置文件185
8.1.3 分析Service190
8.1.4 解析on字段的内容195
8.1.5 init控制Service197
8.1.6 控制属性服务204
8.2 分析Zygote(孕育)进程210
8.2.1 Zygote基础211
8.2.2 分析Zygote的启动过程211
第9章 System进程和应用程序进程224
9.1 分析System进程224
9.1.1 启动System进程前的准备工作224
9.1.2 分析SystemServer225
9.1.3 分析EntropyService227
9.1.4 分析DropBoxManager Service229
9.1.5 分析DiskStatsService234
9.1.6 分析DeviceStorageManager Service(监测系统内存存储空间的状态)237
9.1.7 分析SamplingProfiler Service239
9.2 分析应用程序进程246
9.2.1 创建应用程序246
9.2.2 启动线程池254
9.2.3 创建信息循环255
第10章 分析Activity组件258
10.1 Activity基础258
10.1.1 Activity状态258
10.1.2 剖析Activity中的主要函数259
10.2 分析Activity的启动源代码260
10.2.1 Launcher启动应用程序261
10.2.2 返回ActivityManagerService的远程接口262
10.2.3 解析intent的内容263
10.2.4 分析检查机制265
10.2.5 执行Activity组件的操作274
10.2.6 将Launcher推入Paused状态279
10.2.7 处理消息281
10.2.8 暂停完毕282
10.2.9 建立双向连接285
10.2.10 启动新的Activity289
10.2.11 通知机制291
10.2.12 发送消息292
第11章 应用程序管理服务——PackageManagerService分析295
11.1 PackageManagerService概述295
11.2 系统进程启动296
11.3 开始运行296
11.4 扫描APK文件306
11.5 解析并安装文件307
11.6 启动系统默认Home应用程序Launcher323
11.6.1 设置系统进程323
11.6.2 启动Home应用程序324
11.6.3 启动com.android.1 auncher2.Launcher330
11.6.4 加载应用程序333
11.6.5 获得Activity336
第12章 Content Provider存储机制341
12.1 Content Provider基础341
12.1.1 Content Provider在应用程序中的架构341
12.1.2 Content Provider的常用接口342
12.2 启动Content Provider343
12.2.1 获得对象接口343
12.2.2 存在校验344
12.2.3 启动Android应用程序348
12.2.4 根据进程启动Content Provider348
12.2.5 处理消息352
12.2.6 具体启动354
12.3 Content Provider数据共享356
12.3.1 获取接口356
12.3.2 创建CursorWindow对象358
12.3.3 数据传递361
12.3.4 处理进程通信的请求362
12.3.5 数据操作367
第13章 分析广播机制源代码370
13.1 Broadcast基础370
13.2 发送广播信息371
13.2.1 intent描述指示371
13.2.2 传递广播信息371
13.2.3 封装传递372
13.2.4 处理发送请求372
13.2.5 查找广播接收者373
13.2.6 处理广播信息375
13.2.7 检查权限382
13.2.8 处理的进程通信请求384
13.3 分析BroadCastReceiver386
13.3.1 MainActivity的调用386
13.3.2 注册广播接收者387
13.3.3 获取接口对象388
13.3.4 处理进程间的通信请求390
第14章 分析电源管理系统392
14.1 Power Management架构基础392
14.2 分析Framework层392
14.2.1 文件PowerManager.java393
14.2.2 提供PowerManager功能393
14.3 JNI层架构分析410
14.3.1 定义了两层之间的接口函数410
14.3.2 与Linux Kernel层进行交互411
14.4 Kernel(内核)层架构分析411
14.4.1 文件power.c412
14.4.2 文件earlysuspend.c414
14.4.3 文件wakelock.c414
14.4.4 文件resume.c416
14.4.5 文件suspend.c416
14.4.6 文件main.c417
14.4.7 proc文件417
14.5 wakelock和early suspend418
14.5.1 wakelock的原理418
14.5.2 early suspend的原理419
14.5.3 Android休眠419
14.5.4 Android唤醒421
14.6 Battery电池系统架构和管理421
14.6.1 实现驱动程序422
14.6.2 实现JNI本地代码422
14.6.3 Java层代码423
14.6.4 实现Uevent部分424
14.7 JobScheduler节能调度机制428
14.7.1 JobScheduler机制的推出背景428
14.7.2 JobScheduler的实现428
14.7.3 实现操作调度429
14.7.4 封装调度任务431
第15章 分析WindowManagerService系统434
15.1 WindowManagerService基础434
15.2 计算Activity窗口的大小435
15.2.1 实现View遍历436
15.2.2 函数relayoutWindow446
15.2.3 函数relayoutWindow447
15.2.4 拦截消息的处理类466
15.2.5 判断是否计算过477
第16章 分析电话系统482
16.1 Android电话系统详解482
16.1.1 电话系统简介482
16.1.2 电话系统结构483
16.1.3 驱动程序介绍485
16.1.4 RIL接口486
16.1.5 分析电话系统的实现流程488
16.2 电话系统中的音频模块493
16.2.1 音频系统结构493
16.2.2 分析音频系统的层次494
16.3 分析拨号流程501
16.3.1 拨号界面501
16.3.2 实现Phone应用504
16.3.3 Call通话控制507
16.3.4 静态方法调用510
16.3.5 通话管理512
16.3.6 dial拨号514
16.3.7 状态跟踪515
16.3.8 RIL消息“出/入”口516
16.3.9 显示通话主界面517
第17章 分析短信系统518
17.1 短信系统的主界面518
17.2 发送普通短信520
17.3 发送彩信530
17.4 接收短信537
17.4.1 Java应用层的接收流程538
17.4.2 Framework层的处理过程540
第18章 Sensor传感器系统详解542
18.1 Android传感器系统概述542
18.2 Java层详解543
18.3 Frameworks层详解548
18.3.1 监听传感器的变化548
18.3.2 注册监听548
18.4 JNI层详解556
18.4.1 实现Native(本地)函数557
18.4.2 处理客户端数据561
18.4.3 处理服务端数据563
18.4.4 封装HAL层的代码572
18.4.5 处理消息队列576
18.5 HAL层详解578
第19章 分析SEAndroid系统585
19.1 SEAndroid概述585
19.1.1 内核空间587
19.1.2 用户空间588
19.2 文件安全上下文596
19.2.1 设置打包在ROM里面的文件的安全上下文597
19.2.2 设置虚拟文件系统的安全上下文600
19.2.3 设置应用程序数据文件的安全上下文601
19.3 进程安全上下文612
19.3.1 为独立进程静态地设置安全上下文612
19.3.2 为应用程序进程设置安全上下文615
第20章 分析ART系统621
20.1 对比Dalvik VM和ART621
20.2 启动ART623
20.2.1 运行app_process进程624
20.2.2 准备启动627
20.2.3 创建运行实例632
20.2.4 注册本地JNI函数633
20.2.5 启动守护进程634
20.2.6 解析参数635
20.2.7 初始化类、方法和域641
20.3 分析主函数main647
20.4 查找目标类648
20.4.1 函数LookupClass()648
20.4.2 函数DefineClass()650
20.4.3 函数InsertClass()653
20.4.4 函数LinkClass()653
20.5 类操作655
20.6 实现托管操作656
20.7 加载OAT文件660
20.7.1 产生OAT660
20.7.2 创建ART虚拟机661
20.7.3 解析启动参数并创建堆663
20.7.4 生成指定目录文件665
20.7.5 加载OAT文件666
20.7.6 解析字段668