图书介绍

Android系统源代码分析pdf电子书版本下载

Android系统源代码分析
  • 李俊编著 著
  • 出版社: 北京:中国铁道出版社
  • ISBN:9787113191641
  • 出版时间:2015
  • 标注页数:549页
  • 文件大小:73MB
  • 文件页数:562页
  • 主题词:移动终端-应用程序-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

Android系统源代码分析PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 Android系统介绍 1

1.1 来到智能手机世界 1

1.1.1 何谓智能手机 1

1.1.2 百家争鸣 2

1.2 Android的优势 3

1.2.1 优点一——系出名门 3

1.2.2 优点二——强大的开发团队 3

1.2.3 优点三——诱人的奖励机制 4

1.2.4 优点四——开源 5

1.3 剖析Android系统架构 5

1.4 五大组件 7

1.4.1 用Activity来表现界面 7

1.4.2 用Intent和Intent Filters实现切换 8

1.4.3 Service服务 8

1.4.4 用BroadcastIntent Receiver发送广播 9

1.4.5 用Content Provider存储数据 9

1.5 进程和线程 9

1.5.1 先看进程 9

1.5.2 再看线程 9

1.6 获取Android源码 10

1.6.1 在Linux平台获取Android源码 10

1.6.2 在Windows平台获取Android源码 11

1.7 分析Android源码结构 13

1.8 编译源码 18

1.8.1 Ubuntu系统编译源码 19

1.8.2 常见错误 19

1.8.3 运行Android源码 20

1.9 编译Android Kemel 21

1.9.1 获取Goldfish内核代码 21

1.9.2 获取MSM内核代码 24

1.9.3 获取OMAP内核代码 24

1.9.4 编译Android的Linux内核 24

1.10 Android模拟器(AVD) 26

1.10.1 在Linux环境下运行模拟器 26

1.10.2 模拟器辅助工具——adb 27

1.10.3 在Windows中创建Android模拟器 29

1.10.4 在模拟器上运行Android系统 30

第2章 源码结构和SDK解析 32

2.1 Android源码的目录结构 32

2.2 目录结构在系统中的体现 33

2.2.1 应用程序 33

2.2.2 应用程序框架 35

2.2.3 系统服务 35

2.2.4 系统程序库 38

2.2.5 系统运行库 41

2.2.6 硬件抽象层 41

2.3 编译源码生成SDK 42

2.4 源码中提供的接口 46

2.4.1 暴露的接口和隐藏的接口 46

2.4.2 开发中如何调用隐藏接口 52

第3章 分析JNI和Media 56

3.1 JNI基础 56

3.2 分析Java层的MediaScanner 57

3.2.1 加载JNI库 57

3.2.2 实现扫描工作 59

3.2.3 读取并保存信息 60

3.2.4 删除不是SD卡中的文件信息 62

3.2.5 processDirectory 63

3.2.6 扫描函数scanFile 64

3.2.7 JNI中的异常处理 64

3.3 分析JNI层的MediaScanner 65

3.3.1 将Native对象的指针保存到Java对象 65

3.3.2 创建Native层的MediaScanner对象 66

3.4 Native层的MediaScanner 66

3.4.1 JNI函数的注册 66

3.4.2 完成注册工作 68

3.4.3 动态注册 70

3.4.4 processDirectory 72

3.4.5 client.scanFile 73

3.4.6 添加TAG信息 73

3.4.7 总结函数JNI_OnLoad()与函数JNI_OnUnload()的用途 74

3.4.8 Java与JNI基本数据类型转换 75

3.4.9 J NIEnv接口 76

3.4.10 JNI中的环境变量 77

3.5 解析android.process.media 78

3.5.1 MediaScannerReceiver 78

3.5.2 MediaScannerService 81

3.5.3 MediaProvider 86

3.6 MediaScanner中的重要函数 99

3.6.1 seekTo 99

3.6.2 doProcessDirectory 103

3.6.3 doScanFile 105

3.6.4 android_media_MediaScanner_processFile 106

3.6.5 processFile 107

3.6.6 endFile 108

3.6.7 handleStringTag 108

3.6.8 fileMatchesExtension 109

3.7 Camera模块JNI实例分析 110

3.7.1 Java层预览接口 110

3.7.2 注册预览的JNI函数 111

3.7.3 C/C++层的预览函数 115

第4章 分析init进程 116

4.1 init基础 116

4.2 分析入口函数 117

4.3 分析配置文件 120

4.3.1 init.rc简介 121

4.3.2 分析init.rc的过程 123

4.4 解析Service 127

4.4.1 zygote对应的service action 127

4.4.2 init组织Service 128

4.4.3 解析Service用到的函数 129

4.5 解析on 134

4.5.1 zygote对应的on action 134

4.5.2 init组织on 135

4.5.3 解析on用到的函数 136

4.6 init控制Service 136

4.6.1 启动zygote 137

4.6.2 启动Service 137

4.6.3 总结四种启动Service的方式 142

4.7 控制属性服务 147

4.7.1 引入属性 147

4.7.2 初始化属性服务 150

4.7.3 启动属性服务 151

4.7.4 处理设置属性的请求 155

第5章 深入分析HAL层 157

5.1 初识HAL层 157

5.1.1 HAL层简介 158

5.1.2 HAL_legacy和HAL的对比 159

5.2 分析HAL层源码 159

5.2.1 分析HAL module 159

5.2.2 文件hardware.h 160

5.2.3 文件hardware.c 162

