Android软件流程之App&&Framework&&Ril

Android软件流程之App&&Framework&&Ril

ID:37708330

大小:1.05 MB

页数:17页

时间:2019-05-29

Android软件流程之App&&Framework&&Ril_第1页
Android软件流程之App&&Framework&&Ril_第2页
Android软件流程之App&&Framework&&Ril_第3页
Android软件流程之App&&Framework&&Ril_第4页
Android软件流程之App&&Framework&&Ril_第5页
资源描述:

《Android软件流程之App&&Framework&&Ril》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、坚持做总结进步多点点Android软件流程之App&&Framework&&Ril(待续)前言本人主要负责Android的Phone模块的bug修改,经过几个月的学习,熟悉了Phone模块ARM11(App、Framework与Ril)的整体框架。本文我将带领大家熟悉Android的App层与Framework层与Ril层如何进行交互,让大家了解具体代码流程,了解体系的整体框架。下面我将首先介绍App层、Framework层的详细流程,之后是Ril层。在看本文之前希望读者能对一下知识有所了解,特别是Android的Handler机

2、制,当然在文章中我也会对下面知识加以简单介绍。Ø面向对象编程思想Ø设计模式ØAndroid的Handle,Message,Looper机制-17-Dut.Android.Lee坚持做总结进步多点点第一部分Android软件流程之App&&Framework一.简述1.Ril概述RIL(RadioInterfaceLayer)工作在Android的Framework层之下,主要有c语言编写,还有一部分c++,它主要负责数据的可靠传输、上层命令的发送以及response的解析。当然,除了对网络的支持,RIL也支持SMS、Call等功能

3、。当然这么说还是很抽象,下面我们就来看看Ril和上层进行交互的所有“消息”。2.Ril和上层进行交互的“信息”这里我所谓的“消息”,其实可以概括为二种:üRequest:上层,也就是App层和Framework层下发给Ril层的一些请求(如打电话RIL_REQUEST_DIAL,获取SIM卡的状态RIL_REQUEST_GET_SIM_STATUS等),最终由Ril层把这些请求下发给ARM9侧。üResponse:Response代表ARM9侧向ARM11侧上报的一些信息,它又可以分为两种²UNSOL_RESPONSE:主动上报的

4、一些信息,如来短信,²SOL_RESPONSE:上层下发的一些请求,是需要有应答的,也可以说是响应的,如我下发了RIL_REQUEST_GET_SIM_STATUS,需要Ril上报回来SIM_STATUS,我们把这些上报信息称为命令的响应。这些“消息”分别在framework层和ril层,都有定义,framework层定义在com.android.internal.telephony包中的Rilcommands.java中,ril层在ril_commands.h中定义,这两处的定义是完全一致的,每条“信息”都是一一对应的。下面我把

5、所有的这些“信息”,都汇总在下面,并进行的简单的描述,来让大家知道Ril到底在和App和Framework进行哪些“交互”:下面我将根据具体“消息”的讲述其功能、流程,以这些“消息”为出发点,开始我们的“流程之旅”二.具体的流程1、/*取得SIM卡的状态*/üRIL_REQUEST_GET_SIM_STATUSüRIL_UNSOL_RESPONSE_RADIO_STATE_CHANGEDAndroid手机中,上层(注:本文中所说的“上层”如不做特别说明,代表App层和Framework层)-17-Dut.Android.Lee坚持

6、做总结进步多点点不会主动下发RIL_REQUEST_GET_SIM_STATUS获取SIM卡请求,而会在Ril层主动上报RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED后,才会发送RIL_REQUEST_GET_SIM_STATUS下面让我们来看具体流程1)Ril层主动上报RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED在上层中最终与Ril层进行对话的最后一道门是Ril.java,这个文件的非常重要,以至于你如果能把Ril.java中的类和方法全部搞懂,你就不用看这篇文章了,

7、你已经了解了上层的基本流程。下面我先介绍下Ril.java这个文件,这个文件定义了两个类RILRequest类和Ril类,其中Ril类有定义了两个内部类RILReceiver和RILSender,各个类的关系与作用见下图:在Ril构造函数中,我们会开启RILReceiver线程,之后RILReceiver线程就开始监听Ril层是否有上报信息,具体的就是监听上层与Ril层的socket通道-17-Dut.Android.Lee坚持做总结进步多点点Ril层上报的信息是以Parcel类型传上来的,通过监听Socket通道,一旦有信息上报

8、,就进入了信息的处理函数processResponse(Parcelp):在processResponse(Parcelp)中通过读取P的“第一位”信息,判断上报信息的类型,对主动上报和命令的响应两种信息分别处理,由于RIL_UNSOL_RESPO

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。