5 Android RIL 介绍.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
5 Android RIL 介绍

* * Android的电话应用和其他应用一样。应用的实现要依附于具体的进程。不管Activity,Service等组件如何设计和运行,它要提供服务,就必须要依附在Linux的进程上. * Phone 是一个接口,具体实现类要根据NetworkMode(网络制式)。PhoneInterfaceManager则是实现了AIDL定义的远过程调用接口ITelephony的类。 * * 引入PhoneBase的一个重要原因就是,Interface 不能含有成员变量。为了引入类型为CommandInterface成员变量mCM,引入PhoneBase中间类。 * 在系统启动期间,PhoneApp会在onCreate()方法里调用PhoneFactory的静态方法 makeDefaultPhones(),根据变量networkMode创建Phone的实例。 这是在PhoneApp.java的onCreate函数中 * * * * * Parcel java类RIL和上层进行信息交互使用的数据结构体。 * * 调用RIL_startEventLoop函数(在ril.cpp中实现),开启多路I/O驱动的消息循环; 调用RIL_init函数(在bcm_uril.c中实现),开启ResultLoop; 调用RIL_register函数(在ril.cpp中实现),将RIL_init返回RIL_RadioFunctions结构体注册。开启名为“rild”的文件系统套接字,并将其加入多路复用I/O的检查句柄集合。 * * * * * * * * * Android RIL框架介绍 * * 主题 RIL的基本概念 Android RIL框架结构 Broadcom URIL和KRIL结构 * 一、 RIL的基本概念 电话应用(Telephony Applications)是手机的基本功能。它包括了: 电话呼叫控制 短信、彩信服务 分组交换业务(GPRS) SIM卡相关(STK、电话簿、PIN) 原来GPRS是分组交换 * RIL的基本概念 RIL (Radio Interface Layer 无线接口层)提供了电话应用(Telephony Applications)与无线电硬件之间的抽象层。 * 二、 Android RIL框架结构 这个VendorRIL就是我所认为的URIL * Android的电话应用 Package层 Android的PhoneApp是电话应用的承载类。 PhoneApp的两个重要成员: Phone phone; PhoneInterfaceManager phoneMgr; * Android的电话应用 Package层 * Framework层 Phone Interface * Framework层 PhoneBase类 PhoneBase中的重要成员: CommandInterface mCM; * Phone接口实例化 * 六、CommandInterface 实现 — RIL 在实例化Phone的对象时,接口CommandInterface的对象也会实例化。 * RIL 类 RIL类包含两个内部类 RILReceiver和RILSender,分别用于下发命令和上报消息。 * RIL 类 在RIL类的构造函数中创建了RILReceiver和RILSender实例和相应的线程: * RIL 类 RILReceiver在对应线程mReceiverThread中开启了一个名为“rild”的文件系统套接字,将其赋值与RIL的成员mSocket。 RILReceiver和RILSender通过该Socket接收消息和下发命令。 * RILReceiver 处理上报消息 * RILSender下发命令 * 八、RIL守护进程 RIL Daemon RIL Daemon 在rild.c中实现,主要完成3个任务: RIL_startEventLoop() RIL_init() RIL_register() * ResultLoop处理上报消息 BCM_Parse_Notify处理Unsolicited Response BCM_Parse_Response处理Solicited Response 猜这段代码应该在Ril.cpp中 * URIL层上报过程 * Framework层处理上报流程 * Framework层处理上报流程 * EventLoop处理命令下发 对文件系统套接字“rild”的操作会触发I/O 多路复用的对应的ril_event。EventLoop会回调processCommandsCallback() - processCommandBuffer () (在ril.cpp中实现)。 最终onReque

文档评论(0)

ranfand + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档