Android-RIL结构分析与移植

Android-RIL结构分析与移植

ID:38978306

大小:58.23 KB

页数:14页

时间:2019-06-22

Android-RIL结构分析与移植_第1页
Android-RIL结构分析与移植_第2页
Android-RIL结构分析与移植_第3页
Android-RIL结构分析与移植_第4页
Android-RIL结构分析与移植_第5页
资源描述:

《Android-RIL结构分析与移植》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Android RIL结构分析与移植介绍本文档对AndroidRIL部分的内容进行了介绍,其重点放在了AndroidRIL的原生代码部分。包括四个主题:1.AndroidRIL框架介绍2.AndroidRIL与WindowsMobileRIL3.AndroidRILporting4.AndroidRIL的java框架在本文档中将Android代码中的重要模块列出进行分析,并给出了相关的程序执行流程介绍,以加深对模块间交互方式的理解。对于java代码部分,这里仅进行简单的介绍。如果需要深入了解,可以查看相关参考资料。本文档中还对AndroidRIL的Porting部分内容进行了描述和

2、分析。针对对unix操作系统环境并不熟悉的读者,本文档中所涉及到的相关知识包括: Unixfilesystem Unixsocket Unixthread Unix下I/O多路转接以上信息可以在任意一份描述Unix系统调用的文档中找到。1.AndroidRIL框架介绍术语:fd                      unix文件描述符pipe                     unix管道cond                     一般是conditionvariable的缩写tty                      通常使用tty来简称各种类型的终端设备u

3、nsolicitedresponse        被动请求命令来自basebandeventloop                android的消息队列机制,由unix的系统调用select()实现init.rc                    init守护进程启动后被执行的启动脚本。HAL                    硬件抽象层(HardwareAbstractionLayer,HAL)1.1.AndroidRIL概况:AndroidRIL提供了无线硬件设备与电话服务之间的抽象层。下图展示了RIL在Android体系中的位置。android的ril位于应用程

4、序框架与内核之间,分成了两个部分,一个部分是rild,它负责socket与应用程序框架进行通信。另外一个部分是VendorRIL,这个部分负责向下是通过两种方式与radio进行通信,它们是直接与radio通信的AT指令通道和用于传输包数据的通道,数据通道用于手机的上网功能。 对于RIL的java框架部分,也被分成了两个部分,一个是RIL模块,这个模块主要用于与下层的rild进行通信,另外一个是Phone模块,这个模块直接暴露电话功能接口给应用开发用户,供他们调用以进行电话功能的实现。1.2.AndroidRIL目录结构:Android的RIL模块位于Android/hardware

5、/ril文件夹,有三个子模块:rild,libril,reference-ril●include文件夹:包含RIL头文件,最主要的是ril.h●rild文件夹:RIL守护进程,开机时被init守护进程调用启动,里面仅有main函数作为入口点,负责完成RIL初始化工作。在rild.c文件中,将完成ril的加载过程,它会执行如下操作: 动态加载VendorRIL的.so文件 执行RIL_startEventLoop()开启消息队列以进行事件监听 通过执行VendorRIL的rilInit()方法来进行VendorRIL与libril的关系建立。在rild文件夹中还包括一个radioop

6、tions.c文件,它的作用是通过串口将一些radio相关的参数直接传给rild来对radio进行配置。●libril文件夹:在编译时libril被链入rild,它为rild提供了event处理功能,还提供了在rild与VendorRIL之间传递请求和响应消息的能力。Libril提供的主要功能分布在两个主要方法内,一个是RIL_startEventLoop()方法,另一个是RIL_register()方法RIL_startEventLoop()方法所提供的功能就是启用eventLoop线程,开始执行RIL消息队列。RIL_register()方法的主要功能是启动名为rild的监听端

7、口,等待java端通过socket进行连接。●reference-ril文件夹:Android自带的VendorRIL的参考实现。被编译成.so文件,由于本部分是厂商定制的重点所在。所以被设计为松散耦合,且可灵活配置的。在rild中通过opendl()的方式加载。librefrence.so负责直接与radio通信,这包括将来自libril的指令转换为AT指令,并且将AT指令写入radio中。reference-ril会接收调用者传来的参数,参数内容为与radio的通

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

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

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