• 免费电子书下载
  • 为中华之崛起而读书!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏读书小屋吧

深入理解Android:Telephony原理剖析与最佳实践

科技 admin 3年前 (2021-10-18) 56次浏览

:出版社:机械工业出版社副标题:Telephony原理剖析与最佳实践出版年:2013-1页数:352定价:69.00元丛书:移动开发ISBN:9787111406761

内容简介

《深入理解Android:Telephony原理剖析与最佳实践》是“深入理解Android”系列的第3本,前两本书的内容和质量在Android开发者社群内得到了高度认可已经树立起该系列图书的品牌。在写作思路和方式上《深入理解Android:Telephony原理剖析与最佳实践》与前两本书一脉相承,对它们的优点进行了继承和发扬;在内容上《深入理解Android:Telephony原理剖析与最佳实践》从从源代码角度深入解析了Android Telephony的架构设计与实现原理,深刻揭示了Android系统的通信机制。对于Android应用开发工程师和系统工程师而言《深入理解Android:Telephony原理剖析与最佳实践》都是难得的研究和学习资料。

全书共13章分为五部分:第一部分(1~3章)首先介绍了智能手机的系统结构、Android系统的架构、Telephony框架的结构,然后详细介绍了Android源代码编译环境和阅读环境的搭建方法,以及阅读《深入理解Android:Telephony原理剖析与最佳实践》要做的技术准备;第二部分(4~6章),对Android的通话功能进行了深入的分析,包括对通话流程的分析、对主动拨号和来电流程的分析、对通话应用机制的分析,以及对手机通信功能在框架层和应用层中的实现机制的分析;第三部分(7~9章),对Android的通信功能进行了深入的分析,包括对网络服务状态的运行机制的分析、对Android手机上网的实现机制的分析,以及对短息发送和接收流程的分析;第四部分(10~12章),对Android RIL的工作机制进行了深入的分析,包括对框架层中的RILJ运行机制的分析、对RILC系统结构及LibRIL运行机制的分析,以及对Reference-RIL框架的原理的分析;第五部分(13章),分析了Telephony模块所提供的系统服务,包括系统服务的注册入口以及调用系统服务接口的实例。

海报:

目录

