没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
23页
首先抛开Android的一切概念来研究一下电话系统的最基本的描述。我们的手机首先用来打电话的,随后是需要一个电话本,随后是PIM,随后是网络应用,随后是云计算,随后是想我们的手机无所不能,替代PC。但是作为一个电话的基本功能如下: 0)拨叫电话,接听电话,挂断电话,发送短信,网络连接,PIM管理 1)由于电话运营商为我们提供了呼叫等待,电话会议等补充业务,所以我们的手机需要管理多路通话,如何管理? 2)来电时,我们要播出来电铃声,接通时我们需要切换语音通道,这个又跟多媒体系统打上了交道,例如有耳机插上了,有蓝牙耳机连上了,系统该做如何的管理和切换? 3)上网的网络通路建立(例如GSM GPRS),如何PPP连接并连接到LinuxSocket通道上的?系统如何管理数据连接? 4)AP跟Modem通讯时通过AT指令的,如何将AT指令变成一个个具体的操作函数,如何管理Modem发给我们的回应,AT命令通道,数据通道如何管理? 5)sim卡的电话本如何管理?
资源推荐
资源详情
资源评论
Android 电话系统
Android 电话系统之概述篇
首先抛开 Android 的一切概念来研究一下电话系统的最基本的描述。我们的手机首先用来打电话的,随后
是需要一个电话本,随后是 PIM,随后是网络应用,随后是云计算,随后是想我们的手机无所不能,替代 PC。
但是作为一个电话的基本功能如下:
0)拨叫电话,接听电话,挂断电话,发送短信,网络连接,PIM 管理
1)由于电话运营商为我们提供了呼叫等待,电话会议等补充业务,所以我们的手机需要管理多路通话,如何管
理?
2)来电时,我们要播出来电铃声,接通时我们需要切换语音通道,这个又跟多媒体系统打上了交道,例如有耳
机插上了,有蓝牙耳机连上了,系统该做如何的管理和切换?
3)上网的网络通路建立(例如 GSM GPRS),如何 PPP 连接并连接到 LinuxSocket 通道上的?系统如何管理数
据连接?
4)AP 跟 Modem 通讯时通过 AT 指令的,如何将 AT 指令变成一个个具体的操作函数,如何管理 Modem 发给
我们的回应,AT 命令通道,数据通道如何管理?
5)sim 卡的电话本如何管理?
上面的关于手机的基本问题,Android 电话系统设计者必须要解答的问题。该设计如何的管理框架,提出什么
概念来表达?所以要分析 Android 的电话部分,还是需要理解电话实现的背景知识,通讯协议,大体框架。
我们回到电话系统基本构成上,先从整体上去把握一下电话模块的大体框架,先从空中俯瞰。我给出的图
是一般的智能手机的框架图,该框架基本能够概括所有手机电话模块的构成,当然也包括 Android 的电话系统
构成。
智能机架构一般是应用处理器+Modem。应用处理器与 Modem 的连接使用串口或者 USB。在一个硬件串口
通路上实现为了要同时实现数据传输并同时实现控制 Modem,就需要实现多路复用协议(GSM TS07.10),在底
层我们在多路复用的基础上虚拟了两个串口,一个用于 CMD 通道,一个用于 DATA 通道。电话的所有控制通
路都是在这连个通道上。
RIL,Radio Interface Layer。本层为一个协议转换层,手机框架需要适应多类型的 Modem 接入到系统中,而
对于不同的 Modem 有不同的特性,AT 指令的格式或者回应有所不同,但是这种特性在设计应用时不可能完全
考虑和兼容。所以设计者在设计电话系统时,建立了一个虚拟电话系统,为该虚拟电话系统规定了标准的功能,
上层的电话管理都是建立在这些标准的功能基础之上。而 RIL 则是将虚拟电话系统的标准功能转换成实际的所
使用的 Modem 的 AT 指令。
Android 设计者将电话系统设计成了三部分。
Andoird 的 Phone Service 其实是 PhoneApp。GSMPhone(CDMAPhone)是 Phone Service 核心的对象,他包
含了如下的相关对象。
我们的分析任务就是要把这些对象的相互关系,及其对象间数据传递关系弄清楚。首先我们给出以下的
Android 电话系统的框架,以便对 Android 电话系统有个概要的认识,然后从数据流的角度,以及对象的引用关
系来分析系统。下面是 android 电话系统整体框架图。
Android 电话系统之-rild
Rild 是 Init 进程启动的一个本地服务,这个本地服务并没有使用 Binder 之类的通讯手段,而是采用了 socket 通
讯这种方式。RIL(Radio Interface Layer)
Android 给出了一个 ril 实现框架。由于 Android 开发者使用的 Modem 是不一样的,各种指令格式,初始化序列
都可能不一样,GSM 和 CDMA 就差别更大了,所以为了消除这些差别,Android 设计者将 ril 做了一个抽象,
使用一个虚拟电话的概念。这个虚拟电话对象就是 GSMPhone(CDMAPhone),Phon 对象所提供的功能协议,以
及要求下层的支撑环境都有一个统一的描述,这个底层描述的实现就是靠 RIL 来完成适配。
Andoid 将 RIL 层分为两个代码空间:RILD 管理框架,AT 相关的 xxxril.so 动态链接库。将RIL独立成一个动
态链接库的好处就是Android系统适应不同的Modem,不同的 Mode 可以有一个独立的 Ril 与之对
应。从这个层面上看,Rild 更多是一个管理框架。
而 ril 是具体的 AT 指令合成者和应答解析者。从最基本的功能来讲,ril 建立了一个侦听 Socket,等待客户
端的连接,然后从该连接上读取 RIL-Java 成传递来的命令并转化成 AT 指令发送到 Modem。并等待 Modem 的
回应,然后将结果通过套接口传回到 Ril-Java 层。下图是 Ril-D 的基本框架:
剩余22页未读,继续阅读
zglgaolin0
- 粉丝: 1
- 资源: 24
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页