欢迎访问学兔兔,学习、交流 分享 !

返回首页 |

Android Telephony原理解析与开发指南

收藏
  • 大小:12.59 MB
  • 语言:中文版
  • 格式: PDF文档
  • 阅读软件: Adobe Reader
资源简介
Android Telephony原理解析与开发指南
作 者: 杨青平
出版时间: 2018

内容简介
  随着Android系统平台的应用越来越广泛,更多人加入到Android平台的定制研发中来。Android的基本通信功能是Android系统定制的核心模块,本书主要围绕Android Telephony和融合通信两个核心部分展开。Android Telephony部分从接打电话、网络服务、数据上网三个功能解析Telephony。全书共10章,主要内容包括初识Android、搭建Android源代码编译调试环境、深入解析通话流程、详解Telecom、详解TeleService、Voice Call语音通话模型、ServiceState网络服务、Data Call移动数据业务、SMS & MMS业务、Radio Interface Layer)。本书适合计算机科学技术、信息技术、通信工程、软件工程等专业的研究生、本科、高职高专学生使用。

图书目录
第 1章 初识Android 1

1.1 智能手机的系统结构 1

1.2 Android系统架构 2

1.2.1 应用层 3

1.2.2 应用框架层 3

1.2.3 系统运行库层 3

1.2.4 核心层 4

1.3 Android Telephony框架结构 5

1.3.1 系统运行库层的HAL 6

1.3.2 简析HAL结构 6

1.3.3 Android为什么引入HAL 7

1.3.4 Android中HAL的运行结构 7

本章小结 8

第 2章 搭建Android源代码编译调试环境 9

2.1 Ubuntu Linux操作系统及工具安装 10

2.1.1 PC配置建议 10

2.1.2 Ubuntu安装光盘制作 10

2.1.3 Ubuntu安装过程 10

2.1.4 安装OpenJDK 12

2.1.5 Ubuntu系统工具包更新升级 13

2.2 Android源代码下载及编译过程 13

2.2.1 工作目录设置 13

2.2.2 源代码下载 13

2.2.3 开始编译Android源代码 14

2.2.4 编译单个模块 16

2.3 Android Studio及SDK 17

2.3.1 下载和配置Android Studio 17

2.3.2 Android SDK下载及配置和使用 17

2.3.3 使用Android SDK启动Android虚拟设备 19

2.3.4 Android调试工具adb的使用方法 20

2.3.5 相关技巧汇总 20

2.4 在Google手机上调试Android源码 21

2.4.1 Google手机对应编译选项 21

2.4.2 Google手机刷入工厂镜像 21

2.4.3 编译本地镜像并刷入Google手机 22

2.4.4 Google手机上调试Android源码 25

2.4.5 关键问题总结 26

本章小结 27

第3章 深入解析通话流程 29

3.1 拨号流程分析 29

3.1.1 打开Nexus 6P手机的拨号盘 30

3.1.2 进入拨号界面DialtactsActivity 30

3.1.3 DialpadFragment拨号盘 32

3.1.4 ITelecomService接收拨号请求服务 33

3.1.5 CallsManager拨号流程处理 35

3.1.6 IInCallService服务的响应过程 40

3.1.7 继续分析CallsManager.placeOutgoingCall 46

3.1.8 Telecom应用拨号流程回顾与总结 50

3.1.9 IConnectionService服务的响应过程 51

3.1.10 TelecomAdapter接收消息回调 55

3.1.11 拨号流程总结 56

3.2 来电流程分析 57

3.2.1 分析radio来电日志 58

3.2.2 UNSOL_RESPONSE_CALL_STATE_CHANGED消息处理 58

3.2.3 扩展RegistrantList消息处理机制 59

3.2.4 GsmCdmaCallTracker消息处理 61

3.2.5 ITelecomService处理来电消息 63

3.2.6 来电流程总结 66

3.3 通话总结 66

3.3.1 通话关键代码汇总 66

3.3.2 通话状态更新消息上报流程 68

3.3.3 控制通话消息下发流程 69

3.4 建立Android通话模型 70

本章小结 71

第4章 详解Telecom 73

4.1 Telecom应用加载入口 73

4.1.1 TelecomManager类核心逻辑分析 74

4.1.2 Telecom应用代码汇总 76

4.1.3 ITelecomService的onBind过程 77

4.1.4 第 二个拨号入口 79

4.2 Telecom交互模型 79

4.2.1 汇总frameworks/base/telecomm代码 80

4.2.2 绑定IInCallService机制 81

4.2.3 绑定IConnectionService机制 82

4.2.4 演进Telecom交互模型 85

4.3 核心Listener回调消息处理 86

4.3.1 CallsManagerListener 86

4.3.2 Call.Listener 88

4.3.3 CreateConnectionResponse 90

4.3.4 总结Listener消息 90

4.4 扩展CallsManager 92

4.4.1 记录通话日志 92

4.4.2 耳机Hook事件 93

4.4.3 通知栏信息同步 93

本章小结 94

第5章 详解TeleService 95

5.1 加载过程分析 95

5.1.1 应用基本信息 96

5.1.2 PhoneGlobals.onCreate 97

5.1.3 TelephonyGlobals.onCreate 98

5.2 Telephony Phone 98

5.2.1 GsmCdmaPhone 99

5.2.2 Composition(组合)关系 101

5.2.3 Facade Pattern 102

5.2.4 Handler消息处理机制 103

5.3 扩展PhoneAccount 105

5.3.1 PhoneAccount初始化过程 105

5.3.2 PhoneAccount注册响应 108

5.3.3 PhoneAccount在拨号流程中的作用分析 109

5.3.4 小结 112

5.4 TeleService服务 113

5.4.1 phone系统服务 113

5.4.2 isub系统服务 115

