Android RIL总体架构介绍

Android RIL总体架构介绍

当我们开始编写Android的电话应用程序的时候,如果需要进行电话拨号,可以进行如下调用:
ITelephony tpCallModule = (ITelephony)ITelephony.Stub.asInterface(ServiceManager.getService("phon"));
tpCallModule.dial("13800138000");

而对于短信的应用,我们需要调用的则是SmsManager:
SmsManager SMS = SmsManager.getDefault();
SMS.sendTextMessage("13420926323",null,"this is a test sms",null,null);

到底Android是如何跟底层GSM模块通讯的呢?我一开始就猜测是不是跟WM那样采用RIL的架构来实现,查看了google的官方文档,证实了我的猜测是正确的,Android里面的确采用了RIL架构跟底层GSM模块通讯,先看看RIL在Android里的位置吧。

clip_image002

Android的RIL在这里被做成一个叫做rild的库,通过一个系统环境变量ro.radio.noril是否为空来决定要不要把RIL的代码编译进内核,这点跟CE的编译方式是一样的,如果设置了该变量,将会有个"SimulateCommand"的玩意编译进内核,它可以在没有实际GSM硬件的情况下模拟部分实际硬件的指令,然后让RIL驱动提供给上层应用,如果没有设置该系统环境变量就会采用RIL。

通过研究RIL的代码可以看到,Android的rild库是介于HAL接口与baseband modem之间,它同样提供了语音、数据、短信、SIM卡管理以及STK应用的功能,实现思路跟微软的RIL有异曲同工之妙,也是把标准的GSM27.007中常用的如dial这些做主动请求的操作称之为request,一共75个;另外一类GSM模块主动上报的例如信号强度、基站信息等,称之为unsolicited response,一共17个;开发模式也是跟微软RIL开发差不多,需要针对不同的GSM模块进行不同的GSM驱动开发,公用的部分google给你做好了,特定的部分需要你自己去定制,这样做可以大大地提高开发效率。
RIL跟上层通讯主要采用两种方式,一种是通过Socket发送与接收消息的方式来实现,这个Socket在ril.cpp里面可以找到它的创建代码:
s_fdListen = android_get_control_socket(SOCKET_NAME_RIL);
还有另外一种方式就是直接通过TCP/IP直接访问内核中的shared memory,进行RPC调用,这种方式主要应用在数据模式上,一来由于Android的每个Activity随时都会有可能需要网络连接接收发送数据,因此必须提供一种实时性较高访问的方式,二来可以提高通讯效率。

其实最上层的ITelephony和SmsManager有点像WM里面的Connection Manager,呵呵,有意思,这是不是其实印证了一句话“万变不离其宗”呢?今天从大体的结构上讨论了一下Android RIL的大体架构,改天再仔细研究一下这个Android RIL的更细致入微的东西。如果大家有什么更有意思的发现,欢迎来信和我交流"gzuroy#gmail.com"(把#改成@)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android RIL(无线射频接口层)模块是运行在Android手机系统上的一层软件模块,它作为通信协议栈和硬件之间的桥梁,提供了与移动通信网络的通信功能。RIL模块主要负责处理与手机基带芯片的通信,管理移动网络连接以及处理移动通信相关功能。 RIL模块的主要职责包括: 1. 处理与基带芯片的通信:RIL模块通过与基带芯片之间的通信接口,实现对基带芯片的控制和管理,包括进行移动网络的注册、鉴权和密钥协商等。 2. 管理移动网络连接:RIL模块负责与移动网络建立通信连接,包括拨号、发送和接收数据等相关操作。它能够实现与移动网络的通信功能,如发送和接收短信、接听和拨打电话以及访问互联网等。 3. 实现SIM卡管理:RIL模块管理与SIM卡之间的通信,包括识别和读取SIM卡中的相关信息,如号码、短信、联系人等。它能够处理与SIM卡相关的操作,如读取SIM卡中的联系人、发送和接收短信等。 4. 处理通话和短信功能:RIL模块能够实现电话的呼叫功能,包括呼出、接听、挂断等。同时,它还能够处理短信的发送和接收,包括编码和解码等操作。 总之,Android RIL模块是Android系统中的一个重要软件模块,它为手机提供了与移动通信网络的连接和通信功能。通过与基带芯片的交互,RIL模块能够实现与移动网络的通信、管理移动网络连接、处理SIM卡相关操作以及实现电话和短信功能等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值