深入理解Android(套装全2册)
《深入理解Android》
推荐序
前言
第一部分 基础篇
第1章 初识Android
1.1 智能手机的系统结构
1.2 Android系统架构
1.2.1 应用层
1.2.2 应用框架层
1.2.3 系统运行库层
查看完整
推荐序
前言
第一部分 基础篇
第1章 初识Android
1.1 智能手机的系统结构
1.2 Android系统架构
1.2.1 应用层
1.2.2 应用框架层
1.2.3 系统运行库层
查看完整
杨青平,资深Android系统工程师和软件开发工程师,热衷于Android用源代码和系统原理的研究,对Android的系统架构、设计原理以及Telephony和Framework等核心功能模块的工作机制有非常深入的研究。目前就职于国内领先的AndroidOS提供商ThunderSoft(中科创达),担任系统架构师。他对J2EE、UML、设计模式等相关技术,以及电信增值业务、电子商务、物联网等重要软件行业的运行模式、业务发展规划也有较深入的了解。此外,他还是一位经验丰富的讲师,有多年的人才培训经验,善于总结和分享。
《深入理解Android:卷2》:
是“深入理解Android”系列的第2本,第1本书上市后获得广大读者高度评价,在Android开发者社群内口口相传。本书不仅继承了第1本书的优点并改正了其在细微处存在的一些不足,而且还在写作的总体思想上进行了创新,更强调从系统设计者的角度去分析Android系统中各个模块内部的实现原理和工作机制。从具体内容上讲,本书的重点是Android Framework的Java层,对Java层涉及的核心模块和服务进行了深入而细致的分析。通过本书,读者不仅能对Android系统本身有更深入的理解,而且还能掌握分析大型复杂源代码的能力。
《深入理解Android:卷2》一共8章:第1章介绍了阅读本书所需要做的准备工作,包括Android 4.0源码的下载和编译、Eclipse环境的搭建,以及A…
查看完整
是“深入理解Android”系列的第2本,第1本书上市后获得广大读者高度评价,在Android开发者社群内口口相传。本书不仅继承了第1本书的优点并改正了其在细微处存在的一些不足,而且还在写作的总体思想上进行了创新,更强调从系统设计者的角度去分析Android系统中各个模块内部的实现原理和工作机制。从具体内容上讲,本书的重点是Android Framework的Java层,对Java层涉及的核心模块和服务进行了深入而细致的分析。通过本书,读者不仅能对Android系统本身有更深入的理解,而且还能掌握分析大型复杂源代码的能力。
《深入理解Android:卷2》一共8章:第1章介绍了阅读本书所需要做的准备工作,包括Android 4.0源码的下载和编译、Eclipse环境的搭建,以及A…
查看完整
《深入理解Android》
推荐序
前言
第一部分 基础篇
第1章 初识Android
1.1 智能手机的系统结构
1.2 Android系统架构
1.2.1 应用层
1.2.2 应用框架层
1.2.3 系统运行库层
1.2.4 核心层
1.3 Android Telephony框架结构
1.3.1 系统运行库层的HAL层
1.3.2 简析HAL结构
1.3.3 Android为什么引入HAL
1.3.4 Android中HAL的运行结构
1.4 本章小结
第2章 搭建Android源代码编译环境
2.1 Ubuntu Linux操作系统及工具安装
2.1.1 PC配置建议
2.1.2 Ubuntu安装光盘的制作
2.1.3 Ubuntu安装过程
2.1.4 Ubuntu系统工具包更新升级
2.1.5 Java运行环境JDK安装及配置
2.1.6 Android SDK的下载和配置
2.1.7 使用Android SDK启动虚拟设备
2.2 Android源代码下载及编译过程
2.2.1 工作目录设置
2.2.2 源代码下载
2.2.3 整体编译Android 源代码
2.2.4 单个模块按需编译
2.2.5 编译生成本地Android SDK
2.3 Android常用工具使用及相关技巧说明
2.3.1 使用本地编译成功的镜像文件启动Android模拟器
2.3.2 Android调试工具adb的使用方法
2.3.3 进入Android虚拟设备控制台模拟短信、来电等功能
2.4 Eclipse配置及使用
2.4.1 Android开发套件ADT下载及配置
2.4.2 建立Android源代码Java工程
2.4.3 格式化Android Java源代码
2.5 使用Source Insight方便阅读C/C++代码
2.5.1 安装Wine
2.5.2 安装Source Insight
2.5.3 配置Source Insight C/C++工程
2.6 本章小结
第3章 主要技术准备
3.1 何为同步和异步
3.2 Handler消息处理机制
3.2.1 Handler概念分析
3.2.2 Handler特性
3.2.3 常用Handler消息处理机制讲解
3.2.4 Handler的作用
3.3 AIDL跨应用服务
3.3.1 AIDL概念分析
3.3.2 AIDL服务提供方
3.3.3 AIDL服务调用方
3.4 广播
3.4.1 Android 系统中的广播
3.4.2 Broadcast接收
3.4.3 Broadcast发送
3.5 本章小结
第二部分 Telephony通话功能
第4章 深入解析通话流程
4.1 通话相关主要源代码汇总及简要说明
4.2 电话主动呼叫流程分析
4.2.1 运行Android虚拟设备
4.2.2 拨号界面DialtactsActivity的onCreate方法
4.2.3 DialpadFragment拨号盘Tab表单
4.2.4 寻找拨号统一入口OutgoingCallBroadcaster
4.2.5 CallController拨号placeCall方法
4.2.6 Phone帮助类PhoneUtils静态placeCall方法
4.2.7 通话大管家CallManager
4.2.8 Phone对象的dial拨号方法
4.2.9 Call状态跟踪者GsmCallTracker
4.2.10 RIL消息的出入口RIL.java
4.2.11 启动通话主界面InCallScreen
4.2.12 拨号流程总结
4.3 电话被动接收来电流程分析
4.3.1 Android虚拟设备模拟接收来电
4.3.2 RegistrantList消息处理机制
4.3.3 GsmCallTracker响应RIL的Call状态变化通知
4.3.4 RIL.java的getCurrentCalls方法
4.3.5 GsmCallTracker响应消息通知
4.3.6 handlePollCalls发出来电通知
4.3.7 GSMPhone的通知方法notifyNewRingingConnection
4.3.8 CallManager响应来电消息通知
4.3.9 CallNotifier响应来电通知
4.3.10 InCallScreen展现来电界面
4.3.11 来电流程总结
4.4 通话关键流程
4.4.1 建立Android通话模型
4.4.2 AT命令发送流程
4.4.3 通话状态变化流程
4.4.4 本地主动挂断通话流程
4.4.5 远端断开通话连接流程
4.5 本章小结
第5章 深入解析Telephony通话应用机制
5.1 Phone应用的关键代码解析
5.2 认识通话主界面InCallScreen
5.2.1 InCallScreen中的主要方法
5.2.2 单例模式的Activity通话界面
5.2.3 Layout布局说明
5.3 通话主界面InCallScreen
5.3.1 onCreate-运行Activity
5.3.2 onNewIntent-单例InCallScreen加载入口
5.3.3 internalResolveIntent-进入InCallScreen处理Intent的唯一方法
5.3.4 onResume-显示InCallScreen通话界面
5.3.5 handleMessage-Handler消息响应方法
5.3.6 onSuppServiceFailed-显示通话服务失败提示信息
5.3.7 updateScreen-更新通话界面
5.3.8 onDisconnect-断开通话连接
5.3.9 handleOnscreenButtonClick-响应通话控制按钮点击事件
5.3.10 InCallScreen通话界面运行机制总结
5.4 通话信息展示CallCard
5.4.1 两路通话布局View控件
5.4.2 updateState-更新CallCard
5.4.3 displayMainCallStatus-显示/更新第一路通话信息
5.4.4 displayOnHoldCallStatus-显示/更新第二路通话信息
5.4.5 修改通话信息展示的思路及原则
5.5 通话控制InCallTouchUi
5.5.1 View布局控件
5.5.2 updateState-更新InCallTouchUi
5.5.3 MultiWaveView-来电控制接听、拒接界面
5.5.4 HeadSet-响应免提事件
5.5.5 修改来电界面的思路及原则
5.6 通话功能中必不可少的DTMF
5.6.1 什么是DTMF
5.6.2 DTMFTwelveKeyDialer的布局
5.6.3 如何显示DTMF界面
5.6.4 Tone音发送流程
5.7 Phone应用的加载入口PhoneApp类
5.7.1 PhoneApp类属性及方法
5.7.2 onCreate-PhoneApp应用加载入口
5.7.3 PowerManager-PhoneApp电源管理
5.7.4 Sensor-PhoneApp感应器的应用
5.7.5 MediaButtonBroadcastReceiver-接收耳机HOOK键广播事件
5.7.6 PhoneAppBroadcastReceiver-接收Phone应用杂项广播事件
5.8 Handler消息处理的幕后工作者CallNotifier
5.8.1 CallNotifier的本质
5.8.2 Handler消息注册和响应机制
5.8.3 onNewRingingConnection-接收到新来电的幕后处理
5.8.4 onPhoneStateChanged-通话状态变化的幕后处理
5.8.5 onDisconnect-通话连接断开的幕后处理
5.9 本章小结
第6章 手机通话功能框架层实现机制
6.1 Telephony Frameworks层解析
6.1.1 通话功能相关代码文件
6.1.2 通话功能关键类
6.1.3 Telephony通信能力模型
6.2 GSMPhone对象详解
6.2.1 GSMPhone类层次继承关系
6.2.2 GSMPhone类代码结构解析
6.2.3 PhoneFactory工厂方法实现类
6.2.4 PhoneProxy代理模式实现类
6.2.5 GSMPhone类的组合逻辑关系
6.2.6 GSMPhone类的Handler消息处理机制
6.2.7 GSMPhone类通话管理实现机制
6.3 CallTracker运行机制
6.3.1 GsmCallTracker类代码结构解析
6.3.2 GsmCallTracker的Handler消息处理机制
6.3.3 GsmCallTracker与RIL对象的交互机制
6.4 以GsmCall为核心的通话管理模型
6.4.1 GsmCall类代码结构解析
6.4.2 GsmConnection类代码结构解析
6.4.3 DriverCall与GsmCall、GsmConnection的关系
6.5 GsmCallTracker类的 handlePollCalls方法处理逻辑
6.5.1 初始化操作
6.5.2 更新通话相关信息
6.5.3 根据最新的通话状态发出通知
6.5.4 更新手机状态
6.6 GsmCallTracker通话连接断开的处理机制
6.6.1 本地主动挂断通话的处理机制
6.6.2 远端断开通话连接的处理机制
6.7 Android虚拟设备上验证GSM制式手机的通话模型
6.7.1 增加日志输出
6.7.2 运行Android虚拟设备并分析日志
6.8 通话大管家CallManager
6.8.1 CallManager的本质
6.8.2 Handler消息注册及运行机制
6.8.3 如何获取通话基本信息
6.9 通话计时实例分析
6.9.1 记录通话的开始时间
6.9.2 记录通话的结束时间
6.9.3 Phone应用计算通话时长
6.10 Handler消息处理机制
6.10.1 Handler消息的注册过程
6.10.2 Handler消息的接收和响应过程
6.11 实战-来电防火墙
6.11.1 应用原理分析
6.11.2 在onNewRingingConnection方法加入拦截请求
6.12 本章小结
第三部分 Telephony通信功能
第7章 网络服务状态运行机制
7.1 什么是ServiceState
7.2 初识ServiceState实体类
7.2.1 ServiceState类的实质
7.2.2 ServiceState类关键常量及属性
7.2.3 ServiceState类关键方法
7.3 ServiceStateTracker运行机制详解
7.3.1 ServiceStateTracker抽象类为核心的类图
7.3.2 ServiceStateTracker代码结构
7.3.3 ServiceStateTracker的Handler消息处理机制
7.3.4 ServiceStateTracker与RIL对象的交互机制
7.4 handlePollStateResult方法处理逻辑
7.4.1 RIL返回查询结果的异常判断和处理
7.4.2 处理4个不同网络服务查询返回的结果
7.4.3 用pollStateDone方法完成收尾工作
7.5 ServiceState最佳实践
7.5.1 获取运营商信息
7.5.2 通知栏手机信号实时变化
7.6 实战-飞行模式的实现
7.6.1 飞行模式的设置入口
7.6.2 Radio无线通信模块的开启或关闭
7.7 本章小结
第8章 Android手机上网实现机制
8.1 Android网络整体结构
8.2 什么是DataConnection
8.2.1 DataConnection类定义及子类
8.2.2 DataConnection类关键属性
8.2.3 DataConnection类的方法
8.2.4 5个数据连接对象的状态转换
8.3 StateMachine状态机
8.3.1 State设计模式
8.3.2 StateMachine核心类
8.3.3 StateMachine运行机制
8.3.4 DataConnection使用State模式的运行机制
8.4 什么是APN
8.4.1 APN配置关键字段
8.4.2 Android支持的APN类型
8.4.3 如何在Android中新增APN配置
8.5 开机自动建立default默认数据连接
8.5.1 如何查看手机上网的基本参数配置
8.5.2 初始化ApnContext
8.5.3 创建DataConnection数据连接
8.5.4 激活DataConnection数据连接
8.6 DataConnectionTracker运行机制
8.6.1 初始化ApnContext操作
8.6.2 开机建立default默认的数据连接
8.6.3 关闭数据连接
8.6.4 循环更新网络连接状态信息
8.6.5 APN数据库配置信息变化的观察者
8.7 获取Android手机上网数据包
8.7.1 使用tcpdump工具抓取TCP/IP数据包
8.7.2 使用Wireshark软件分析TCP/IP数据包
8.8 MMS彩信数据连接的实现
8.8.1 建立和关闭彩信数据连接
8.8.2 如何支持多种类型网络连接
8.9 实战-手机上网数据总开关的实现
8.10 本章小结
第9章 深入解析短信发送和接收流程
9.1 MMS应用主要源代码汇总及简要说明
9.2 主动发送短信流程分析
9.2.1 进入短信会话列表界面
9.2.2 短信编辑界面
9.2.3 SmsMessageSender短信发送处理逻辑
9.2.4 Telephony Frameworks层中的SmsManager类
9.2.5 IccSmsInterfaceManager服务发送短信
9.2.6 SMSDispatcher短信分发器
9.2.7 主动发送短信流程总结
9.3 短信发送状态相关处理机制
9.3.1 如何判断短信是否成功发送到短信中心
9.3.2 如何判断短信接收方已经成功收取短信
9.4 短信接收流程分析
9.4.1 短信接收的开始
9.4.2 进入短信分发器SMSDispatcher
9.4.3 接收并处理新短信Broadcast广播
9.4.4 短信接收流程总结
9.5 彩信发送和接收关键流程
9.5.1 彩信传输过程中的关键类
9.5.2 TransactionService为核心的彩信传输机制
9.5.3 Transaction对象执行彩信传输
9.5.4 基于WAP PUSH的彩信接收与下载
9.6 本章小结
第四部分 深入解析Android RIL
第10章 Android RIL框架结构及RILJ运行机制
10.1 Android RIL关键处理流程
10.1.1 Android RIL框架结构
10.1.2 Android RIL的数据交互
10.2 认识RILJ
10.2.1 RILJ核心类图
10.2.2 RILJ关键属性
10.2.3 RILJ关键方法
10.2.4 RILJ运行机制
10.3 认识RILRequest类
10.3.1 RILRequest类的关键属性
10.3.2 RILRequest类的方法
10.4 解析RILJ发出RIL请求流程
10.4.1 send方法发送Handler消息
10.4.2 RILSender接收和处理Handler消息
10.5 解析RILJ接收Response消息处理流程
10.5.1 RILReceiver内部类运行机制
10.5.2 Solicited Response消息处理方法processSolicited
10.5.3 UnSolicited Response消息处理方法processUnsolicited
10.6 本章小结
第11章 RILC系统结构及LibRIL运行机制
11.1 RILC主要代码目录结构
11.2 解析RILC运行机制
11.2.1 RILC启动过程
11.2.2 RILC运行过程
11.3 初识RILC中的运行环境LibRIL
11.3.1 LibRIL主要文件及作用
11.3.2 重点结构体说明
11.4 LibRIL运行环境加载过程
11.4.1 开启ril_event事件监听入口RIL_startEventLoop
11.4.2 RIL_register函数引入三方RIL_RadioFunctions
11.5 运行状态中ril_event事件处理机制
11.5.1 认识ril_event结构体
11.5.2 RIL事件生命周期控制的处理函数
11.5.3 ril_event_loop处理机制
11.6 详解LibRIL运行机制
11.6.1 RILJ与LibRIL建立Socket连接过程
11.6.2 Solicited消息的交互流程和处理机制
11.7 本章小结
第12章 Reference-RIL运行框架
12.1 Reference-RIL运行机制
12.1.1 RIL_Init函数初始化Reference-RIL
12.1.2 onRequest接收LibRIL的请求调用
12.1.3 UnSolicited消息处理逻辑
12.2 AT命令
12.2.1 如何新增AT命令
12.2.2 Android Telephony常用AT命令
12.3 Android RIL层运行框架和机制总结
12.3.1 总结Solicited消息处理流程
12.3.2 总结UnSolicited消息处理流程
12.4 本章小结
第五部分 系统服务
第13章 Telephony提供的系统服务
13.1 System Service系统服务类图
13.2 详解PhoneInterfaceManager实现机制
13.2.1 ITelephony.aidl接口定义
13.2.2 PhoneInterfaceManager服务创建过程
13.2.3 PhoneInterfaceManager服务使用实例分析
13.3 详解TelephonyRegistry实现机制
13.3.1 系统服务的创建入口
13.3.2 TelephonyRegistry关键方法
13.3.3 listen方法处理逻辑
13.3.4 notifyCallState方法发出通话状态变化通知
13.3.5 触发TelephonyRegistry发出通知机制
13.3.6 TelephonyRegistry系统服务使用实例分析
13.4 简述TelephonyManager实现机制
13.5 本章小结
《深入理解Android:卷2》
^ 收 起
推荐序
前言
第一部分 基础篇
第1章 初识Android
1.1 智能手机的系统结构
1.2 Android系统架构
1.2.1 应用层
1.2.2 应用框架层
1.2.3 系统运行库层
1.2.4 核心层
1.3 Android Telephony框架结构
1.3.1 系统运行库层的HAL层
1.3.2 简析HAL结构
1.3.3 Android为什么引入HAL
1.3.4 Android中HAL的运行结构
1.4 本章小结
第2章 搭建Android源代码编译环境
2.1 Ubuntu Linux操作系统及工具安装
2.1.1 PC配置建议
2.1.2 Ubuntu安装光盘的制作
2.1.3 Ubuntu安装过程
2.1.4 Ubuntu系统工具包更新升级
2.1.5 Java运行环境JDK安装及配置
2.1.6 Android SDK的下载和配置
2.1.7 使用Android SDK启动虚拟设备
2.2 Android源代码下载及编译过程
2.2.1 工作目录设置
2.2.2 源代码下载
2.2.3 整体编译Android 源代码
2.2.4 单个模块按需编译
2.2.5 编译生成本地Android SDK
2.3 Android常用工具使用及相关技巧说明
2.3.1 使用本地编译成功的镜像文件启动Android模拟器
2.3.2 Android调试工具adb的使用方法
2.3.3 进入Android虚拟设备控制台模拟短信、来电等功能
2.4 Eclipse配置及使用
2.4.1 Android开发套件ADT下载及配置
2.4.2 建立Android源代码Java工程
2.4.3 格式化Android Java源代码
2.5 使用Source Insight方便阅读C/C++代码
2.5.1 安装Wine
2.5.2 安装Source Insight
2.5.3 配置Source Insight C/C++工程
2.6 本章小结
第3章 主要技术准备
3.1 何为同步和异步
3.2 Handler消息处理机制
3.2.1 Handler概念分析
3.2.2 Handler特性
3.2.3 常用Handler消息处理机制讲解
3.2.4 Handler的作用
3.3 AIDL跨应用服务
3.3.1 AIDL概念分析
3.3.2 AIDL服务提供方
3.3.3 AIDL服务调用方
3.4 广播
3.4.1 Android 系统中的广播
3.4.2 Broadcast接收
3.4.3 Broadcast发送
3.5 本章小结
第二部分 Telephony通话功能
第4章 深入解析通话流程
4.1 通话相关主要源代码汇总及简要说明
4.2 电话主动呼叫流程分析
4.2.1 运行Android虚拟设备
4.2.2 拨号界面DialtactsActivity的onCreate方法
4.2.3 DialpadFragment拨号盘Tab表单
4.2.4 寻找拨号统一入口OutgoingCallBroadcaster
4.2.5 CallController拨号placeCall方法
4.2.6 Phone帮助类PhoneUtils静态placeCall方法
4.2.7 通话大管家CallManager
4.2.8 Phone对象的dial拨号方法
4.2.9 Call状态跟踪者GsmCallTracker
4.2.10 RIL消息的出入口RIL.java
4.2.11 启动通话主界面InCallScreen
4.2.12 拨号流程总结
4.3 电话被动接收来电流程分析
4.3.1 Android虚拟设备模拟接收来电
4.3.2 RegistrantList消息处理机制
4.3.3 GsmCallTracker响应RIL的Call状态变化通知
4.3.4 RIL.java的getCurrentCalls方法
4.3.5 GsmCallTracker响应消息通知
4.3.6 handlePollCalls发出来电通知
4.3.7 GSMPhone的通知方法notifyNewRingingConnection
4.3.8 CallManager响应来电消息通知
4.3.9 CallNotifier响应来电通知
4.3.10 InCallScreen展现来电界面
4.3.11 来电流程总结
4.4 通话关键流程
4.4.1 建立Android通话模型
4.4.2 AT命令发送流程
4.4.3 通话状态变化流程
4.4.4 本地主动挂断通话流程
4.4.5 远端断开通话连接流程
4.5 本章小结
第5章 深入解析Telephony通话应用机制
5.1 Phone应用的关键代码解析
5.2 认识通话主界面InCallScreen
5.2.1 InCallScreen中的主要方法
5.2.2 单例模式的Activity通话界面
5.2.3 Layout布局说明
5.3 通话主界面InCallScreen
5.3.1 onCreate-运行Activity
5.3.2 onNewIntent-单例InCallScreen加载入口
5.3.3 internalResolveIntent-进入InCallScreen处理Intent的唯一方法
5.3.4 onResume-显示InCallScreen通话界面
5.3.5 handleMessage-Handler消息响应方法
5.3.6 onSuppServiceFailed-显示通话服务失败提示信息
5.3.7 updateScreen-更新通话界面
5.3.8 onDisconnect-断开通话连接
5.3.9 handleOnscreenButtonClick-响应通话控制按钮点击事件
5.3.10 InCallScreen通话界面运行机制总结
5.4 通话信息展示CallCard
5.4.1 两路通话布局View控件
5.4.2 updateState-更新CallCard
5.4.3 displayMainCallStatus-显示/更新第一路通话信息
5.4.4 displayOnHoldCallStatus-显示/更新第二路通话信息
5.4.5 修改通话信息展示的思路及原则
5.5 通话控制InCallTouchUi
5.5.1 View布局控件
5.5.2 updateState-更新InCallTouchUi
5.5.3 MultiWaveView-来电控制接听、拒接界面
5.5.4 HeadSet-响应免提事件
5.5.5 修改来电界面的思路及原则
5.6 通话功能中必不可少的DTMF
5.6.1 什么是DTMF
5.6.2 DTMFTwelveKeyDialer的布局
5.6.3 如何显示DTMF界面
5.6.4 Tone音发送流程
5.7 Phone应用的加载入口PhoneApp类
5.7.1 PhoneApp类属性及方法
5.7.2 onCreate-PhoneApp应用加载入口
5.7.3 PowerManager-PhoneApp电源管理
5.7.4 Sensor-PhoneApp感应器的应用
5.7.5 MediaButtonBroadcastReceiver-接收耳机HOOK键广播事件
5.7.6 PhoneAppBroadcastReceiver-接收Phone应用杂项广播事件
5.8 Handler消息处理的幕后工作者CallNotifier
5.8.1 CallNotifier的本质
5.8.2 Handler消息注册和响应机制
5.8.3 onNewRingingConnection-接收到新来电的幕后处理
5.8.4 onPhoneStateChanged-通话状态变化的幕后处理
5.8.5 onDisconnect-通话连接断开的幕后处理
5.9 本章小结
第6章 手机通话功能框架层实现机制
6.1 Telephony Frameworks层解析
6.1.1 通话功能相关代码文件
6.1.2 通话功能关键类
6.1.3 Telephony通信能力模型
6.2 GSMPhone对象详解
6.2.1 GSMPhone类层次继承关系
6.2.2 GSMPhone类代码结构解析
6.2.3 PhoneFactory工厂方法实现类
6.2.4 PhoneProxy代理模式实现类
6.2.5 GSMPhone类的组合逻辑关系
6.2.6 GSMPhone类的Handler消息处理机制
6.2.7 GSMPhone类通话管理实现机制
6.3 CallTracker运行机制
6.3.1 GsmCallTracker类代码结构解析
6.3.2 GsmCallTracker的Handler消息处理机制
6.3.3 GsmCallTracker与RIL对象的交互机制
6.4 以GsmCall为核心的通话管理模型
6.4.1 GsmCall类代码结构解析
6.4.2 GsmConnection类代码结构解析
6.4.3 DriverCall与GsmCall、GsmConnection的关系
6.5 GsmCallTracker类的 handlePollCalls方法处理逻辑
6.5.1 初始化操作
6.5.2 更新通话相关信息
6.5.3 根据最新的通话状态发出通知
6.5.4 更新手机状态
6.6 GsmCallTracker通话连接断开的处理机制
6.6.1 本地主动挂断通话的处理机制
6.6.2 远端断开通话连接的处理机制
6.7 Android虚拟设备上验证GSM制式手机的通话模型
6.7.1 增加日志输出
6.7.2 运行Android虚拟设备并分析日志
6.8 通话大管家CallManager
6.8.1 CallManager的本质
6.8.2 Handler消息注册及运行机制
6.8.3 如何获取通话基本信息
6.9 通话计时实例分析
6.9.1 记录通话的开始时间
6.9.2 记录通话的结束时间
6.9.3 Phone应用计算通话时长
6.10 Handler消息处理机制
6.10.1 Handler消息的注册过程
6.10.2 Handler消息的接收和响应过程
6.11 实战-来电防火墙
6.11.1 应用原理分析
6.11.2 在onNewRingingConnection方法加入拦截请求
6.12 本章小结
第三部分 Telephony通信功能
第7章 网络服务状态运行机制
7.1 什么是ServiceState
7.2 初识ServiceState实体类
7.2.1 ServiceState类的实质
7.2.2 ServiceState类关键常量及属性
7.2.3 ServiceState类关键方法
7.3 ServiceStateTracker运行机制详解
7.3.1 ServiceStateTracker抽象类为核心的类图
7.3.2 ServiceStateTracker代码结构
7.3.3 ServiceStateTracker的Handler消息处理机制
7.3.4 ServiceStateTracker与RIL对象的交互机制
7.4 handlePollStateResult方法处理逻辑
7.4.1 RIL返回查询结果的异常判断和处理
7.4.2 处理4个不同网络服务查询返回的结果
7.4.3 用pollStateDone方法完成收尾工作
7.5 ServiceState最佳实践
7.5.1 获取运营商信息
7.5.2 通知栏手机信号实时变化
7.6 实战-飞行模式的实现
7.6.1 飞行模式的设置入口
7.6.2 Radio无线通信模块的开启或关闭
7.7 本章小结
第8章 Android手机上网实现机制
8.1 Android网络整体结构
8.2 什么是DataConnection
8.2.1 DataConnection类定义及子类
8.2.2 DataConnection类关键属性
8.2.3 DataConnection类的方法
8.2.4 5个数据连接对象的状态转换
8.3 StateMachine状态机
8.3.1 State设计模式
8.3.2 StateMachine核心类
8.3.3 StateMachine运行机制
8.3.4 DataConnection使用State模式的运行机制
8.4 什么是APN
8.4.1 APN配置关键字段
8.4.2 Android支持的APN类型
8.4.3 如何在Android中新增APN配置
8.5 开机自动建立default默认数据连接
8.5.1 如何查看手机上网的基本参数配置
8.5.2 初始化ApnContext
8.5.3 创建DataConnection数据连接
8.5.4 激活DataConnection数据连接
8.6 DataConnectionTracker运行机制
8.6.1 初始化ApnContext操作
8.6.2 开机建立default默认的数据连接
8.6.3 关闭数据连接
8.6.4 循环更新网络连接状态信息
8.6.5 APN数据库配置信息变化的观察者
8.7 获取Android手机上网数据包
8.7.1 使用tcpdump工具抓取TCP/IP数据包
8.7.2 使用Wireshark软件分析TCP/IP数据包
8.8 MMS彩信数据连接的实现
8.8.1 建立和关闭彩信数据连接
8.8.2 如何支持多种类型网络连接
8.9 实战-手机上网数据总开关的实现
8.10 本章小结
第9章 深入解析短信发送和接收流程
9.1 MMS应用主要源代码汇总及简要说明
9.2 主动发送短信流程分析
9.2.1 进入短信会话列表界面
9.2.2 短信编辑界面
9.2.3 SmsMessageSender短信发送处理逻辑
9.2.4 Telephony Frameworks层中的SmsManager类
9.2.5 IccSmsInterfaceManager服务发送短信
9.2.6 SMSDispatcher短信分发器
9.2.7 主动发送短信流程总结
9.3 短信发送状态相关处理机制
9.3.1 如何判断短信是否成功发送到短信中心
9.3.2 如何判断短信接收方已经成功收取短信
9.4 短信接收流程分析
9.4.1 短信接收的开始
9.4.2 进入短信分发器SMSDispatcher
9.4.3 接收并处理新短信Broadcast广播
9.4.4 短信接收流程总结
9.5 彩信发送和接收关键流程
9.5.1 彩信传输过程中的关键类
9.5.2 TransactionService为核心的彩信传输机制
9.5.3 Transaction对象执行彩信传输
9.5.4 基于WAP PUSH的彩信接收与下载
9.6 本章小结
第四部分 深入解析Android RIL
第10章 Android RIL框架结构及RILJ运行机制
10.1 Android RIL关键处理流程
10.1.1 Android RIL框架结构
10.1.2 Android RIL的数据交互
10.2 认识RILJ
10.2.1 RILJ核心类图
10.2.2 RILJ关键属性
10.2.3 RILJ关键方法
10.2.4 RILJ运行机制
10.3 认识RILRequest类
10.3.1 RILRequest类的关键属性
10.3.2 RILRequest类的方法
10.4 解析RILJ发出RIL请求流程
10.4.1 send方法发送Handler消息
10.4.2 RILSender接收和处理Handler消息
10.5 解析RILJ接收Response消息处理流程
10.5.1 RILReceiver内部类运行机制
10.5.2 Solicited Response消息处理方法processSolicited
10.5.3 UnSolicited Response消息处理方法processUnsolicited
10.6 本章小结
第11章 RILC系统结构及LibRIL运行机制
11.1 RILC主要代码目录结构
11.2 解析RILC运行机制
11.2.1 RILC启动过程
11.2.2 RILC运行过程
11.3 初识RILC中的运行环境LibRIL
11.3.1 LibRIL主要文件及作用
11.3.2 重点结构体说明
11.4 LibRIL运行环境加载过程
11.4.1 开启ril_event事件监听入口RIL_startEventLoop
11.4.2 RIL_register函数引入三方RIL_RadioFunctions
11.5 运行状态中ril_event事件处理机制
11.5.1 认识ril_event结构体
11.5.2 RIL事件生命周期控制的处理函数
11.5.3 ril_event_loop处理机制
11.6 详解LibRIL运行机制
11.6.1 RILJ与LibRIL建立Socket连接过程
11.6.2 Solicited消息的交互流程和处理机制
11.7 本章小结
第12章 Reference-RIL运行框架
12.1 Reference-RIL运行机制
12.1.1 RIL_Init函数初始化Reference-RIL
12.1.2 onRequest接收LibRIL的请求调用
12.1.3 UnSolicited消息处理逻辑
12.2 AT命令
12.2.1 如何新增AT命令
12.2.2 Android Telephony常用AT命令
12.3 Android RIL层运行框架和机制总结
12.3.1 总结Solicited消息处理流程
12.3.2 总结UnSolicited消息处理流程
12.4 本章小结
第五部分 系统服务
第13章 Telephony提供的系统服务
13.1 System Service系统服务类图
13.2 详解PhoneInterfaceManager实现机制
13.2.1 ITelephony.aidl接口定义
13.2.2 PhoneInterfaceManager服务创建过程
13.2.3 PhoneInterfaceManager服务使用实例分析
13.3 详解TelephonyRegistry实现机制
13.3.1 系统服务的创建入口
13.3.2 TelephonyRegistry关键方法
13.3.3 listen方法处理逻辑
13.3.4 notifyCallState方法发出通话状态变化通知
13.3.5 触发TelephonyRegistry发出通知机制
13.3.6 TelephonyRegistry系统服务使用实例分析
13.4 简述TelephonyManager实现机制
13.5 本章小结
《深入理解Android:卷2》
^ 收 起
杨青平,资深Android系统工程师和软件开发工程师,热衷于Android用源代码和系统原理的研究,对Android的系统架构、设计原理以及Telephony和Framework等核心功能模块的工作机制有非常深入的研究。目前就职于国内领先的AndroidOS提供商ThunderSoft(中科创达),担任系统架构师。他对J2EE、UML、设计模式等相关技术,以及电信增值业务、电子商务、物联网等重要软件行业的运行模式、业务发展规划也有较深入的了解。此外,他还是一位经验丰富的讲师,有多年的人才培训经验,善于总结和分享。
《深入理解Android:卷2》:
是“深入理解Android”系列的第2本,第1本书上市后获得广大读者高度评价,在Android开发者社群内口口相传。本书不仅继承了第1本书的优点并改正了其在细微处存在的一些不足,而且还在写作的总体思想上进行了创新,更强调从系统设计者的角度去分析Android系统中各个模块内部的实现原理和工作机制。从具体内容上讲,本书的重点是Android Framework的Java层,对Java层涉及的核心模块和服务进行了深入而细致的分析。通过本书,读者不仅能对Android系统本身有更深入的理解,而且还能掌握分析大型复杂源代码的能力。
《深入理解Android:卷2》一共8章:第1章介绍了阅读本书所需要做的准备工作,包括Android 4.0源码的下载和编译、Eclipse环境的搭建,以及Android系统进程(system_process)的调试等;第2章对Java Binder和MessageQueue的实现进行了深入分析;第3章仔细剖析了SystemServer的工作原理,这些服务包括EntropyService、DropboxManagerService、DiskStatsService、DeviceStorageMonitorService、SamplingProfilerService和ClipboardService;第4章对系统中负责Package信息查询和APK安装、卸载、更新等工作的服务PackageManagerService进行了详细分析;第5章则对Android系统中负责电源管理的核心服务 PowerManagerService的原理进行了一番深入的分析;第6章以ActivityManagerService为分析重点,它的启动、Activity的创建和启动、BroadcastReceiver的工作原理、Android中的进程管理等内容展开了较为深入的研究;第7章对ContentProvider的创建和启动、SQLite、Cursor query和close的实现等进行了深入分析;第8章以ContentService和AccountManagerService为分析对象,介绍了数据更新通知机制的实现,以及账户管理和数据同步等相关知识。
《深入理解Android:Telephony原理剖析与最佳实践》:
是“深入理解Android”系列的第3本,前两本书的内容和质量在Android开发者社群内得到了高度认可,已经树立起该系列图书的品牌。在写作思路和方式上,本书与前两本书一脉相承,对它们的优点进行了继承和发扬;在内容上,本书从从源代码角度深入解析了AndroidTelephony的架构设计与实现原理,深刻揭示了Android系统的通信机制。对于Android应用开发工程师和系统工程师而言,本书都是难得的研究和学习资料。
全书共13章,分为五部分:第一部分(1~3章),首先介绍了智能手机的系统结构、Android系统的架构、Telephony框架的结构,然后详细介绍了Android源代码编译环境和阅读环境的搭建方法,以及阅读本书要做的技术准备;第二部分(4~6章),对Android的通话功能进行了深入的分析,包括对通话流程的分析、对主动拨号和来电流程的分析、对通话应用机制的分析,以及对手机通信功能在框架层和应用层中的实现机制的分析;第三部分(7~9章),对Android的通信功能进行了深入的分析,包括对网络服务状态的运行机制的分析、对Android手机上网的实现机制的分析,以及对短息发送和接收流程的分析;第四部分(10~12章),对AndroidRIL的工作机制进行了深入的分析,包括对框架层中的RILJ运行机制的分析、对RILC系统结构及LibRIL运行机制的分析,以及对Reference-RIL框架的原理的分析;第五部分(13章),分析了Telephony模块所提供的系统服务,包括系统服务的注册入口以及调用系统服务接口的实例。
^ 收 起
是“深入理解Android”系列的第2本,第1本书上市后获得广大读者高度评价,在Android开发者社群内口口相传。本书不仅继承了第1本书的优点并改正了其在细微处存在的一些不足,而且还在写作的总体思想上进行了创新,更强调从系统设计者的角度去分析Android系统中各个模块内部的实现原理和工作机制。从具体内容上讲,本书的重点是Android Framework的Java层,对Java层涉及的核心模块和服务进行了深入而细致的分析。通过本书,读者不仅能对Android系统本身有更深入的理解,而且还能掌握分析大型复杂源代码的能力。
《深入理解Android:卷2》一共8章:第1章介绍了阅读本书所需要做的准备工作,包括Android 4.0源码的下载和编译、Eclipse环境的搭建,以及Android系统进程(system_process)的调试等;第2章对Java Binder和MessageQueue的实现进行了深入分析;第3章仔细剖析了SystemServer的工作原理,这些服务包括EntropyService、DropboxManagerService、DiskStatsService、DeviceStorageMonitorService、SamplingProfilerService和ClipboardService;第4章对系统中负责Package信息查询和APK安装、卸载、更新等工作的服务PackageManagerService进行了详细分析;第5章则对Android系统中负责电源管理的核心服务 PowerManagerService的原理进行了一番深入的分析;第6章以ActivityManagerService为分析重点,它的启动、Activity的创建和启动、BroadcastReceiver的工作原理、Android中的进程管理等内容展开了较为深入的研究;第7章对ContentProvider的创建和启动、SQLite、Cursor query和close的实现等进行了深入分析;第8章以ContentService和AccountManagerService为分析对象,介绍了数据更新通知机制的实现,以及账户管理和数据同步等相关知识。
《深入理解Android:Telephony原理剖析与最佳实践》:
是“深入理解Android”系列的第3本,前两本书的内容和质量在Android开发者社群内得到了高度认可,已经树立起该系列图书的品牌。在写作思路和方式上,本书与前两本书一脉相承,对它们的优点进行了继承和发扬;在内容上,本书从从源代码角度深入解析了AndroidTelephony的架构设计与实现原理,深刻揭示了Android系统的通信机制。对于Android应用开发工程师和系统工程师而言,本书都是难得的研究和学习资料。
全书共13章,分为五部分:第一部分(1~3章),首先介绍了智能手机的系统结构、Android系统的架构、Telephony框架的结构,然后详细介绍了Android源代码编译环境和阅读环境的搭建方法,以及阅读本书要做的技术准备;第二部分(4~6章),对Android的通话功能进行了深入的分析,包括对通话流程的分析、对主动拨号和来电流程的分析、对通话应用机制的分析,以及对手机通信功能在框架层和应用层中的实现机制的分析;第三部分(7~9章),对Android的通信功能进行了深入的分析,包括对网络服务状态的运行机制的分析、对Android手机上网的实现机制的分析,以及对短息发送和接收流程的分析;第四部分(10~12章),对AndroidRIL的工作机制进行了深入的分析,包括对框架层中的RILJ运行机制的分析、对RILC系统结构及LibRIL运行机制的分析,以及对Reference-RIL框架的原理的分析;第五部分(13章),分析了Telephony模块所提供的系统服务,包括系统服务的注册入口以及调用系统服务接口的实例。
^ 收 起
比价列表