当我们开始编写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里的位置吧。
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随时都会有可能需要网络连接接收发送数据,
因此必须提供一种实时性较高访问的方式,二来可以提高通讯效率。
相关推荐
android ril总体架构介绍
Android ril框架详细介绍,包括requet和response流程详细介绍,代码级别的分析
本文档对Android RIL部分的内容进行了介绍,其重点放在了Android RIL的原生代码部分。包括四个主题: 1.Android RIL框架介绍 2.Android RIL与WindowsMobile RIL 3.Android RIL porting 4.Android RIL的java框架
移远4g模块 android ril库源码及android驱动移植文档 硬件参考手册
android RIL结构分析,phone、sms、mms等流程
RIL的简介和流程图
目前的智能机在硬件上多采用双cpu的架构,一个是基带处理器,主要处理数字信号、语音信号的编码解码以及GSM通信协议,另一个是应用处理器,运行操作系统和各种应用程序。 基带处理器、射频和其它外围芯片作为一个...
安卓ril开发流程及原理详细说明,包含各函数说明
4G模块的android ril的源码分析以及说明
Quectel Android RIL Driver
在android的HAL层用C语言编写可执行测试程序来模拟andoird的HAL层来与RIL进行socket通信为例来介绍电话模块以外的其他模块如何向Modem发送AT命令。
从底层开始详细讲解 Android RIL 结构分析与移植
Anroid ril 的实现方http://blog.csdn.net/guoleimail/article/details/7392534法及原理,也可以参考博客
Android Ril
AndroidRIL开发介绍[文].pdf
android 移植 ril代码,ril移植的代码,modele是华为w770,你喜欢就下载学习吧。
AndroidRIL架构分析[文].pdf
Quectel Android9 Android10 Android11 Android12 RIL driver
android RIL, phoneandroid RIL, phoneandroid RIL, phoneandroid RIL, phoneandroid RIL, phoneandroid RIL, phoneandroid RIL, phoneandroid RIL, phoneandroid RIL, phoneandroid RIL, phoneandroid RIL, phone
Android的Radio Interface Layer (RIL)提供了电话服务和的radio硬件之间的抽象层。 Radio Interface Layer RIL(Radio Interface Layer)负责数据的可靠传输、AT命令的发送以及response的解析。应用处理器通过AT命令...