展开全部

主编推荐语

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日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。