




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、HUAWEI TECHNOLOGIES CO., LTDHuawei Confidential Security Level: 2022-3-6Android Android 通信机制及通信机制及QCRILQCRIL原理介绍原理介绍HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 2Android软件栈架构HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 3Android应用运行环境l每个每个Android应用依赖于应用依赖于/system/framework文件夹下的一些核心库
2、,这些文件夹下的一些核心库,这些核心库用是核心库用是java编写的。这些应用还依赖于编写的。这些应用还依赖于/system/lib文件夹下的动态链接文件夹下的动态链接库,这些动态链接库是库,这些动态链接库是C / C+编写的。编写的。l这些库就是这些库就是Android应用的环境,还有一些共享库和类库,是运行时动态加应用的环境,还有一些共享库和类库,是运行时动态加载的类库和本地调用载的类库和本地调用(JNI Invoke)。l传统传统JAVA应用,所有的应用,所有的JAVA应用都运行在同一个应用都运行在同一个JVM中(默认是这样的)。中(默认是这样的)。而在而在Android上,每个应用都运行
3、在自己专有的上,每个应用都运行在自己专有的dalvik虚拟机实例里,这和虚拟机实例里,这和传统传统JAVA应用有区别。应用有区别。lAndroid使用使用Linux作为作为HAL( hardware abstraction layer )HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Android RIL ArchitectureAndroid RIL ArchitecturePage 4HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Android RILAndroid RILlDalvik
4、 VM (shared):Shared code among all Android VMSlRIL.java: Java utility for RIL message/socket handling lTelephony ManagerlCommunication between Java and RILD is via commands (messages) over socketslRIL.so handles socket and dispatch detailslRIL.java is corresponding code in JavaPage 5HUAWEI TECHNOLOG
5、IES CO., LTD.Huawei Confidential Android RILAndroid RILlRILDlRILD.soDaemon lRIL.soUtility library for RIL message/socket handlinglQCRIL.soQC RIL implementation lcm.so, wms.so, xxx.so QC remote API libs (QC) Page 6HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential RILRIL消息类型消息类型l有两种类型的有两种类型的RIL消息消息lSol
6、icited commands (请求消息请求消息)l是由上层应用,例如是由上层应用,例如DiIAL、HANGUP等通过等通过RIL lib发起的发起的lUnsolicited commandsl是由底层是由底层modem侧发起的,向上层报告状态的变化、新的消息等,侧发起的,向上层报告状态的变化、新的消息等,例如例如CALL_STATE_CHANGED 、SIM_STATE_CHANGED、NEW_SMS。lTwo sets of RIL commandsPage 7HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 通信机制lRILD和和Mode
7、m侧的通讯是通过侧的通讯是通过RPC和和QMI实现的实现的lRPC用于多用于多CPU之间的通讯,一侧的之间的通讯,一侧的CPU应用在应用在ONC RPC栈中通过栈中通过XDR将消息编码成字节流,通过将消息编码成字节流,通过RPC router、共享内存对应传到另一、共享内存对应传到另一侧侧CPU的的RPC router、 ONC RPC栈中,栈中,XDR解码后,得到数据。解码后,得到数据。lXDR即是用于在同平台间实现数据连续表示的编解码机制。即是用于在同平台间实现数据连续表示的编解码机制。lQMI是高通自定义的一种数据接口,用于终端设备的操作系统应用是高通自定义的一种数据接口,用于终端设备的
8、操作系统应用和底层模块的数据通信。数据业务基本通过和底层模块的数据通信。数据业务基本通过QCRIL、QMI与底层交互与底层交互。Page 8HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 9通信机制lApplication是是Android应用,是单独的应用,是单独的linux进程。进程。lcom. android.phone是是Android Service,类似于,类似于windows的的Service,运行于,运行于单独的进程,给其他应用提供服务。所有的单独的进程,给其他应用提供服务。所有的Service都可以通过都可以通过IS
9、erviceManager接口访问。接口访问。l例如一次呼叫调用发生,情景大概是如下几步:例如一次呼叫调用发生,情景大概是如下几步:lApplication调用调用android.telephony的接口;的接口;lTelephony的类根据状态,将呼叫分解成若干个的类根据状态,将呼叫分解成若干个commands,通过,通过IPC,调用,调用Phone Service的接口;的接口;lPhone Service通过通过sockets和和RILD这个这个daemon通信;通信;lrild将来自将来自Phone Service的命令通过的命令通过RPC、共享内存,发送给、共享内存,发送给Modem
10、,并接,并接收收Modem的返回,打包返回给的返回,打包返回给Phone Service;lPhone Service也将返回打包给也将返回打包给Application;l呼叫调用完毕。呼叫调用完毕。HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Page 10Application和Phone Service的通信lApplication和和Phone Service之间通过之间通过OpenBinder机制通信。但是我们并不需机制通信。但是我们并不需要懂得要懂得OpenBinder的原理,因为的原理,因为Android软件栈中的软件栈中的Ap
11、plication Framework层已经提供便捷的接口去调用。层已经提供便捷的接口去调用。lApplication Framework层的层的android.telephony包为包为 上层应用上层应用 提供了调用提供了调用phone Service的接口,封装、抽象得很好,一个打电话的调用只需要三行的接口,封装、抽象得很好,一个打电话的调用只需要三行代码,代码,lIServiceManager sm = ServiceManagerNative.getDefault();lIPhone phoneService = IPhone.Stub.asInterface(sm.getServic
12、e(phone);lphoneService.call(phoneNumber);HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 同步和异步调用l回调函数:回调函数:lClient 注册一个回调函数,当条件满足时注册一个回调函数,当条件满足时Server返回回调。返回回调。l回调函数本身是同步的。回调函数本身是同步的。l在同步调用中,调用者被在同步调用中,调用者被blocked直到调用被直到调用被Server Function处理并处理并返回调用者。返回调用者。l在异步调用中,调用请求发送到服务端,并立即返回,在异步调用中,调用请求发送到服务端
13、,并立即返回,Client如果如果想知道结果必须注册一个监听相应状态返回的回调函数。想知道结果必须注册一个监听相应状态返回的回调函数。l另外回调是一次性的,如果想持续地接收另外回调是一次性的,如果想持续地接收server返回的回调,返回的回调,client需要在每一次回调返回后重新注册,或者用某种机制来保证一直接需要在每一次回调返回后重新注册,或者用某种机制来保证一直接收回调(例如一个收回调(例如一个event table)。)。Page 11HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential 同步调用Page 12HUAWEI TECHNOLOG
14、IES CO., LTD.Huawei Confidential 异步调用Page 13HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Qcril RequestPage 14HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential Qcril Event/ResponsePage 15HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential QCRIL FunctionslRILD向向QCRIL发起:发起:lonRequest(): Qcril处理请求并立即返回处
15、理请求并立即返回lonRequestComplete(): 操作完成时调用,可以在操作完成时调用,可以在onRequest()中使中使用用lonStateRequest():Qcril同步返回同步返回radio状态状态lonCancel(RIL_Token t):Qcril尽力去取消队列中的尽力去取消队列中的RIL请求,立即返请求,立即返回,完成时调用回,完成时调用onRequestComplete(),这个函数只能在不同于,这个函数只能在不同于RIL请请求求 的另一个线程中调用。的另一个线程中调用。Page 16HUAWEI TECHNOLOGIES CO., LTD.Huawei Confidential QCRIL FunctionslQCRIL向向RILD发起:发起:lonRequestComplete(): 请求完成或请求完成或cancel时调用时调用lOnUnsolicitedResponse():Qcril收到底层发来的响应时调用收到底层发来的响应时调用lRequestTimedCallback():Qcril一定时间后去向一定时间后去向RILD线程请求回调,线程请求回调,这个线程是这个线程是RILD发起请求的线程。发起请求的线程。Page 17HUAWEI TE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西药批发中的电子商务平台建设考核试卷
- 草原马术运动考核试卷
- 聚噻吩纤维在智能纺织品的应用考核试卷
- 融资租赁行业服务创新与客户体验考核试卷
- 谷物储存的温湿度调控考核试卷
- 拼多多平台店铺内容营销流量引入与品牌曝光合同
- 数字音乐平台影视插曲版权合作分成合同
- 独家授权网红奶茶区域代理销售服务合同
- 农业园区气象传感器租赁及数据分析服务合同
- 工业废水回用与清洁生产合作协议
- 宝骏530汽车说明书
- 医用耗材采购简易流程图
- 新能源设计专业考试题库汇总(附答案)
- GB/T 7777-2003容积式压缩机机械振动测量与评价
- GB 5585.1-1985电工用铜、铝及其合金母线第1部分:一般规定
- 等级保护定级指南(第十二期)讲解课件
- 铜绿假单胞菌下呼吸道感染专家共识课件
- 故都的秋公开一等奖课件
- 土石坝填筑的施工方法
- 【高中化学会考】山西省普通高中毕业会考化学试题样题
- 2023高考地理高三一轮复习教学计划和备考策略
评论
0/150
提交评论