深入理解Android
2013-1
杨青平 机械工业出版社 (2013-01出版)
杨青平
352
无
前言随着ICT技术的推广和发展,在三网融合、智慧的地球(物联网)等概念风行的形势下,手机终端技术的发展和进步可谓日新月异;Android经受住了市场的考验,并占据了较大的市场份额,从手机芯片厂家、手机生产厂家到各种应用开发公司、互联网公司等,逐步形成了以Android系统平台为核心的上下游产业链。正是由于Android源代码的开源,各大手机厂商才能通过深度定制Android系统平台,在降低研发成本的同时,快速推出具有自身特色的Android智能手机产品。因此,各大手机厂家在推出新版本Android系统平台手机上投入了较多的研发成本,其中不乏SamSung、Motorola等国际知名公司;国内如小米手机、联发科、展讯等也都有自己的Android研发团队。目前国内市场上针对Android的书籍很多,但这些书籍中,绝大多数是基于Android SDK在应用层的开发进行讲解的。针对Android系统级的源代码分析的书籍,主要是邓凡平著的《深入理解Android:卷Ⅰ》和《深入理解Android:卷Ⅱ》,但深入理解Android Telephony的书籍国内目前还是空白。而Telephony基本通信功能是手机中的核心,在定制Android手机的过程中也不例外,手机离开了基本通信能力,如通话、短彩信、手机上网等功能,也就失去了它本身的意义。在Android手机定制化的过程中,Telephony涉及的范围和内容也非常多,从应用层到框架层,再到RIL与Modem无线通信模块的交互,所有部分均有不同程度的定制和优化,因此,在Android手机平台定制化研发的过程中,需要对Android Telephony有全面而深入的理解。本书以Android 4.0.3源代码为基础,全面、深入地解析了Android Telephony涉及的主要内容,其中包括Call通话、ServiceState接入网络服务状态、DataConnection手机上网数据连接以及SMS&MMS短信和彩信的应用等,并且详细解析了Android RIL的运行机制。读者对象本书主要适合于以下读者。(1)Android应用的普通开发者对于Android应用开发工程师来说,本书中关于发起通话呼叫、接收到新的来电、发送短信、接收新短信、手机上网等Telephony涉及的通信能力的介绍,能帮助他们在编写Android应用程序时,选择最优方式完成多种场景的应用。比如如何发起通话呼叫、如何发送短信、如何监听或接收新来电或新短信的通知等,都是Android应用程序需要处理的消息和事件。(2)Android 系统平台的定制开发者Android Telephony涉及的通信能力,常常是Android系统平台定制化过程中的重点和难点,它的可用性和稳定性决定了手机产品是否能成功量产。本书全面、深入地讲解了Android Telephony涉及的通信能力的实现流程和机制。(3)对Android源代码有浓厚兴趣的读者Android源代码中汇集了很多国外专家和优秀工程师的设计思想和理念,本书对Android Telephony源代码中的关键设计模式、设计思路做了详细分析,读者可拓展思考和训练,以提升自己的设计水平和编码能力。(4)开设相关课程的大专院校的师生从搭建Android的编译环境到分析源代码的过程,本书由浅入深地进行了讲解,阅读本书可帮助读者提升Linux操作系统的动手能力、Java语言的编码能力、UML的阅读能力和理解常见的设计模式,了解Android系统平台定制的主要工作内容。如何阅读本书全书分为5个部分,共13章:第一部分(第1~3章)首先介绍Android和智能手机的框架结构,帮助读者了解一些手机的发展历程;然后讲解Android源代码的编译环境搭建过程,并普及Android中的一些技术基础。第二部分(第4~6章)详解Android Telephony通话功能。首先整体认识通话功能在整个Android系统平台所处的位置,及每层的主要作用;然后分析通话的关键流程,主要体现在主动拨号流程和来电流程的过程分析;最后解析通话功能在应用层和框架层中的实现机制和逻辑。第三部分(第7~9章)详解ServiceState(网络服务状态)、DataConnection(手机上网数据连接)、SMS和MMS的业务实现流程,以及在应用层和框架层中的关键处理逻辑和实现机制。第四部分(第10~12章)首先讲解Android RIL框架结构和关键业务流程,然后详细解析RILJ、RILC和Reference-RIL的运行机制。第五部分(第13章)讲解Telephony模块所提供的系统服务,包括系统服务的注册入口以及调用系统服务接口的实例。如果你是一名Android经验丰富的资深用户,能够快速搭建Android源代码编译环境以及掌握了Android开发的基础知识和技巧,那么可以跳过第一部分,直接阅读后面四部分;但是如果你是一名Android初学者,请一定从第1章的基础理论知识开始学习。勘误和支持由于笔者的水平有限,加之编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,笔者特意创建一个在线支持博客http://blog.163.com/yqp_mail/。您可以将书中的错误或是遇到的任何问题留言给我,我将尽量在线上为读者提供最满意的解答。如果您有更多的宝贵意见,也欢迎发送邮件至邮箱yqp_mail@163.com。期待能够得到大家的真挚反馈。致谢感谢Android技术专家邓凡平,在你的引荐下才促成了这本书的合作与出版。感谢机械工业出版社华章公司的编辑杨福川和白宇,在这半年里是你们始终支持着我的写作,因为有了你们的鼓励和帮助我才能顺利完成全部书稿。感谢ThunderSoft中科创达公司,这是一家创业型、学习型和成长型的软件公司。在这里工作,有机会与Android亲密接触,能够在Android涉及的各个方面不断学习、总结和分享;感谢ThunderSoft成都分公司领导常衡生先生和曾俊汉先生的鼓励和支持,因为有了你们的帮助,我才能有更多的时间和精力去完成全部书稿的写作;感谢ThunderSoft公司的同事刘斌、任洪亮等人在本书的写作过程中给予的大力支持。感谢我的妻子,在本书的写作过程中,我几乎放弃了所有晚上和周末的休息时间,妻子给了我极大的关心和体贴,让我无后顾之忧,专注写作。最后感谢我的爸爸、妈妈,你们将我培养成人,从小学、初中、高中到大学,乃至到我工作后,你们都时时刻刻关心和帮助着我,在本书的写作过程中你们同样给了我极大的关心和帮助。谨以此书献给我最亲爱的家人,以及众多热爱Android的朋友们!杨青平于成都
《深入理解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系统工程师和软件开发工程师,热衷于Android用源代码和系统原理的研究,对Android的系统架构、设计原理以及Telephony和Framework等核心功能模块的工作机制有非常深入的研究。目前就职于国内领先的Android OS提供商ThunderSoft(中科创达),担任系统架构师。他对J2EE、UML、设计模式等相关技术,以及电信增值业务、电子商务、物联网等重要软件行业的运行模式、业务发展规划也有较深入的了解。此外,他还是一位经验丰富的讲师,有多年的人才培训经验,善于总结和分享。
推荐序前言第一部分 基础篇第1章 初识Android 21.1 智能手机的系统结构 21.2 Android系统架构 31.2.1 应用层 31.2.2 应用框架层 41.2.3 系统运行库层 51.2.4 核心层 61.3 Android Telephony框架结构 61.3.1 系统运行库层的HAL层 71.3.2 简析HAL结构 81.3.3 Android为什么引入HAL 91.3.4 Android中HAL的运行结构 91.4 本章小结 10第2章 搭建Android源代码编译环境 112.1 Ubuntu Linux操作系统及工具安装 112.1.1 PC配置建议 122.1.2 Ubuntu安装光盘的制作 122.1.3 Ubuntu安装过程 122.1.4 Ubuntu系统工具包更新升级 142.1.5 Java运行环境JDK安装及配置 152.1.6 Android SDK的下载和配置 162.1.7 使用Android SDK启动虚拟设备 172.2 Android源代码下载及编译过程 192.2.1 工作目录设置 192.2.2 源代码下载 192.2.3 整体编译Android 源代码 192.2.4 单个模块按需编译 202.2.5 编译生成本地Android SDK 212.3 Android常用工具使用及相关技巧说明 212.3.1 使用本地编译成功的镜像文件启动Android模拟器 222.3.2 Android调试工具adb的使用方法 232.3.3 进入Android虚拟设备控制台模拟短信、来电等功能 232.4 Eclipse配置及使用 242.4.1 Android开发套件ADT下载及配置 242.4.2 建立Android源代码Java工程 252.4.3 格式化Android Java源代码 262.5 使用Source Insight方便阅读C/C++代码 262.5.1 安装Wine 262.5.2 安装Source Insight 262.5.3 配置Source Insight C/C++工程 272.6 本章小结 27第3章 主要技术准备 293.1 何为同步和异步 293.2 Handler消息处理机制 303.2.1 Handler概念分析 303.2.2 Handler特性 303.2.3 常用Handler消息处理机制讲解 313.2.4 Handler的作用 343.3 AIDL跨应用服务 353.3.1 AIDL概念分析 353.3.2 AIDL服务提供方 363.3.3 AIDL服务调用方 373.4 广播 383.4.1 Android 系统中的广播 383.4.2 Broadcast接收 383.4.3 Broadcast发送 393.5 本章小结 39第二部分 Telephony通话功能第4章 深入解析通话流程 424.1 通话相关主要源代码汇总及简要说明 424.2 电话主动呼叫流程分析 444.2.1 运行Android虚拟设备 444.2.2 拨号界面DialtactsActivity的onCreate方法 454.2.3 DialpadFragment拨号盘Tab表单 454.2.4 寻找拨号统一入口OutgoingCallBroadcaster 474.2.5 CallController拨号placeCall方法 474.2.6 Phone帮助类PhoneUtils静态placeCall方法 484.2.7 通话大管家CallManager 504.2.8 Phone对象的dial拨号方法 504.2.9 Call状态跟踪者GsmCallTracker 514.2.10 RIL消息的出入口RIL.java 524.2.11 启动通话主界面InCallScreen 534.2.12 拨号流程总结 534.3 电话被动接收来电流程分析 554.3.1 Android虚拟设备模拟接收来电 564.3.2 RegistrantList消息处理机制 574.3.3 GsmCallTracker响应RIL的Call状态变化通知 604.3.4 RIL.java的getCurrentCalls方法 604.3.5 GsmCallTracker响应消息通知 614.3.6 handlePollCalls发出来电通知 614.3.7 GSMPhone的通知方法notifyNewRingingConnection 624.3.8 CallManager响应来电消息通知 624.3.9 CallNotifier响应来电通知 634.3.10 InCallScreen展现来电界面 644.3.11 来电流程总结 654.4 通话关键流程 664.4.1 建立Android通话模型 674.4.2 AT命令发送流程 684.4.3 通话状态变化流程 694.4.4 本地主动挂断通话流程 704.4.5 远端断开通话连接流程 724.5 本章小结 73第5章 深入解析Telephony通话应用机制 745.1 Phone应用的关键代码解析 745.2 认识通话主界面InCallScreen 755.2.1 InCallScreen中的主要方法 765.2.2 单例模式的Activity通话界面 765.2.3 Layout布局说明 775.3 通话主界面InCallScreen 785.3.1 onCreate—运行Activity 785.3.2 onNewIntent—单例InCallScreen加载入口 805.3.3 internalResolveIntent—进入InCallScreen处理Intent的唯一方法 815.3.4 onResume—显示InCallScreen通话界面 825.3.5 handleMessage—Handler消息响应方法 845.3.6 onSuppServiceFailed—显示通话服务失败提示信息 855.3.7 updateScreen—更新通话界面 865.3.8 onDisconnect—断开通话连接 885.3.9 handleOnscreenButtonClick—响应通话控制按钮点击事件 905.3.10 InCallScreen通话界面运行机制总结 915.4 通话信息展示CallCard 925.4.1 两路通话布局View控件 925.4.2 updateState—更新CallCard 935.4.3 displayMainCallStatus—显示/更新第一路通话信息 955.4.4 displayOnHoldCallStatus—显示/更新第二路通话信息 975.4.5 修改通话信息展示的思路及原则 985.5 通话控制InCallTouchUi 995.5.1 View布局控件 995.5.2 updateState—更新InCallTouchUi 1015.5.3 MultiWaveView—来电控制接听、拒接界面 1025.5.4 HeadSet—响应免提事件 1035.5.5 修改来电界面的思路及原则 1045.6 通话功能中必不可少的DTMF 1055.6.1 什么是DTMF 1055.6.2 DTMFTwelveKeyDialer的布局 1055.6.3 如何显示DTMF界面 1065.6.4 Tone音发送流程 1065.7 Phone应用的加载入口PhoneApp类 1085.7.1 PhoneApp类属性及方法 1085.7.2 onCreate—PhoneApp应用加载入口 1095.7.3 PowerManager—PhoneApp电源管理 1105.7.4 Sensor—PhoneApp感应器的应用 1125.7.5 MediaButtonBroadcastReceiver—接收耳机HOOK键广播事件 1155.7.6 PhoneAppBroadcastReceiver—接收Phone应用杂项广播事件 1165.8 Handler消息处理的幕后工作者CallNotifier 1185.8.1 CallNotifier的本质 1185.8.2 Handler消息注册和响应机制 1195.8.3 onNewRingingConnection—接收到新来电的幕后处理 1195.8.4 onPhoneStateChanged—通话状态变化的幕后处理 1215.8.5 onDisconnect—通话连接断开的幕后处理 1225.9 本章小结 124第6章 手机通话功能框架层实现机制 1256.1 Telephony Frameworks层解析 1256.1.1 通话功能相关代码文件 1256.1.2 通话功能关键类 1266.1.3 Telephony通信能力模型 1276.2 GSMPhone对象详解 1286.2.1 GSMPhone类层次继承关系 1286.2.2 GSMPhone类代码结构解析 1296.2.3 PhoneFactory工厂方法实现类 1306.2.4 PhoneProxy代理模式实现类 1316.2.5 GSMPhone类的组合逻辑关系 1326.2.6 GSMPhone类的Handler消息处理机制 1336.2.7 GSMPhone类通话管理实现机制 1366.3 CallTracker运行机制 1376.3.1 GsmCallTracker类代码结构解析 1376.3.2 GsmCallTracker的Handler消息处理机制 1396.3.3 GsmCallTracker与RIL对象的交互机制 1426.4 以GsmCall为核心的通话管理模型 1456.4.1 GsmCall类代码结构解析 1466.4.2 GsmConnection类代码结构解析 1476.4.3 DriverCall与GsmCall、GsmConnection的关系 1496.5 GsmCallTracker类的 handlePollCalls方法处理逻辑 1536.5.1 初始化操作 1536.5.2 更新通话相关信息 1546.5.3 根据最新的通话状态发出通知 1586.5.4 更新手机状态 1586.6 GsmCallTracker通话连接断开的处理机制 1606.6.1 本地主动挂断通话的处理机制 1606.6.2 远端断开通话连接的处理机制 1626.7 Android虚拟设备上验证GSM制式手机的通话模型 1646.7.1 增加日志输出 1646.7.2 运行Android虚拟设备并分析日志 1666.8 通话大管家CallManager 1686.8.1 CallManager的本质 1686.8.2 Handler消息注册及运行机制 1696.8.3 如何获取通话基本信息 1706.9 通话计时实例分析 1716.9.1 记录通话的开始时间 1716.9.2 记录通话的结束时间 1716.9.3 Phone应用计算通话时长 1716.10 Handler消息处理机制 1736.10.1 Handler消息的注册过程 1736.10.2 Handler消息的接收和响应过程 1746.11 实战—来电防火墙 1756.11.1 应用原理分析 1756.11.2 在onNewRingingConnection方法加入拦截请求 1766.12 本章小结 176第三部分 Telephony通信功能第7章 网络服务状态运行机制 1807.1 什么是ServiceState 1807.2 初识ServiceState实体类 1807.2.1 ServiceState类的实质 1817.2.2 ServiceState类关键常量及属性 1817.2.3 ServiceState类关键方法 1827.3 ServiceStateTracker运行机制详解 1837.3.1 ServiceStateTracker抽象类为核心的类图 1847.3.2 ServiceStateTracker代码结构 1847.3.3 ServiceStateTracker的Handler消息处理机制 1867.3.4 ServiceStateTracker与RIL对象的交互机制 1897.4 handlePollStateResult方法处理逻辑 1927.4.1 RIL返回查询结果的异常判断和处理 1927.4.2 处理4个不同网络服务查询返回的结果 1927.4.3 用pollStateDone方法完成收尾工作 1957.5 ServiceState最佳实践 1977.5.1 获取运营商信息 1977.5.2 通知栏手机信号实时变化 1987.6 实战—飞行模式的实现 2007.6.1 飞行模式的设置入口 2007.6.2 Radio无线通信模块的开启或关闭 2027.7 本章小结 203第8章 Android手机上网实现机制 2048.1 Android网络整体结构 2048.2 什么是DataConnection 2058.2.1 DataConnection类定义及子类 2058.2.2 DataConnection类关键属性 2068.2.3 DataConnection类的方法 2078.2.4 5个数据连接对象的状态转换 2078.3 StateMachine状态机 2088.3.1 State设计模式 2098.3.2 StateMachine核心类 2098.3.3 StateMachine运行机制 2108.3.4 DataConnection使用State模式的运行机制 2118.4 什么是APN 2128.4.1 APN配置关键字段 2128.4.2 Android支持的APN类型 2138.4.3 如何在Android中新增APN配置 2138.5 开机自动建立default默认数据连接 2158.5.1 如何查看手机上网的基本参数配置 2158.5.2 初始化ApnContext 2168.5.3 创建DataConnection数据连接 2198.5.4 激活DataConnection数据连接 2228.6 DataConnectionTracker运行机制 2268.6.1 初始化ApnContext操作 2278.6.2 开机建立default默认的数据连接 2288.6.3 关闭数据连接 2298.6.4 循环更新网络连接状态信息 2308.6.5 APN数据库配置信息变化的观察者 2318.7 获取Android手机上网数据包 2328.7.1 使用tcpdump工具抓取TCP/IP数据包 2328.7.2 使用Wireshark软件分析TCP/IP数据包 2328.8 MMS彩信数据连接的实现 2338.8.1 建立和关闭彩信数据连接 2338.8.2 如何支持多种类型网络连接 2348.9 实战—手机上网数据总开关的实现 2358.10 本章小结 235第9章 深入解析短信发送和接收流程 2379.1 MMS应用主要源代码汇总及简要说明 2379.2 主动发送短信流程分析 2389.2.1 进入短信会话列表界面 2389.2.2 短信编辑界面 2399.2.3 SmsMessageSender短信发送处理逻辑 2419.2.4 Telephony Frameworks层中的SmsManager类 2439.2.5 IccSmsInterfaceManager服务发送短信 2449.2.6 SMSDispatcher短信分发器 2459.2.7 主动发送短信流程总结 2469.3 短信发送状态相关处理机制 2489.3.1 如何判断短信是否成功发送到短信中心 2489.3.2 如何判断短信接收方已经成功收取短信 2509.4 短信接收流程分析 2529.4.1 短信接收的开始 2529.4.2 进入短信分发器SMSDispatcher 2539.4.3 接收并处理新短信Broadcast广播 2549.4.4 短信接收流程总结 2549.5 彩信发送和接收关键流程 2559.5.1 彩信传输过程中的关键类 2559.5.2 TransactionService为核心的彩信传输机制 2579.5.3 Transaction对象执行彩信传输 2599.5.4 基于WAP PUSH的彩信接收与下载 2609.6 本章小结 261第四部分 深入解析Android RIL第10章 Android RIL框架结构及RILJ运行机制 26410.1 Android RIL关键处理流程 26410.1.1 Android RIL框架结构 26410.1.2 Android RIL的数据交互 26510.2 认识RILJ 26510.2.1 RILJ核心类图 26510.2.2 RILJ关键属性 26610.2.3 RILJ关键方法 26710.2.4 RILJ运行机制 26810.3 认识RILRequest类 26910.3.1 RILRequest类的关键属性 26910.3.2 RILRequest类的方法 26910.4 解析RILJ发出RIL请求流程 27110.4.1 send方法发送Handler消息 27110.4.2 RILSender接收和处理Handler消息 27210.5 解析RILJ接收Response消息处理流程 27310.5.1 RILReceiver内部类运行机制 27310.5.2 Solicited Response消息处理方法processSolicited 27610.5.3 UnSolicited Response消息处理方法processUnsolicited 27910.6 本章小结 280第11章 RILC系统结构及LibRIL运行机制 28111.1 RILC主要代码目录结构 28111.2 解析RILC运行机制 28211.2.1 RILC启动过程 28311.2.2 RILC运行过程 28511.3 初识RILC中的运行环境LibRIL 28511.3.1 LibRIL主要文件及作用 28511.3.2 重点结构体说明 28611.4 LibRIL运行环境加载过程 28811.4.1 开启ril_event事件监听入口RIL_startEventLoop 28811.4.2 RIL_register函数引入三方RIL_RadioFunctions 29011.5 运行状态中ril_event事件处理机制 29111.5.1 认识ril_event结构体 29111.5.2 RIL事件生命周期控制的处理函数 29211.5.3 ril_event_loop处理机制 29411.6 详解LibRIL运行机制 29611.6.1 RILJ与LibRIL建立Socket连接过程 29611.6.2 Solicited消息的交互流程和处理机制 29711.7 本章小结 302第12章 Reference-RIL运行框架 30312.1 Reference-RIL运行机制 30312.1.1 RIL_Init函数初始化Reference-RIL 30312.1.2 onRequest接收LibRIL的请求调用 30412.1.3 UnSolicited消息处理逻辑 30612.2 AT命令 31012.2.1 如何新增AT命令 31012.2.2 Android Telephony常用AT命令 31012.3 Android RIL层运行框架和机制总结 31112.3.1 总结Solicited消息处理流程 31212.3.2 总结UnSolicited消息处理流程 31312.4 本章小结 314第五部分 系统服务第13章 Telephony提供的系统服务 31613.1 System Service系统服务类图 31613.2 详解PhoneInterfaceManager实现机制 31713.2.1 ITelephony.aidl接口定义 31813.2.2 PhoneInterfaceManager服务创建过程 31813.2.3 PhoneInterfaceManager服务使用实例分析 31813.3 详解TelephonyRegistry实现机制 31913.3.1 系统服务的创建入口 32013.3.2 TelephonyRegistry关键方法 32013.3.3 listen方法处理逻辑 32013.3.4 notifyCallState方法发出通话状态变化通知 32113.3.5 触发TelephonyRegistry发出通知机制 32213.3.6 TelephonyRegistry系统服务使用实例分析 32313.4 简述TelephonyManager实现机制 32413.5 本章小结 326
第一部分 基础篇第1章 初识Android第2章 搭建Android源代码编译环境第3章 主要技术准备第1章 初识AndroidAndroid中文意思为“机器人”,中文翻译为“安卓”,是Google于2007年11月5日发布的基于Linux平台的开源手机操作系统的名称。该平台由操作系统、中间件、用户界面和应用软件组成,被称为首个为移动终端打造的真正开放和完整的移动软件。Google与电信运营商、手机设备制造商、芯片开发商以及其他有关方面结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。从2007年到现在,Android已经成为全球最热门的手机操作平台之一。本章主要从智能手机的基本硬件结构、Android手机操作系统整体架构和Android的Telephony模块的体系结构这三个方面介绍Android,特别将Android手机操作系统平台下的Telephony模块作为本书讲解的重点内容。
伴随着《深入理解Android:卷II》的上市,“深入理解Android”系列图书在Android图书市场引起了更大的反响,获得了更好的口碑,已经建立起了自己的品牌。本书继承了该系列图书的所有优点,宏观上将模块的架构和设计思路整理得非常清晰,微观上则将模块的工作机制和实现原理分析得细致入微。无论你是关心Android系统通信功能的应用开发者,还是要对Android系统进行定制或移植的系统工程师,只要能跟随作者的思路,吃透本书的内容,你都会游刃有余!——51CTO移动开发频道(http://mobile.51cto.com/)Android为移动设备而生,对于移动设备而言,通信是最重要的功能,同时也是最复杂的功能。对于应用开发工程师而言,如果能深入了解Telephony的通信功能和原理,就能在开发Android应用时选择最优的方式完成相关功能的开发;对于系统工程师而言,通信能力是Android系统平台定制化过程中的重点和难点,它的稳定性和性能直接决定了设备是否能量产。本书从源码的角度深入分析了Telephony的通信机制和实现原理,对于应用开发工程师和系统开发工程师而言,都是不可多得的参考资料。——安卓巴士(http://www.apkbus.com/) 做最好的Android开发社区
《深入理解Android:Telephony原理剖析与最佳实践》为经典畅销书“深入理解Android”系列新作,从源码角度深入解析Telephony的架构设计与实现原理,深刻揭示Android系统的通信机制!
华章公司出版的“深入理解Android”系列图书以分析Android的源代码为主,包含应用、框架、专题和内核四个部分,本书是专题部分的第一本书。本书的研究重点是Android的Telephony相关模块,它们也是Android体系结构中相对独立的一部分。分析难度较大,因为涉及的面较广,需要掌握的专业知识也比较多。青平兄结合2年多的实际工作经验,精心总结和整理了这本拥有完整知识框架、条理清晰、理论和实战结合的专题书籍,全方位、多角度向读者展示了Android Telephony体系结构的工作流程和相关原理。同时,该书秉承了“深入理解Android”系列图书高标准、高质量的传统,并展现了作者作为一位川籍软件工程师所拥有的追逐细节的品质和开阔的思路。——邓凡平 《深入理解Android 卷I/卷II》作者/Tieto公司高级软件架构师
无
总体来说,这边书介绍的内容比较全面丰富;细的来说:内容只是基本介绍了大体处理过程,可能会让那些想要觉得面面俱到的童鞋失望些;总的来说值得学习和推荐。粗糙的看了一遍Phone 和MMs APP相关的章节;看到手中还有AT命令这一块的东西,也不是很清楚,我觉得作者该详述的地方还应有很多。是一本好书,等细细阅读后才能够体会出来~~~
买回来粗略看了下,感觉有的地方写的不够深入啊,《深入理解。。。》
虽然还讲了一点东西。但是整本书内容太浅显了。明显没有太多的一线开发经验的人写的书整体架构根本讲不清楚,只讲些皮毛,每个点都是点到为止
开发一线工程师所写,内容丰富和强大,容易上手,难得一见的好书。
很好,挺好的一本书呢
这本书从系统构架视角,从模型视角分析了telephony的构架。细节上也描述了模块间API的调用关系。写的不错。作者功力很深,是真正的构架师。值得买。
专业分析telephony的功能,如果价格便宜点就好了。
科技实用书籍,共供IT开发研究用。
送货非常及时,包装也很精致,没有一点损伤,喜欢
有帮助。要是能讲讲cdma机制就更好了
书不错,有我想要的东西,而且还比较快。
适合专业从业者
还没看,买了一个深入理解的系列的
挺好的,自用,还蛮满意
android方面的好书
品质好!不错 还没看呢
书籍讲解如果更加深入点就好了
Telephony原理剖析与最佳实践
整本书讲的不透,罗利罗嗦,没重点