5.4.3 IConnectionService应用服务 118

本章小结 123

第6章 Voice Call语音通话模型 125

6.1 详解GsmCdmaCallTracker 125

6.1.1 代码结构解析 126

6.1.2 Handler消息处理方式 127

6.1.3 与RILJ对象的交互机制 130

6.2 handlePollCalls方法 134

6.2.1 准备阶段 134

6.2.2 更新通话相关信息 135

6.2.3 发出通知 140

6.2.4 更新mState 141

6.3 通话管理模型分析 142

6.3.1 GsmCdmaCall 143

6.3.2 GsmCdmaConnection 143

6.3.3 DriverCall、Call、Connection 146

6.4 补充通话连接断开处理机制 149

6.4.1 本地主动挂断通话 149

6.4.2 远端断开通话连接 152

6.5 区分Connection 154

6.6 扩展InCallUi 155

6.6.1 初始化过程 155

6.6.2 addCall 158

6.6.3 InCallUi通话界面 160

6.6.4 updateCall 165

6.7 验证Call运行模型 166

6.7.1 Telephony Voice Call 167

6.7.2 Telecom Call 170

6.7.3 InCallUi Call 171

本章小结 173

第7章 ServiceState网络服务 175

7.1 ServiceState 176

7.1.1 ServiceState类的本质 176

7.1.2 关键常量信息 177

7.1.3 关键属性 177

7.1.4 关键方法 178

7.2 ServiceStateTracker运行机制详解 179

7.2.1 核心类图 179

7.2.2 代码结构 180

7.2.3 Handler消息处理机制 181

7.2.4 与RILJ对象的交互机制 184

7.3 handlePollStateResult方法 186

7.3.1 异常处理 186

7.3.2 handlePollStateResultMessage 187

7.3.3 继续更新mNewSS 190

7.3.4 完成收尾工作 191

7.4 *#*#4636#*#*测试工具 193

7.4.1 网络服务信息 194

7.4.2 扩展ITelephonyRegistry 196

7.4.3 展示小区信息 197

7.4.4 小区信息更新源头 198

7.4.5 信号强度实时变化 199

7.5 飞行模式 201

7.5.1 飞行模式开启关闭入口逻辑 201

7.5.2 Radio模块开启关闭 202

7.5.3 WiFi模块开启关闭 202

7.5.4 蓝牙模块开启关闭 202

7.6 扩展SIM卡业务 203

7.6.1 SIM卡业务分析 203

7.6.2 驻网过程分析 204

7.6.3 SoftSim业务实现分析 205

本章小结 206

第8章 Data Call移动数据业务 207

8.1 DcTracker初始化过程 207

8.1.1 Handler消息注册 208

8.1.2 初始化ApnContext 208

8.1.3 认识APN 210

8.1.4 创建DcController 212

8.1.5 注册Observer 213

8.1.6 广播接收器 213

8.1.7 加载ApnSetting 213

8.2 解析StateMachine 215

8.2.1 State设计模式 215

8.2.2 StateMachine核心类 215

8.2.3 初始化流程 216

8.2.4 运行流程 217

8.2.5 小结 218

8.3 DataConnection 219

8.3.1 关键属性 220

8.3.2 关键方法 220

8.3.3 StateMachine初始化流程 221

8.4 开启移动数据业务 222

8.4.1 流程分析 222

8.4.2 前置条件分析 227

8.4.3 DcActiveState收尾工作 231

8.4.4 Suspend挂起状态 232

8.4.5 查看手机上网基本信息 232

8.5 关闭移动数据业务 233

8.6 DataConnection状态转换 233

8.7 获取Android手机上网数据包 234

8.7.1 使用tcpdump工具抓取TCP/IP数据包 234

8.7.2 使用Wireshark软件分析TCP/IP数据包 235

本章小结 235

第9章 SMS&MMS业务 236

9.1 短信发送流程 236

9.1.1 进入短信应用 236

9.1.2 短信编辑界面 237

9.1.3 Action处理机制 239

9.1.4 继续跟进短信发送流程 241

9.1.5 phone进程中的短信发送流程 243

9.2 扩展短信发送业务 245

9.2.1 确认短信发送结果 245

9.2.2 重发机制 246

9.2.3 状态报告 247

9.3 短信接收流程 247

9.3.1 RIL接收短信消息 247

9.3.2 GsmInboundSmsHandler 248

9.3.3 Messaging应用接收新短信 250

9.3.4 PDU 251

9.3.5 短信业务小结 252

9.4 彩信关键业务逻辑 253

9.4.1 彩信发送入口 253

9.4.2 imms系统服务 254

9.4.3 彩信发送流程 255

9.4.4 Data Call 256

9.4.5 doHttp 259

9.4.6 接收彩信 259

9.4.7 MmsService小结 260

本章小结 261

第 10章 Radio Interface Layer 262

10.1 解析RILJ 263

10.1.1 认识RIL类 263

10.1.2 RILRequest 265

10.1.3 IRadio关联的服务 266

10.1.4 RIL消息分类 270

10.1.5 Solicited Request 270

10.1.6 Solicited Response 271

10.1.7 UnSolicited 274

10.2 详解rild 274

10.2.1 RIL_startEventLoop 275

10.2.2 获取RIL_RadioFunctions 275

10.2.3 注册RIL_RadioFunctions 277

10.3 libril初始化流程 278

10.3.1 RIL_startEventLoop 278

10.3.2 RIL_register 280

10.4 扩展hal接口 281

10.4.1 增加接口定义 282

10.4.2 验证生成的代码 282

10.4.3 实现新增接口 285

10.4.4 运行结果验证 286

10.5 RILC运行机制 287

10.5.1 Solicited消息 287

10.5.2 UnSolicited消息 291

本章小结 293
下载地址