Android平台双网双待设计方案计划_第1页
Android平台双网双待设计方案计划_第2页
Android平台双网双待设计方案计划_第3页
Android平台双网双待设计方案计划_第4页
Android平台双网双待设计方案计划_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

随着HYPERLINK”http://www.c114.net/keyword/%D2%C6%B6%AF%CD%A8%D0%C5"\t"_blank"移动通信技术的快速进展以及人们对HYPERLINK"http://www.c114。net/keyword/%CA%D6%BB%FA"\t"_blank”手机功能需求的不断提高,HYPERLINK"http://www.c114.net/keyword/%D6%C7%C4%DC%CA%D6%BB%FA”\t"_blank”智能手机逐渐成为人们的日常消费品,智能手机的用户也与日俱增.为了便利人们的生活,追求双网双待已成为手机研发的一种普遍现象。双网双待解决了一部手机可以同时接入两个HYPERLINK”http://www.c114.net/keyword/%CD%F8%C2%E7"\t"_blank"网络的难题,最大的优点是保证了HYPERLINK"http://www.c114.net/keyword/GSM"\t”_blank"GSM与HYPERLINK"http://www。c114.net/keyword/CDMA”\t"_blank”CDMA两种网络在同一手机中同时工作,真正实现了两网自由连通。双网的连通还具有差异化优势,可以将CDMA较高的接入速度和通信保密等强大功能体现在终端方面,使双网双待手机用户能够尽享CDMA网络支持的丰富多彩的数据HYPERLINK”http://www。c114。net/keyword/%D4%F6%D6%B5%D2%B5%CE%F1"\t"_blank"增值业务。同时GSM与CDMA两网的和谐HYPERLINK”http://www.c114.net/keyword/%D5%FB%BA%CF”\t"_blank"整合将为手机厂商带来巨大的市场价值.Android作为当前众多智能手机系统平台的后起之秀,以其优势正逐渐获得宽阔手机开发人员和手机消费者的青睐。实现双网双待也必将成为Android不断创新和进展的重要因素。Android系统由嵌入式Linux和Java构成,因此基于Android系统平台的双网双待设计区分于其他手机对双网双待的实现,它充分地利用了Android平台清楚的系统架构、简易的工作原理和已经实现的部分Phone核心应用程序进行双网双待的功能扩展,提高了Android平台双网双待设计的效率。1Android操作系统介绍Android是HYPERLINK"http://www.c114.net/keyword/Google"\t"_blank"Google于2007年11月份宣布的基于Linux2。6.23平台的开源手机操作系统,号称是首个为HYPERLINK"http://www。c114。net/keyword/%D2%C6%B6%AF"\t”_blank”移动终端打造的真正开放和完整的移动软件。Google重新设计了AndroidJava虚拟机和系统,使得Android的Java应用更接近于底层系统,效率更高;另外使用虚拟机技术使得Android的应用在被监控的情况下运行,平安性更高。Android包括移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍,具有平台标准化、用户可定制以及服务免费等特色,是一个对第三方软件完全开放的平台,突破了HYPERLINK”http://www.c114。net/keyword/iPhone"\t"_blank”iPhone等只能添加为数不多的固定软件的枷锁;同时与WindowsMobile、Symbian、iPhoneOS等厂商不同,Android操作系统免费向开发人员供应,大大节省了开发成本.Android平台由操作系统、中间件、用户界面和应用软件组成。Linux内核层用来供应系统的底层服务,位于硬件和其他软件之间。Android运行库包含一组核心库和Dalvik虚拟机,Android供应丰富的类库支持且大部分为开源代码,如接受嵌入式数据库SQLite.应用框架层为Android开发人员供应了访问框架应用程序接口的全部权限,接受结构化设计简化了组件间的重用。在应用程序层,Android本身附带了一些核心的应用程序,大大简化了Android应用程序的开发。因此,利用Android平台更易于开发具有双网双待功能的智能手机系统,同时也便于在原有系统的基础上进行不断的完善和功能扩展。2Android平台双网双待框架设计Android平台上实现的双网双待手机是将GSM网络和CDMA网络相结合,使得一部手机可同时插入两张不同网络的号卡,并同时处于开机状态,用户无需切换网络,即可任意拨打、接听和收发HYPERLINK"http://www。c114.net/keyword/%B6%CC%D0%C5"\t”_blank"短信,且这些手机均可支持HYPERLINK”http://www.c114.net/keyword/%D6%D0%B9%FA%B5%E7%D0%C5"\t"_blank”中国电信自有的增值业务,使商务人士尽享移动办公的自由以及休息娱乐的乐趣。此外,用户还可预设接听和拨打电话的挨次,使用起来格外便利.基于Android系统平台的双网双待的设计,充分结合了Android2.1版本之后在framework层上已经实现的双卡处理机制,设计方案主要侧重于RIL及HYPERLINK"http://www。c114.net/keyword/ARM"\t"_blank”ARM(HYPERLINK"http://www.c114。net/keyword/modem”\t"_blank"modem)侧的实现机制.通过在RIL上依样建立一套新的处理机制,将双卡分别进行处理.比如,打电话的时候,发送哪套恳求就先选择向哪套机制发送恳求,然后还在这套机制中等待消息的返回。Android平台双网双待框架如图1所示.ﻫ图1Android平台双网双待框架图1中GSM网络和CDMA网络分别拥有一套独立的RIL处理机制,从而可以依据上层不同的Phone服务执行framework层以及RIL层的相应处理,真正实现双网的协同工作,达到同一手机中双网双卡之间互不干扰的效果.3Android平台双网双待软件设计Android平台双网双待功能设计主要涉及到Android软件平台的四大功能模块,分别是Linux内核层、本机库/运行时、应用程序框架层以及应用程序层。其中在应用程序层利用Android的各种组件API实现PhoneApp并在Linux内核层供应相应的底层驱动。Android系统架构如图2所示。ﻫ图2Android系统架构(1)Linux内核.Android系统平台是基于优化的Linux内核来开发的,主要添加了一个名为Goldfish的虚拟CPU以及Android运行所需的特定驱动代码。该层用来供应系统的底层服务,供应诸如内存管理、进程管理、设备驱动、平安管理、电源管理等驱动模块,作为一个虚拟的中间层,该层位于硬件与其他软件层之间,接受YAFFS2文件系统,同时也是手机软硬件的连接层。在系统开发中,也需要针对自身的硬件模块添加对应的驱动,如Phone驱动、HYPERLINK"http://www.c114.net/keyword/GPRS"\t”_blank"GPRS驱动、HYPERLINK”http://www.c114.net/keyword/GPS"\t"_blank"GPS驱动、液晶和触摸板驱动等.(2)本机库/Android运行时.这些共享库都是利用C和C++语言编写的,且针对电话使用的特定的硬件架构进行了编译,并已由手机制造商预先安装到手机上。本机库主要包含:标准C函数库、媒体功能库、扫瞄器引擎、2D和3D图形库及SQLite引擎等。开发者利用这些功能可以便利地开发出人机界面友好的应用程序接口,极大地缩短了开发过程。Android运行时包含一组Java内核库和Dalvik虚拟机,它们有效地优化了Java程序的运行过程。(3)应用程序框架层.Android应用程序开发是基于框架和组件的,该层供应了在创建应用程序时需要使用的各种高级构建块,因此在该层中,开发人员拥有访问框架API的全部权限,在开发应用程序时调用Android本身自带的很多组件,也可以开发新的组件,并将该组件放入应用程序框架中,以供自己和其它应用程序调用,这样的模块大大提高了应用程序的开发效率。(4)应用程序层。Android本身包含一些由Java开发的核心应用程序,如桌面、短信收发程序、日历、电话通讯录、扫瞄器、E-mail客户端等,开发者还可以在此基础上开发出更多具有特色的Android应用程序,如特效相机、播放器、充电相框等。3.1Android双网双待实现方案在GSM单模状态下通过添加一套支持CDMA的无线接口层RIL来实现双网双待机制的方案如图3所示。ﻫ图3Android双网双待电话部分结构在PhoneAPP中new一个GSMPhone和一个CDMAPhone,分别对应两种framework(不同的CallTracker)和RIL(不同的RIL),实现单模向双网双待的改进。图中CallLiST主要用来管理两个电话之间的切换,以避开如挂掉某一个通话却导致另一个的通话也结束等一系列界面显示出错问题。CallList模块管理两个电话以及这两个电话全部的通话,通过一个CallList表来存储两个电话的全部呼叫.上层界面调用这个CallList表来处理两个电话的切换。在framework中new一个CallList的类来存储phone的多个电话以便上层显示。CallList类中包含attached(),detach(),update(),clear(),get-CurrentCall(),getDefault()等方法。使得两个Phone的Call得到掌握.挂掉的时候就从表中删除,来电话的时候加入表中。上层显示的时候,只要调用CallList中的最后存入Call就不会消灭界面出错的情况。在包含GSM网络和CDMA网络的双网双待模块中,由于有了CDMA部分的整合不少代码已经发生转变,原来的CallTracker只被GSM使用,在这里改为CallTracker和GsmCallTracker,抽象出CallTracker基类,使其也可以被CDMA利用;GSMCall变成GsmCall,更加符合统一的命名规章;另外,比如pppd的启动部分,也从Java框架层放到RIL层.3.2AndroidRIL层的改进在Android系统中RIL是电话系统的本地实现,它供应了Android电话服务(android.telephony)与无线电硬件之间的抽象层,主要负责AT命令的发送和响应解析,这也是电话服务的实现基础.另外,RIL还负责数据的牢靠传输。因此RIL在Android电话部分起核心作用。本方案设计过程中主要涉及到RIL以下四个部分的修改:(1)由于本方案维护两个RIL实例,因此RIL实例管理者(RILinstanceManager)需要各自负责与androidtelephony通过socket进行连接。每个RIL实例针对各自的SIM卡供应专用的通HYPERLINK"http://www。c114。net/keyword/%D0%C5%CD%A8”\t"_blank"信通道来进行modem侧的通信服务。(2)无线电仲裁管理者(RadioServiceArbitrationManager),这是实现双网双待方案中新增加的模块,主要用来为每个RIL实例进行语音和短消息业务的仲裁,数据服务的仲裁由MODEM来进行。(3)RIL大事支配机(RILEventDispatcher),用于支配RIL恳求及AMSS大事到通信服务管理模块进行的处理。(4)无线电服务管理者(RadioServiceManager),Android通话应用首先需要通过子系统信息来从framework层获得通话服务,然后每个SIM卡子系统将会映射到一个特定的RIL实例ID上,服务管理将使用RIL实例的ID来识别子系统ID中DSSAPI的参数。3.3Android双网双待通话机制的实现Android系统电话服务的实现基础是RIL。在Android单模状态下的RIL同TI等平台类似,均使用了Google默认的参考接口,也就是通过打开modem侧供应的串口或者USB虚拟串口向modem侧发送AT指令的方式,进行实际的HYPERLINK"http://www。c114.net/keyword/%CE%DE%CF%DF%CD%A8%D0%C5"\t"_blank"无线通信。比如,UI上层向RIL层发送RIL_REQUEST_DIAL恳求,RIL层在接收到该恳求的时候,通过串口向modem发送”AT***"命令,发起呼叫,当然,最终真正实现通话的是modem侧的功能,此时,与Android就无关了。Android平台RIL与modem的工作原理如图4所示。

