计算机
类型
可以朗读
语音朗读
1682千字
字数
2015-12-01
发行日期
展开全部
主编推荐语
Android系统详解:编译源码,进程管理,通信机制,应用开发。
内容简介
本书依次讲解了Android系统介绍,获取并编译Android源码,HAL系统,IPC通信机制,Binder对象和Java接口,init进程和Zygote进程,System进程和应用程序进程,分析Activity组件,Broadcast(广播)系统,电源管理驱动,电话系统,分析短信系统,Sensor传感器系统架构,SEAndroid系统,ART系统的知识。
目录
- 封面
- 目录
- 扉页
- 版权
- 前言
- 第1章 Android系统介绍
- 1.1 Android系统成功的秘诀
- 1.1.1 获取了业界的广泛支持
- 1.1.2 研发阵容强大
- 1.1.3 为开发人员“精心定制”
- 1.1.4 开源
- 1.2 剖析Android系统架构
- 1.2.1 底层操作系统层(OS)
- 1.2.2 各种库(Libraries)和Android运行环境(RunTime)
- 1.2.3 ApplicationFramework(应用程序框架)
- 1.2.4 顶层应用程序(Application)
- 1.3 五大组件
- 1.3.1 Activity界面
- 1.3.2 Intent和IntentFilters切换
- 1.3.3 Service(服务)
- 1.3.4 BroadcastReceiver发送广播
- 1.3.5 用ContentProvider存储数据
- 1.4 进程和线程
- 1.4.1 什么是进程
- 1.4.2 什么是线程
- 第2章 获取并编译Android源代码
- 2.1 获取Android源代码
- 2.1.1 在Linux系统中获取Android源代码
- 2.1.2 在Windows平台获取Android源代码
- 2.2 分析Android源代码结构
- 2.2.1 总体结构
- 2.2.2 应用程序部分
- 2.2.3 应用程序框架部分
- 2.2.4 系统服务部分
- 2.2.5 系统程序库部分
- 2.2.6 硬件抽象层部分
- 2.3 Android源代码提供的接口
- 2.3.1 暴露接口和隐藏接口
- 2.3.2 调用隐藏接口
- 2.4 编译源代码
- 2.4.1 搭建编译环境
- 2.4.2 在模拟器中运行
- 2.5 编译源代码生成SDK
- 第3章 分析Java Native Interface系统
- 3.1 JNI基础
- 3.1.1 JNI的功能结构
- 3.1.2 JNI的调用层次
- 3.1.3 分析JNI的本质
- 3.2 分析MediaScanner
- 3.2.1 分析Java层
- 3.2.2 分析JNI层
- 3.2.3 分析Native(本地)层
- 3.3 分析Camera系统的JNI
- 3.3.1 Java层预览接口
- 3.3.2 注册预览的JNI函数
- 3.3.3 C/C++层的预览函数
- 第4章 分析HAL系统
- 4.1 HAL基础
- 4.1.1 推出HAL的背景
- 4.1.2 HAL的基本结构
- 4.2 分析HAL module架构
- 4.2.1 hw_module_t
- 4.2.2 结构hw_module_methods_t的定义
- 4.2.3 hw_device_t结构
- 4.3 分析文件hardware.c
- 4.3.1 寻找动态链接库的地址
- 4.3.2 数组variant_keys
- 4.3.3 载入相应的库
- 4.3.4 获得hw_module_t结构体
- 4.4 分析硬件抽象层的加载过程
- 4.5 分析硬件访问服务
- 4.5.1 定义硬件访问服务接口
- 4.5.2 具体实现
- 4.6 分析Android官方实例
- 4.6.1 获取实例工程源代码
- 4.6.2 直接调用Service方法的实现代码
- 4.6.3 通过Manager调用Service的实现代码
- 4.7 HAL和系统移植
- 4.7.1 移植各个Android部件的方式
- 4.7.2 设置设备权限
- 4.7.3 init.rc初始化
- 4.7.4 文件系统的属性
- 第5章 分析IPC通信机制
- 5.1 Binder机制概述
- 5.2 分析Binder驱动程序
- 5.2.1 分析数据结构
- 5.2.2 分析设备初始化
- 5.2.3 打开Binder设备文件
- 5.2.4 内存映射
- 5.2.5 释放物理页面
- 5.2.6 分配内核缓冲区
- 5.2.7 释放内核缓冲区
- 5.2.8 查询内核缓冲区
- 5.3 Binder封装库
- 5.3.1 类BBinder
- 5.3.2 类BpRefBase
- 5.3.3 类IPCThreadState
- 5.4 初始化Java层Binder框架
- 5.5 分析MediaServer的通信机制
- 5.5.1 MediaServer的入口函数
- 5.5.2 ProcessState
- 5.5.3 defaultServiceManager
- 5.5.4 注册MediaPlayerService
- 5.5.5 分析StartThread Pool和join Thread Pool
- 第6章 分析Binder对象和Java接口
- 6.1 分析实体对象(binder_node)
- 6.2 分析本地对象(BBinder)
- 6.3 分析引用对象(binder_ref)
- 6.4 分析代理对象(BpBinder)
- 6.5 分析Java接口
- 6.5.1 获取Service Manager
- 6.5.2 分析ActivityManagerService的Java层
- 第7章 分析ServiceManager和MessageQueue
- 7.1 分析ServiceManager
- 7.1.1 分析主入口函数
- 7.1.2 打开Binder设备文件
- 7.1.3 注册处理
- 7.1.4 创建Binder实体对象
- 7.1.5 尽职的循环
- 7.1.6 将信息注册到ServiceManager
- 7.1.7 分析MediaPlayerService和Client
- 7.2 获得Service Manager接口
- 7.3 分析MessageQueue
- 7.3.1 创建MessageQueue
- 7.3.2 提取消息
- 7.3.3 分析函数nativePollOnce
- 第8章 init进程和Zygote进程
- 8.1 分析init进程
- 8.1.1 分析入口函数
- 8.1.2 分析配置文件
- 8.1.3 分析Service
- 8.1.4 解析on字段的内容
- 8.1.5 init控制Service
- 8.1.6 控制属性服务
- 8.2 分析Zygote(孕育)进程
- 8.2.1 Zygote基础
- 8.2.2 分析Zygote的启动过程
- 第9章 System进程和应用程序进程
- 9.1 分析System进程
- 9.1.1 启动System进程前的准备工作
- 9.1.2 分析SystemServer
- 9.1.3 分析EntropyService
- 9.1.4 分析DropBoxManagerService
- 9.1.5 分析DiskStatsService
- 9.1.6 分析DeviceStorageManagerService(监测系统内存存储空间的状态)
- 9.1.7 分析SamplingProfilerService
- 9.2 分析应用程序进程
- 9.2.1 创建应用程序
- 9.2.2 启动线程池
- 9.2.3 创建信息循环
- 第10章 分析Activity组件
- 10.1 Activity基础
- 10.1.1 Activity状态
- 10.1.2 剖析Activity中的主要函数
- 10.2 分析Activity的启动源代码
- 10.2.1 Launcher启动应用程序
- 10.2.2 返回ActivityManagerService的远程接口
- 10.2.3 解析intent的内容
- 10.2.4 分析检查机制
- 10.2.5 执行Activity组件的操作
- 10.2.6 将Launcher推入Paused状态
- 10.2.7 处理消息
- 10.2.8 暂停完毕
- 10.2.9 建立双向连接
- 10.2.10 启动新的Activity
- 10.2.11 通知机制
- 10.2.12 发送消息
- 第11章 应用程序管理服务——PackageManagerService分析
- 11.1 PackageManagerService概述
- 11.2 系统进程启动
- 11.3 开始运行
- 11.4 扫描APK文件
- 11.5 解析并安装文件
- 11.6 启动系统默认Home应用程序Launcher
- 11.6.1 设置系统进程
- 11.6.2 启动Home应用程序
- 11.6.3 启动com.android.launcher2.Launcher
- 11.6.4 加载应用程序
- 11.6.5 获得Activity
- 第12章 Content Provider存储机制
- 12.1 Content Provider基础
- 12.1.1 ContentProvider在应用程序中的架构
- 12.1.2 ContentProvider的常用接口
- 12.2 启动Content Provider
- 12.2.1 获得对象接口
- 12.2.2 存在校验
- 12.2.3 启动Android应用程序
- 12.2.4 根据进程启动Content Provider
- 12.2.5 处理消息
- 12.2.6 具体启动
- 12.3 Content Provider数据共享
- 12.3.1 获取接口
- 12.3.2 创建CursorWindow对象
- 12.3.3 数据传递
- 12.3.4 处理进程通信的请求
- 12.3.5 数据操作
- 第13章 分析广播机制源代码
- 13.1 Broadcast基础
- 13.2 发送广播信息
- 13.2.1 intent描述指示
- 13.2.2 传递广播信息
- 13.2.3 封装传递
- 13.2.4 处理发送请求
- 13.2.5 查找广播接收者
- 13.2.6 处理广播信息
- 13.2.7 检查权限
- 13.2.8 处理的进程通信请求
- 13.3 分析BroadCastReceiver
- 13.3.1 MainActivity的调用
- 13.3.2 注册广播接收者
- 13.3.3 获取接口对象
- 13.3.4 处理进程间的通信请求
- 第14章 分析电源管理系统
- 14.1 Power Management架构基础
- 14.2 分析Framework层
- 14.2.1 文件PowerManager.java
- 14.2.2 提供PowerManager功能
- 14.3 JNI层架构分析
- 14.3.1 定义了两层之间的接口函数
- 14.3.2 与Linux Kernel层进行交互
- 14.4 Kernel(内核)层架构分析
- 14.4.1 文件power.c
- 14.4.2 文件earlysuspend.c
- 14.4.3 文件wakelock.c
- 14.4.4 文件resume.c
- 14.4.5 文件suspend.c
- 14.4.6 文件main.c
- 14.4.7 proc文件
- 14.5 wakelock和early_suspend
- 14.5.1 wakelock的原理
- 14.5.2 early_suspend的原理
- 14.5.3 Android休眠
- 14.5.4 Android唤醒
- 14.6 Battery电池系统架构和管理
- 14.6.1 实现驱动程序
- 14.6.2 实现JNI本地代码
- 14.6.3 Java层代码
- 14.6.4 实现Uevent部分
- 14.7 JobScheduler节能调度机制
- 14.7.1 JobScheduler机制的推出背景
- 14.7.2 JobScheduler的实现
- 14.7.3 实现操作调度
- 14.7.4 封装调度任务
- 第15章 分析WindowManagerService系统
- 15.1 WindowManagerService基础
- 15.2 计算Activity窗口的大小
- 15.2.1 实现View遍历
- 15.2.2 函数relayoutWindow
- 15.2.3 函数relayoutWindow
- 15.2.4 拦截消息的处理类
- 15.2.5 判断是否计算过
- 第16章 分析电话系统
- 16.1 Android电话系统详解
- 16.1.1 电话系统简介
- 16.1.2 电话系统结构
- 16.1.3 驱动程序介绍
- 16.1.4 RIL接口
- 16.1.5 分析电话系统的实现流程
- 16.2 电话系统中的音频模块
- 16.2.1 音频系统结构
- 16.2.2 分析音频系统的层次
- 16.3 分析拨号流程
- 16.3.1 拨号界面
- 16.3.2 实现Phone应用
- 16.3.3 Call通话控制
- 16.3.4 静态方法调用
- 16.3.5 通话管理
- 16.3.6 dial拨号
- 16.3.7 状态跟踪
- 16.3.8 RIL消息“出/入”口
- 16.3.9 显示通话主界面
- 第17章 分析短信系统
- 17.1 短信系统的主界面
- 17.2 发送普通短信
- 17.3 发送彩信
- 17.4 接收短信
- 17.4.1 Java应用层的接收流程
- 17.4.2 Framework层的处理过程
- 第18章 Sensor传感器系统详解
- 18.1 Android传感器系统概述
- 18.2 Java层详解
- 18.3 Frameworks层详解
- 18.3.1 监听传感器的变化
- 18.3.2 注册监听
- 18.4 JNI层详解
- 18.4.1 实现Native(本地)函数
- 18.4.2 处理客户端数据
- 18.4.3 处理服务端数据
- 18.4.4 封装HAL层的代码
- 18.4.5 处理消息队列
- 18.5 HAL层详解
- 第19章 分析SEAndroid系统
- 19.1 SEAndroid概述
- 19.1.1 内核空间
- 19.1.2 用户空间
- 19.2 文件安全上下文
- 19.2.1 设置打包在ROM里面的文件的安全上下文
- 19.2.2 设置虚拟文件系统的安全上下文
- 19.2.3 设置应用程序数据文件的安全上下文
- 19.3 进程安全上下文
- 19.3.1 为独立进程静态地设置安全上下文
- 19.3.2 为应用程序进程设置安全上下文
- 第20章 分析ART系统
- 20.1 对比Dalvik VM和ART
- 20.2 启动ART
- 20.2.1 运行app_process进程
- 20.2.2 准备启动
- 20.2.3 创建运行实例
- 20.2.4 注册本地JNI函数
- 20.2.5 启动守护进程
- 20.2.6 解析参数
- 20.2.7 初始化类、方法和域
- 20.3 分析主函数main
- 20.4 查找目标类
- 20.4.1 函数LookupClass()
- 20.4.2 函数DefineClass()
- 20.4.3 函数InsertClass()
- 20.4.4 函数LinkClass()
- 20.5 类操作
- 20.6 实现托管操作
- 20.7 加载OAT文件
- 20.7.1 产生OAT
- 20.7.2 创建ART虚拟机
- 20.7.3 解析启动参数并创建堆
- 20.7.4 生成指定目录文件
- 20.7.5 加载OAT文件
- 20.7.6 解析字段
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。