5.3 分析硬件抽象层的加载过程 165

5.4 分析硬件访问服务 169

5.4.1 定义硬件访问服务接口 169

5.4.2 实现硬件访问服务 170

5.5 分析mokoid工程 171

5.5.1 直接调用service方法的实现代码 172

5.5.2 通过Manager调用service的实现代码 177

5.6 举例说明Sensor(传感器)在HAL层的表现 180

5.6.1 HAL层的Sensor代码 180

5.6.2 Sensor编程的流程 182

5.7 HAL和系统移植 183

5.7.1 移植各个Android部件的方式 183

5.7.2 辅助工作 183

第6章 分析Android的内存机制 190

6.1 内存和进程的关系 190

6.1.1 进程管理工具的纷争 190

6.1.2 Android系统内存设计 191

6.2 分析Android的进程通信机制 192

6.2.1 Android的进程间通信(IPC)机制Binder 192

6.2.2 Service Manager是Binder机制的上下文管理者 193

6.2.3 分析Server和Client获得Service Manager的过程 211

6.3 分析Android系统匿名共享内存C++调用接口 215

6.3.1 Java程序 217

6.3.2 相关程序 226

6.4 内存优化 229

6.4.1 sp和wp简析 229

6.4.2 详解智能指针(android refbase类(sp和wp)) 231

第7章 分析ActivityManagerService 233

7.1 AMS基础 233

7.1.1 进程数据类ProcessRecord 234

7.1.2 数据类HistoryRecord 234

7.1.3 类TaskRecord 235

7.1.4 AMS中的一些重要调度相关变量 235

7.2 Activity的调度 237

7.2.1 startActivity()的启动流程 237

7.2.2 stopActivityLocked()停止Activity 278

第8章 分析Binder和MessageQueue 285

8.1 分析Binder 285

8.1.1 Client、Server和ServiceManager 285

8.1.2 MediaServer 286

8.1.3 ServiceManager 312

8.1.4 分析MediaPlayerService和Client 316

8.2 初始化Java层Binder框架 323

8.2.1 Binder类的初始化 324

8.2.2 addService实例分析 325

8.3 分析MessageQueue 334

8.3.1 创建MessageQueue 335

8.3.2 提取消息 335

8.3.3 分析函数nativePollOnce 340

第9章 分析SystemServer 350

9.1 分析SystemServer 350

9.1.1 分析主函数main 350

9.1.2 分析函数init2 353

9.2 分析EntropyService 353

9.3 分析DropBoxManagerService 356

9.3.1 分析DBMS构造函数 356

9.3.2 添加dropbox日志文件 358

9.3.3 DBMS和Settings数据库 362

9.4 分析DiskStatsService 363

9.5 分析DeviceStorageManagerService 368

9.6 分析SamplingProfilerService 371

9.6.1 分析SamplingProfilerService构造函数 371

9.6.2 分析SamplingProfilerIntegration 372

9.7 分析ClipboardService 382

9.7.1 复制数据到剪贴板 383

9.7.2 从剪贴板粘贴数据 384

9.7.3 CBS中的权限管理 387

第10章 分析WindowManagerService 391

10.1 WindowManagerService概述 391

10.2 分析计算Activity窗口大小的过程 393

10.2.1 概览 393

10.2.2 分析Activity计算窗口大小的过程 394

10.3 分析WindowManagerService对窗口的组织方式 419

10.3.1 概述 419

10.3.2 分析操作源码 420

第11章 分析安装应用程序的过程 439

11.1 WindowManagerService概述 439

11.2 分析安装过程 441

11.2.1 主函数main 441

11.2.2 初始化函数 442

11.2.3 初始化服务 442

11.2.4 调用静态成员函数 446

11.2.5 创建了ServerThread线程 447

11.2.6 启动服务 447

11.2.7 创建PackageManagerService服务实例 452

11.2.8 扫描函数scanDirLI 460

11.2.9 归档处理 464

11.2.10 解析application标签 475

11.2.11 保存解析后的程序信息 477

第12章 分析核心框架系统 479

12.1 分析音频系统 479

12.1.1 Audio系统的层次介绍 479

12.1.2 Media库中的Audio框架 481

12.1.3 本地代码 488

12.1.4 JNI代码 491

12.1.5 Java代码 492

12.2 视频输出系统 492

12.2.1 Overlay系统的基本层次结构 492

12.2.2 Overlay系统硬件抽象层的接口 494

12.2.3 实现硬件抽象层 496

12.2.4 实现接口 497

12.3 分析OpenMax多媒体框架 498

12.3.1 分析OpenMax IL层的接口 499

12.3.2 OpenMax适配层 504

12.4 分析多媒体插件框架 506

12.4.1 基本层次结构 507

12.4.2 分析库libopencorecommon.so的结构 508

12.4.3 分析库libopencoreplayer.so的结构 509

12.4.4 分析库libopencoreauthor.so的结构 510

12.4.5 其他的库 511

12.4.6 OpenCore OSCL 511

12.4.7 实现OpenCore中的OpenMax部分 513

12.5 分析Camera照相机系统 525

12.5.1 基本层次结构 525

12.5.2 分析V4L2驱动程序 527

12.5.3 硬件抽象层 534

12.5.4 实现Camera系统的硬件抽象层 535

12.6 分析传感器系统 542

12.6.1 基本层次结构 542

12.6.2 分析硬件抽象层 544

12.6.3 实现上层部分 545

精品推荐