图4RIL与modem的工作原理呼叫(call)构建于电话服务的基本架构之上。与呼叫相关的主要用户接口,其实就是基于ITelephony接口实现Phone应用中的”Phone"服务,通过TelephonyManager供应访问接口.此服务内部通过PhonyFactory猎取的GSMPhone/CDMAPhone来访问RIL,供应诸如拨号、接通、挂断、保持通话等服务功能.Android双网双待呼叫部分的结构如图5所示。ﻫ图5android双网双待呼叫部分结构Android系统双网双待呼叫部分的实现,从GSMPhone/CDMAPhone到对应RIL的路径中间主要涉及几个关键数据结构,即GSMCall/CDMACall、CallNotifiter、GSMConnection/CDMAConnection、CallTracker等类.其中GSMCall和CDMAPhone都继承Call基类,供应基本的呼叫掌握结构以及呼叫状态,如Hold、Active等信息,每个接通的GSMCall/CDMACall都拥有一个或多个(conferencecall)GSMConnection/CDMAConnection结构,用于维护呼叫时长等相关信息.CallTracker是呼叫模块的核心,它供应与呼叫相关的接口,如通话、挂断等。GSMPhone/CDMAPhone拥有CallTracker的实例,并封装相应的接口,这个接口通过调用GSMPhone/CDMAPhone中的CommandsInterface实现,即提交的RIL封装。除此之外,CallTracker还维护当前的GSMCall和CDMACall列表,保持对全部呼叫状态的追踪,供应对来去电等呼叫状态的管理。实现追踪的方法为pollCallsWhenSafe,通过CommandsInterface的getCurrentCalls接口猎取当前活动的呼叫列表.这一操作的底层实现为AT+CLCC(不同的Modem实现可能不同),这是从Modem猎取呼叫状态列表的主要接口。回调通过ENENT_POLL_CALLS-RESULT完成,回调函数为handlePollCalls,这是猎取Modem中实际呼叫信息的核心方法,也是Tracker的含义所在。handlePollCalls完成实际的追踪功能,依据底层上报的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论