Android移动终端数据同步技术研究与应用
[蔡菁]
摘要
随着Android智能手机平台在市场的占有率越来越高,基于Android的增值业务也越来越丰富,同时使用SyncML数据同步协议,可以将网络数据通过多种设备同步化,用户个人信息能够在不同设备上得到更新和保持一致,因此,两者的结合无疑是一种新的,并且具有巨大商业价值的研究。文章首先阐述了Android软件平台的系统架构,接着详细分析了SyncML数据同步协议,最后将以上两种技术接合在一起,实现了基于vCard协议和HTTP传输协议的联系人数据同步。
通信热点
关键词:AndroidSyncMLHTTPvCard
蔡菁女,重庆邮电大学,硕士研究生,通信与信息系统专业,主要研究方向:移动通信终端平台。
1
引言
2008年9月22日,美国运营商T-MobileUSA在纽约
开发者能够使用Java编程语言,基于AndroidSDK平台开发大量的增值业务。
正式发布第一款Google手机T-MobileG1,是世界上第一部基于真正开发的和完整的移动软件Android操作系统的手机。Android是Google开发的基于Linux平台的开源手机操作系统,它包括一个操作系统,中间件以及大量的关键应用。Android平台有一个运行于Linux内核之上的Dalvik虚拟机。Dalvik虚拟机在保证API兼容的同时,针对移动手机进行了大幅的优化,占有资源少,运行效率更高。应用
2
Android平台架构
项目基金:新一代宽带无线移动通信网国家科技重大专项"TDLTE基带芯片的研发"(2009ZX03002-003-05)
图1Android平台架构Android平台自底向上可以分为4个层次:Linux内核
14
Android移动终端数据同步技术研究与应用
层、Android运行环境和库、应用程序框架、应用程序[5]。如图1所示。①Linux内核层:Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。Linux内核也同时作为硬件和
软件栈之间的抽象层。②Android运行环境和库:Android包括了一个核心库,该核心库提供了
Java编程语言核心库的大多数功能。每一个Android应用程序都有它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik虚拟机被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。Dalvik虚拟机依赖于Linux内核的一些功能,比如线程机制和底层内存管理机制。③应用程序框架:开发人员可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都看发布它的功能块并且任何其他的应用
程序都可以使用其所发布的功能块(遵循框架的安全性限制)。同样,该应用程序重用之间也使用户可以方便的替换程序组件。④应用程序:Android本身会附带一些核心应用程序包,包括email客户端、SMS短消息、联系人管理程序等。所有的应用程序都使用Java语言编写。
了3种传输协议HTTP(超文本传输协议),WSP(无线会话协议),OBEX(对象交换协议),规定了如何传输和交换请求消息和响应消息。
图2SyncML同步
系统架构由图2所示,SyncML同步系统可以分为3层:最底层为传输协议层,可以在跨网络、跨平台的
网络环境中实现数据同步;中间层为SyncML适配器及接口层,是整个架构的核心层,实现了SyncML数据同步并向应用层提供统
通信热点
一开发的接口,屏蔽了底层物理媒介和网络通讯协议的差异;最上层为同步应用层,可以利用中间层提供的接口实现具体的同步功能(如应用A和应用B)。
3.2SyncML数据流程
3
SyncML数据同步协议
3.1SyncML同步系统架构
SyncML同步是基于客户端/服务器模式的,包含有两个设备角色——客户端和同步服务器。SyncML数据同步协议包括3个部分:SyncML表示协议[1],SyncML同步协议[2],SyncML传输绑定方式[3]。其中SyncML同步协议[2]主要描述了数据同步的会话过程,会话过程中的数据流程,同步双方的握手过程等;SyncML表示协议主要定义了所有同步所支持的数据类型、命令格式,使之能够在各种网络传输SyncML消息格式;SyncML传输绑定方式中定义一个完整的SyncML数据同步的过程主要包括三个阶段:同步初始化阶段,数据交换的阶段和数据映射的阶段[1]。如图3所示,SyncML数据同步有六个数据包,第一个和第二
2011.01.广东通信技术
图3SyncML数据同步流程
15
通信热点
个数据包是同步客户端和服务器端之间交换各自初始化数据包,数据包中包括各自的设备能力,需要同步数据类型以及同步锚等,用于协商本次同步的类型;第三个和第四个数据包是需要同步的数据项的相互交换;第五数据包是同步服务器通过客户端发回的数据更新状态包,对本次同步了的数据项更新映射表信息,第六包数据是客户端发回的映射确认数据包[2]。
4
Android移动终端实现联系人数据同步
4.1SQLite数据库
Android平台使用SQLite数据库来存储数据。SQLite是一款用C语言编写的嵌入式数据库引擎,并且是开源和
免费的轻型数据库。Android系统的很多用户数据,如联系人,通话记录