推荐序 前言 第一部分 基础篇 第1章 初识Android / 2 1.1 智能手机的系统结构 / 2 1.2 Android系统架构 / 3 1.2.1 应用层 / 3 1.2.2 应用框架层 / 4 1.2.3 系统运行库层 / 5 1.2.4 核心层 / 6 1.3 Android Telephony框架结构 / 6 1.3.1 系统运行库层的HAL层 / 7 1.3.2 简析HAL结构 / 8 1.3.3 Android为什么引入HAL / 9 1.3.4 Android中HAL的运行结构 / 9 1.4 本章小结 / 10 第2章 搭建Android源代码编译环境 / 11 2.1 Ubuntu Linux操作系统及工具安装 / 11 2.1.1 PC配置建议 / 12 2.1.2 Ubuntu安装光盘的制作 / 12 2.1.3 Ubuntu安装过程 / 12 2.1.4 Ubuntu系统工具包更新升级 / 14 2.1.5 Java运行环境JDK安装及配置 / 15 2.1.6 Android SDK的下载和配置 / 16 2.1.7 使用Android SDK启动虚拟设备 / 17 2.2 Android源代码下载及编译过程 / 19 2.2.1 工作目录设置 / 19 2.2.2 源代码下载 / 19 2.2.3 整体编译Android 源代码 / 19 2.2.4 单个模块按需编译 / 20 2.2.5 编译生成本地Android SDK / 21 2.3 Android常用工具使用及相关技巧说明 / 21 2.3.1 使用本地编译成功的镜像文件启动Android模拟器 / 22 2.3.2 Android调试工具adb的使用方法 / 23 2.3.3 进入Android虚拟设备控制台模拟短信、来电等功能 / 23 2.4 Eclipse配置及使用 / 24 2.4.1 Android开发套件ADT下载及配置 / 24 2.4.2 建立Android源代码Java工程 / 25 2.4.3 格式化Android Java源代码 / 26 2.5 使用Source Insight方便阅读C/C++代码 / 26 2.5.1 安装Wine / 26 2.5.2 安装Source Insight / 26 2.5.3 配置Source Insight C/C++工程 / 27 2.6 本章小结 / 27 第3章 主要技术准备 / 29 3.1 何为同步和异步 / 29 3.2 Handler消息处理机制 / 30 3.2.1 Handler概念分析 / 30 3.2.2 Handler特性 / 30 3.2.3 常用Handler消息处理机制讲解 / 31 3.2.4 Handler的作用 / 34 3.3 AIDL跨应用服务 / 35 3.3.1 AIDL概念分析 / 35 3.3.2 AIDL服务提供方 / 36 3.3.3 AIDL服务调用方 / 37 3.4 广播 / 38 3.4.1 Android 系统中的广播 / 38 3.4.2 Broadcast接收 / 38 3.4.3 Broadcast发送 / 39 3.5 本章小结 / 39 第二部分 Telephony通话功能 第4章 深入解析通话流程 / 42 4.1 通话相关主要源代码汇总及简要说明 / 42 4.2 电话主动呼叫流程分析 / 44 4.2.1 运行Android虚拟设备 / 44 4.2.2 拨号界面DialtactsActivity的onCreate方法 / 45 4.2.3 DialpadFragment拨号盘Tab表单 / 45 4.2.4 寻找拨号统一入口OutgoingCallBroadcaster / 47 4.2.5 CallController拨号placeCall方法 / 47 4.2.6 Phone帮助类PhoneUtils静态placeCall方法 / 48 4.2.7 通话大管家CallManager / 50 4.2.8 Phone对象的dial拨号方法 / 50 4.2.9 Call状态跟踪者GsmCallTracker / 51 4.2.10 RIL消息的出入口RIL.java / 52 4.2.11 启动通话主界面InCallScreen / 53 4.2.12 拨号流程总结 / 53 4.3 电话被动接收来电流程分析 / 55 4.3.1 Android虚拟设备模拟接收来电 / 56 4.3.2 RegistrantList消息处理机制 / 57 4.3.3 GsmCallTracker响应RIL的Call状态变化通知 / 60 4.3.4 RIL.java的getCurrentCalls方法 / 60 4.3.5 GsmCallTracker响应消息通知 / 61 4.3.6 handlePollCalls发出来电通知 / 61 4.3.7 GSMPhone的通知方法notifyNewRingingConnection / 62 4.3.8 CallManager响应来电消息通知 / 62 4.3.9 CallNotifier响应来电通知 / 63 4.3.10 InCallScreen展现来电界面 / 64 4.3.11 来电流程总结 / 65 4.4 通话关键流程 / 66 4.4.1 建立Android通话模型 / 67 4.4.2 AT命令发送流程 / 68 4.4.3 通话状态变化流程 / 69 4.4.4 本地主动挂断通话流程 / 70 4.4.5 远端断开通话连接流程 / 72 4.5 本章小结 / 73 第5章 深入解析Telephony通话应用机制 / 74 5.1 Phone应用的关键代码解析 / 74 5.2 认识通话主界面InCallScreen / 75 5.2.1 InCallScreen中的主要方法 / 76 5.2.2 单例模式的Activity通话界面 / 76 5.2.3 Layout布局说明 / 77 5.3 通话主界面InCallScreen / 78 5.3.1 onCreate—运行Activity / 78 5.3.2 onNewIntent—单例InCallScreen加载入口 / 80 5.3.3 internalResolveIntent—进入InCallScreen处理Intent的唯一方法 / 81 5.3.4 onResume—显示InCallScreen通话界面 / 82 5.3.5 handleMessage—Handler消息响应方法 / 84 5.3.6 onSuppServiceFailed—显示通话服务失败提示信息 / 85 5.3.7 updateScreen—更新通话界面 / 86 5.3.8 onDisconnect—断开通话连接 / 88 5.3.9 handleOnscreenButtonClick—响应通话控制按钮点击事件 / 90 5.3.10 InCallScreen通话界面运行机制总结 / 91 5.4 通话信息展示CallCard / 92 5.4.1 两路通话布局View控件 / 92 5.4.2 updateState—更新CallCard / 93 5.4.3 displayMainCallStatus—显示/更新第一路通话信息 / 95 5.4.4 displayOnHoldCallStatus—显示/更新第二路通话信息 / 97 5.4.5 修改通话信息展示的思路及原则 / 98 5.5  通话控制InCallTouchUi / 99 5.5.1 View布局控件 / 99 5.5.2 updateState—更新InCallTouchUi / 101 5.5.3 MultiWaveView—来电控制接听、拒接界面 / 102 5.5.4 HeadSet—响应免提事件 / 103 5.5.5 修改来电界面的思路及原则 / 104 5.6 通话功能中必不可少的DTMF / 105 5.6.1 什么是DTMF / 105 5.6.2 DTMFTwelveKeyDialer的布局 / 105 5.6.3 如何显示DTMF界面 / 106 5.6.4 Tone音发送流程 / 106 5.7 Phone应用的加载入口PhoneApp类 / 108 5.7.1 PhoneApp类属性及方法 / 108 5.7.2 onCreate—PhoneApp应用加载入口 / 109 5.7.3 PowerManager—PhoneApp电源管理 / 110 5.7.4 Sensor—PhoneApp感应器的应用 / 112 5.7.5 MediaButtonBroadcastReceiver—接收耳机HOOK键广播事件 / 115 5.7.6 PhoneAppBroadcastReceiver—接收Phone应用杂项广播事件 / 116 5.8 Handler消息处理的幕后工作者CallNotifier / 118 5.8.1 CallNotifier的本质 / 118 5.8.2 Handler消息注册和响应机制 / 119 5.8.3 onNewRingingConnection—接收到新来电的幕后处理 / 119 5.8.4 onPhoneStateChanged—通话状态变化的幕后处理 / 121 5.8.5 onDisconnect—通话连接断开的幕后处理 / 122 5.9 本章小结 / 124 第6章 手机通话功能框架层实现机制 / 125 6.1 Telephony Frameworks层解析 / 125 6.1.1 通话功能相关代码文件 / 125 6.1.2 通话功能关键类 / 126 6.1.3 Telephony通信能力模型 / 127 6.2 GSMPhone对象详解 / 128 6.2.1 GSMPhone类层次继承关系 / 128 6.2.2 GSMPhone类代码结构解析 / 129 6.2.3 PhoneFactory工厂方法实现类 / 130 6.2.4 PhoneProxy代理模式实现类 / 131 6.2.5 GSMPhone类的组合逻辑关系 / 132 6.2.6 GSMPhone类的Handler消息处理机制 / 133 6.2.7 GSMPhone类通话管理实现机制 / 136 6.3 CallTracker运行机制 / 137 6.3.1 GsmCallTracker类代码结构解析 / 137 6.3.2 GsmCallTracker的Handler消息处理机制 / 139 6.3.3 GsmCallTracker与RIL对象的交互机制 / 142 6.4 以GsmCall为核心的通话管理模型 / 145 6.4.1 GsmCall类代码结构解析 / 146 6.4.2 GsmConnection类代码结构解析 / 147 6.4.3 DriverCall与GsmCall、GsmConnection的关系 / 149 6.5 GsmCallTracker类的 handlePollCalls方法处理逻辑 / 153 6.5.1 初始化操作 / 153 6.5.2 更新通话相关信息 / 154 6.5.3 根据最新的通话状态发出通知 / 158 6.5.4 更新手机状态 / 158 6.6 GsmCallTracker通话连接断开的处理机制 / 160 6.6.1 本地主动挂断通话的处理机制 / 160 6.6.2 远端断开通话连接的处理机制 / 162 6.7 Android虚拟设备上验证GSM制式手机的通话模型 / 164 6.7.1 增加日志输出 / 164 6.7.2 运行Android虚拟设备并分析日志 / 166 6.8 通话大管家CallManager / 168 6.8.1 CallManager的本质 / 168 6.8.2 Handler消息注册及运行机制 / 169 6.8.3 如何获取通话基本信息 / 170 6.9 通话计时实例分析 / 171 6.9.1 记录通话的开始时间 / 171 6.9.2 记录通话的结束时间 / 171 6.9.3 Phone应用计算通话时长 / 171 6.10  Handler消息处理机制 / 173 6.10.1 Handler消息的注册过程 / 173 6.10.2 Handler消息的接收和响应过程 / 174 6.11 实战—来电防火墙 / 175 6.11.1 应用原理分析 / 175 6.11.2 在onNewRingingConnection方法加入拦截请求 / 176 6.12 本章小结 / 176 第三部分 Telephony通信功能 第7章 网络服务状态运行机制 / 180 7.1 什么是ServiceState / 180 7.2 初识ServiceState实体类 / 180 7.2.1 ServiceState类的实质 / 181 7.2.2 ServiceState类关键常量及属性 / 181 7.2.3 ServiceState类关键方法 / 182 7.3 ServiceStateTracker运行机制详解 / 183 7.3.1 ServiceStateTracker抽象类为核心的类图 / 184 7.3.2 ServiceStateTracker代码结构 / 184 7.3.3 ServiceStateTracker的Handler消息处理机制 / 186 7.3.4 ServiceStateTracker与RIL对象的交互机制 / 189 7.4 handlePollStateResult方法处理逻辑 / 192 7.4.1 RIL返回查询结果的异常判断和处理 / 192 7.4.2 处理4个不同网络服务查询返回的结果 / 192 7.4.3 用pollStateDone方法完成收尾工作 / 195 7.5 ServiceState最佳实践 / 197 7.5.1 获取运营商信息 / 197 7.5.2 通知栏手机信号实时变化 / 198 7.6 实战—飞行模式的实现 / 200 7.6.1 飞行模式的设置入口 / 200 7.6.2 Radio无线通信模块的开启或关闭 / 202 7.7 本章小结 / 203 第8章 Android手机上网实现机制 / 204 8.1 Android网络整体结构 / 204 8.2 什么是DataConnection / 205 8.2.1 DataConnection类定义及子类 / 205 8.2.2 DataConnection类关键属性 / 206 8.2.3 DataConnection类的方法 / 207 8.2.4 5个数据连接对象的状态转换 / 207 8.3 StateMachine状态机 / 208 8.3.1 State设计模式 / 209 8.3.2 StateMachine核心类 / 209 8.3.3 StateMachine运行机制 / 210 8.3.4 DataConnection使用State模式的运行机制 / 211 8.4 什么是APN / 212 8.4.1 APN配置关键字段 / 212 8.4.2 Android支持的APN类型 / 213 8.4.3 如何在Android中新增APN配置 / 213 8.5 开机自动建立default默认数据连接 / 215 8.5.1 如何查看手机上网的基本参数配置 / 215 8.5.2 初始化ApnContext / 216 8.5.3 创建DataConnection数据连接 / 219 8.5.4 激活DataConnection数据连接 / 222 8.6 DataConnectionTracker运行机制 / 226 8.6.1 初始化ApnContext操作 / 227 8.6.2 开机建立default默认的数据连接 / 228 8.6.3 关闭数据连接 / 229 8.6.4 循环更新网络连接状态信息 / 230 8.6.5 APN数据库配置信息变化的观察者 / 231 8.7 获取Android手机上网数据包 / 232 8.7.1 使用tcpdump工具抓取TCP/IP数据包 / 232 8.7.2 使用Wireshark软件分析TCP/IP数据包 / 232 8.8 MMS彩信数据连接的实现 / 233 8.8.1 建立和关闭彩信数据连接 / 233 8.8.2 如何支持多种类型网络连接 / 234 8.9 实战—手机上网数据总开关的实现 / 235 8.10 本章小结 / 235 第9章 深入解析短信发送和接收流程 / 237 9.1 MMS应用主要源代码汇总及简要说明 / 237 9.2 主动发送短信流程分析 / 238 9.2.1 进入短信会话列表界面 / 238 9.2.2 短信编辑界面 / 239 9.2.3 SmsMessageSender短信发送处理逻辑 / 241 9.2.4 Telephony Frameworks层中的SmsManager类 / 243 9.2.5 IccSmsInterfaceManager服务发送短信 / 244 9.2.6 SMSDispatcher短信分发器 / 245 9.2.7 主动发送短信流程总结 / 246 9.3 短信发送状态相关处理机制 / 248 9.3.1 如何判断短信是否成功发送到短信中心 / 248 9.3.2 如何判断短信接收方已经成功收取短信 / 250 9.4 短信接收流程分析 / 252 9.4.1 短信接收的开始 / 252 9.4.2 进入短信分发器SMSDispatcher / 253 9.4.3 接收并处理新短信Broadcast广播 / 254 9.4.4 短信接收流程总结 / 254 9.5 彩信发送和接收关键流程 / 255 9.5.1 彩信传输过程中的关键类 / 255 9.5.2 TransactionService为核心的彩信传输机制 / 257 9.5.3 Transaction对象执行彩信传输 / 259 9.5.4 基于WAP PUSH的彩信接收与下载 / 260 9.6 本章小结 / 261 第四部分 深入解析Android RIL 第10章 Android RIL框架结构及RILJ运行机制 / 264 10.1 Android RIL关键处理流程 / 264 10.1.1 Android RIL框架结构 / 264 10.1.2 Android RIL的数据交互 / 265 10.2 认识RILJ / 265 10.2.1 RILJ核心类图 / 265 10.2.2 RILJ关键属性 / 266 10.2.3 RILJ关键方法 / 267 10.2.4 RILJ运行机制 / 268 10.3 认识RILRequest类 / 269 10.3.1 RILRequest类的关键属性 / 269 10.3.2 RILRequest类的方法 / 269 10.4 解析RILJ发出RIL请求流程 / 271 10.4.1 send方法发送Handler消息 / 271 10.4.2 RILSender接收和处理Handler消息 / 272 10.5 解析RILJ接收Response消息处理流程 / 273 10.5.1 RILReceiver内部类运行机制 / 273 10.5.2 Solicited Response消息处理方法processSolicited / 276 10.5.3 UnSolicited Response消息处理方法processUnsolicited / 279 10.6 本章小结 / 280 第11章 RILC系统结构及LibRIL运行机制 / 281 11.1 RILC主要代码目录结构 / 281 11.2 解析RILC运行机制 / 282 11.2.1 RILC启动过程 / 283 11.2.2 RILC运行过程 / 285 11.3 初识RILC中的运行环境LibRIL / 285 11.3.1 LibRIL主要文件及作用 / 285 11.3.2 重点结构体说明 / 286 11.4 LibRIL运行环境加载过程 / 288 11.4.1 开启ril_event事件监听入口RIL_startEventLoop / 288 11.4.2 RIL_register函数引入三方RIL_RadioFunctions / 290 11.5 运行状态中ril_event事件处理机制 / 291 11.5.1 认识ril_event结构体 / 291 11.5.2 RIL事件生命周期控制的处理函数 / 292 11.5.3 ril_event_loop处理机制 / 294 11.6 详解LibRIL运行机制 / 296 11.6.1 RILJ与LibRIL建立Socket连接过程 / 296 11.6.2 Solicited消息的交互流程和处理机制 / 297 11.7 本章小结 / 302 第12章 Reference-RIL运行框架 / 303 12.1 Reference-RIL运行机制 / 303 12.1.1 RIL_Init函数初始化Reference-RIL / 303 12.1.2 onRequest接收LibRIL的请求调用 / 304 12.1.3 UnSolicited消息处理逻辑 / 306 12.2 AT命令 / 310 12.2.1 如何新增AT命令 / 310 12.2.2 Android Telephony常用AT命令 / 310 12.3 Android RIL层运行框架和机制总结 / 311 12.3.1 总结Solicited消息处理流程 / 312 12.3.2 总结UnSolicited消息处理流程 / 313 12.4 本章小结 / 314 第五部分 系统服务 第13章 Telephony提供的系统服务 / 316 13.1 System Service系统服务类图 / 316 13.2 详解PhoneInterfaceManager实现机制 / 317 13.2.1 ITelephony.aidl接口定义 / 318 13.2.2 PhoneInterfaceManager服务创建过程 / 318 13.2.3 PhoneInterfaceManager服务使用实例分析 / 318 13.3 详解TelephonyRegistry实现机制 / 319 13.3.1 系统服务的创建入口 / 320 13.3.2 TelephonyRegistry关键方法 / 320 13.3.3 listen方法处理逻辑 / 320 13.3.4 notifyCallState方法发出通话状态变化通知 / 321 13.3.5 触发TelephonyRegistry发出通知机制 / 322 13.3.6 TelephonyRegistry系统服务使用实例分析 / 323 13.4 简述TelephonyManager实现机制 / 324 13.5 本章小结 / 326 · · · · · · (收起)

下载地址

佳声晓闻此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“佳声晓闻”或者“gh_760eead8a831”或者微信扫描右侧二维码都可以关注本站微信公众号。


本站所有压缩文件密码均为dushuxiaowu.com,本站所有资源收集于网络,只做学习和交流使用,版权归原作者所有,若为付费内容,请在下载后24小时之内自觉删除,若作商业用途请购买正版,由于未及时购买和付费发生的侵权行为,与本站无关,本站发布的内容若侵犯到您的权益,请联系邮箱 dushurener#gmail.com 删除,我们将及时处理!
喜欢 (0)