第3l卷第2期
2011年2月
计算机应用
JournalofComputerApplications
V01.31No.2
Feb.201l
文章编号:100l一9081(2011)02—0559—03 doi:10.3724/SP.J.】087.2011。00559
基于Android手机的远程访问和控制系统
耿东久1,索 岳2,陈 渝2,文 军1,吕勇强2
(1.电子科技大学计算机科学与工程学院,成都610054;2.清华大学计算机科学与技术系,北京100084)
(gengdj.1984@伊lail.eom;wenjun@uestc.edu.cn)
摘要:普适计算是一种新的计算模式,其本质特点是物理集成和自发互操作。而智能空间正是普适计算的这
两个本质特点的一种具体而集中的体现,智能手机在其中可以获得增强化的个性服务。提出了一个基于Android手
机的远程访问和控制系统,该系统基于开放服务网关规范(OSGI)的智能网关技术。首先介绍了整个系统结构框架,
然后详细分析了各个模块的具体实现,最后在真实设备上进行了测试。实现了Android手机利用周围的服务,对其他
设备的普适访问和远程控制。
关键词:智能空间;普适访问;远程控制;Android手机
中图分类号:TP311.5;TP316.5文献标志码:A
Designandimplementationof
Androidphonebasedaccessandcontrolinsmartspace
GENGDong-jiu1,SUOYue2,CHENYu2,WENJun1,mYong—qian92
(1.CollegeofComputerScienceandTechnology,UniversityofElectronicScienceandTechnologyofChina,ChengduSichuan610054,China;
2.DepartmentofComputerScienceandTechnology,TsinghuaUniversity,Beijing100084,China)
Abstract:Asanewcomputingmode,themostessentialfeaturesofubiquitouscomputing,embodiedinintelligentspace,
alephysicalintegrationandspontaneousinteroperation.Duetothem,Intelligentphonecangetpersonalizedservice.Aremote
accessandcontrolsystemwasproposedinthispaper,whichwasbasedontheOpenServiceGatewayInitiative(OSGI)
intelligentgatewaytechnology.Firstly,thesystemarchitecturewasintroduced,thentherealizationofeachmodulewas
analyzed,finally,testingoilactualdeviceswascarriedout.Usingsurroundingservices,Androidmobilephonerealizesthe
universalaccessandremotecontrolonotherdevices.
Keywords:smartspace;universalaccess;remotecontrol;Androidmobilephone
0 引言
随着普适计算的蓬勃发展,出现了一种全新的计算模式。
该模式脱离r传统的键盘、鼠标,以自然和隐含的方式与信息
系统进行交流,在更多不在桌面环境下发生的日常活动中,成
为了一种主流模式,人们可以随时随地、透明地获取数字化的
服务,体现r信息空间与物理窄问的融合。智能空间是上述
两个特征在房间、建筑尺度上的集中体现,是一个在其中嵌入
了计算、信息设备和多模态传感器的下作空间,它的一个重要
特性就是游牧服务(CyberForaging,CF)¨。1。用户带入空间
的移动无线手持设备(例如手机)可以充分利用其周围基础
设施中资源相对较丰富的设备,进行信息处理。同时其上运
行的模块也可以与空间中的其他模块进行交互和协作,以获
得与当地空间相关的各种服务。Android是一种令新的开源
手机操作系统,具有强大的应用层API和丰富的传感器功能,
其开放的平台有利于开发者开发出各类应用软件,并且无缝
地结合Google优秀的服务oJ。
本文介绍了一种基于Android的远程控制和访问系统,
在系统中Android手机利用周围无线网络资源与其他设备进
行自发交互,例如进行远程无线鼠标、无线键盘、文件共享、文
件传输操作,远程遥控UPnP设备等,为智能空间中其他具有
传感和计算能力的设备识别丰富的上下文提供了可能,又为
实现计算对人的注意力的透明提供了重要的途径。
ApplicationsFffZ磊q瓜司网匾;习厂]
ApplicationFramework
IMAc。。ti。v。it。yq[JMW。in。d。。o。wq]lnCo。n。t;e。n。t,Is、/Ⅲie。w。I qotificati01
Libraries AndriodRuntime
雠Surfa。cerIe甚划鬯型 CoreLibrariesDalvikvirtual
I。inuxKemel
Di。plaYDriVcrCameraDriverIBluetoathDriverll-:q
图1 Android框架
1 Android的系统架构
Android操作系统自顶向下分成4个层次,即应用层、应
用框架层、组件库堪和虚拟机和Linux内核层。其构架如图1
所示‘4j。
1)应用层。Android操作系统同一系列核心应用程序包
一起发布,其核心应用程序包括E—mail客户端、SMS(短信)
收稿日期:2010—08—12;修回Et期:2010一09—15。基金项目:国家863
项目(2009AA011906)。
作者简介:耿东久(1984一),男,河北衡水人,硕士研究生,主要研究方向:计算机网络、操作系统;索岳(1983一),男,北京人,博士,主要
研究方向:普适计算、智能空间; 陈渝(1972一),男,广东湛江人,副教授,博士,CCF会员,主要研究方向:操作系统、分布式系统;文
军(1966一),男,四川成都人,副教授。主要研究方向:数据库;吕勇强(1980一),男,北京人,助理研究员,主要研究方向:集成电路计算机辅助
设计、数字医疗。
万方数据
560 计算机应用 第3l卷
序、日历、Googh地图、网页浏览器、联系簿等,目前所有的应
用都是使用Java语言编写的。
2)应用框架层。开发者通过使用核心应用程序来调用
Android框架提供的API,这个应用程序结构被设计成方便复
用的组件。任何的应用程序都可以公布它的功能,其他的应
用程序可以使用这些功能(涉及到系统安全问题的功能将会
被框架禁止)。该应用程序重用机制使用户可以方便地替换
程序组件。隐藏在每个应用后面的是一系列的服务和系统,
其中包括:
①丰富和可扩展的视图。用于构建应用,包括列表、网
格、文本框、按钮,甚至内嵌的Web浏览器。
②内容提供器。为应用提供数据或者实现应用间的数据
共享。
③资源管理器。提供非代码的资源支持和访问,包括本
地字符串、图形和布局文件。
④通知管理器。使应用程序可以在状态栏上显示告警信
息。
⑤活动管理器。管理应用的生命周期,以及提供常用的
导航回退功能。
3)在组件库层。Android包含了一套C/C++函数库,主
要包括libc、MediaFramework、WebKit、SGL、OpenGLES、
FreeType、SQLite等,它们被应用于Android系统的各种组件
中,这些功能通过Android应用框架展现给开发人员。
4)运行时环境。Android包括了一个核心库,该核心库提
供了Java编程语言核心库的大多数功能。每一个Android应
用程序都在它自己的进程中运行,拥有一个独立的Dalvik虚
拟机实例。Dalvik被设计成可以同时高效地运行多个虚拟系
统。Dalvik虚拟机执行后缀为dex的叮执行文件,该格式文
件针对小内存使用做r优化。同时虚拟机是基于寄存器的,
所有的类都经由Java编译器编译,然后通过SD中的“叔”工
具转化成“.dex”格式。Dalvik虚拟机依赖于Linux内核的一
些功能,比如线程机制和底层内存管理机制M1。
5)Linux内核层。Android底层是一个基于I血u】【2.6.23
内核开发的独立操作系统。主要是添加了一个名为Goldfish
的虚拟CPU以及Android运行所需的特定驱动代码。该层用
来提供系统的底层服务,包括安全机制、内存管理、进程管理、
网络堆栈及一系列的驱动模块。作为一个虚拟的中间层,该
层位于硬件与其他的软件层之间。
2 系统总体设计
系统的总体设计思路是在智能窄间中部署一台Pc,负责
提供服务并与用户的Android手机通信。手机作为管理其他
设备的管理器,提供管理界面,例如远程控制设备、文件操作。
这实际上是一个C/S结构的系统,PC作为服务器,Android手
机作为客户端。系统的总体结构如图2所示。
图2系统总体结构
在该系统中,OSGI智能网关连接了内部网络和外部网
络,所有的内部设备与该网关相连,它主要由OSGIFramework
以及各种Bundle组成,Bundle之间互相通信,使设备能够了
解彼此的状态,并进行相互的操作。用户携带Android智能
手机进入空间后,手机端连入网络,动态获取一个IP地址,搜
索网络中的可用设备服务,发现可用服务后与之进行交互。
Android手机与PC之间通过Socket进行通信怕’。
手机端的按键通过脚本文件定义成为各种击键命令或者
热键组合命令(消息),Pc端解析该命令,调用相应的应用程
序,进行远程控制,同时Pc端会返回一些状态信息№J,例如
某个目录中所有文件的列表。当在焦点窗体响应命令(消
息)显示按键字符时就是无线键盘,其设备管理框架如图3
所示。
PC端 Android刊lL端
网络设备管理 本地设备管理
设备信息描述 设备描述信息发布I匾翮匾翮匿丽翮f0设备侦Ⅱ斤I陂备注删服务注删
网络设备操作代理层 } { 设备操作层(设备驱动)
通萤管理层 J网网瓜忑硼.安全管捌I通信管到IQos机制l『
0 Socket * m Socket
图3设备管理框架
3 系统的具体实现
3.1 Android手机终端模块的设计
当手机启动访问控制模块时,会新建一个线程旧j。在此线
程内,首先会创建MuhieastClient对象,对HTrP端口、UDP端
口、SSDP端口以及监听时间间隔进行设置;然后建立组播
Socket,设置1’rL为255,发送报文“connect”,等待服务器端的
响应:服务器收到组播UDP包后,取得源端lP地址,并向手机
端发送消息;手机接收到返回的消息之后,通过handler发送
“找到Server”的提示,并提取Server端的IP地址,完成查找过
程一’。整个查找过程采用组播的方式,服务器端的响应时间大
约为3s,可以返回多个Server,便于与多个设备进行交互。接
着建立TCP连接,在TCP的连接中指定了要连接的服务器端
口号,当服务器的端口已被占用时,会返回端口已被占用的出
错信息,这样并发用户数为1,避免了相互之间的干扰。
Android手机通过CommandControl类与Server进行消息
(命令)的传递,它本身接受本地网络、远程网络信息两个参
数,每次TCP连接都会新建一个TcpClient类对象,TcpClient
类对象封装了TCP连接,设有监听器netDataListener,每次接
收到报文后,都会调用netDataListener的DataRecieved方法,
对报文进行响应处理。其中CommandControl类定义了一组
请求操作,包括FileCtrl命令、MouseCtdr命令、KeyCtrl命令
等。这样手机端可向服务器端发送各种命令,主要命令如下:
BASE—LIST_REQ(CommandType.R3MOTE—SERVER),
LIST—REQ(CornmandType.R3MOTE_SERVER),
LIST_REPLY(ConunandType.R3MOTE—.SERVER),
MEDIA—INFO—REQ(CommandType.R3MOTE—SERVER),
MEDIA—INFO(CommandType.R3MOTESERVER)。
Rurq(CommandType.R3MOTE—SERVER),
SERVER—ERROR(CommandType.P13MOTESERVE,
SUCCESS(CommandType.R3MOTE—SERVER),
AUTH—REQ(CommandType.R3MOTE—SERVER),
AUTH—REPLY(CommandType.R3MOTE—SERVER),
PLAY—DVD(CommandType.R3MOTE—SERVER),MOUSE—MOVE—
REQ(CommandType.R3MOTE—SERVER),MOUSE—CLICK—REQ
(CommandType.R3MOTE—SERVER),KEYBOARD—EVENT—REQ
(CommandType.P2MOTE—SERVER),MOUSE—WHEEL—REQ
(CommandType.R3MOTE_SERVER),
UPDATE—.SERVER..REQUEST(CommandType.1t3MOTE..
氮一
万方数据
第2期 耿东久等:基于Android手机的远程访问和控制系统 561
SERVER),SHOW—ALL—FILES—REQ(CommandType.R3MOTE—
SERVER),SHOW——PLAYABLE..FILES..ONLY—.REQ
(CommandType.R3MOTE—SERVER)。LAUNCH—URL—REQ
(CommandType.R3MOTE—SERVER),
PLAY(CommandType.MEDIA_PLAYER),
PAUSE(CommandType.MEDIA—.PLAYER),
为了减少资源占用,CommandContwl采用单例的形式,只
与一个Server进行通信。当尝试与新的Server进行通信时,
CommandControl会关闭之前的连接,网络具有很大的吞吐量。
多处使用子线程处理界面控件和耗时的操作。这样用户在与
Server进行交互的同时,还可以进行本地的操作,系统被阻塞
的时间很短。
为了交互的方便,使用Android的传感器来触发事件。
例如当把手机上的文件传输到PC上时,把原本面朝上平置
的手机往右旋转45。到90。之间时,触发文件传输的事件。
首先注册一个方位感知传感器监听器。监听函数为public
voidonSensorChanged(intsensor,floatvalues[]),sensor选用
方向传感器,置横向旋转角(value[2])在45。与90。之间。
Android手机本身不支持samba功能,为了传输方便,使用开
源项目叫CIFS。JCIFS是一个完全用Java开发的SMB客
户端库,它紧密遵循通用Intemet文件系统(CommonIntemet
FileSystem,CIFS)规范支持Unicode、命令管道、批处理、线程
化调用者的10复用、加密认证和完整事务。在手机端引用该
库,可以访问Server端的共享目录,并进行文件的上传和下载
的操作。资源的lld定位形式为:smb://{user}:{password}
@{host}/{path}。
3.2 Server端的模块设计
Server端启动的时候,会加入到一个组播地址中,然后初
始化Socket,对规定的端口进行侦听。当请求连接的报文到
来时,performAuthentication会对用户的合法性进行验证,
Server端向手机端发送一个验证包,等待手机端的响应;当收
到的响应报文数据与预期的数据相等时,验证通过,否则拒绝
连接。连接成功后,会解析收到的报文。由
handleReceiveData类处理收到的不同命令,并且发送
SendPacket与手机端进行交互。
PublicsynchronizedvoidhandleReceiveDeta(AbstractPacketpacket,
TcpConneetionconnection)l
LOGGER.info(”Receivedcommand:”+packet.toString());
Commandcommand2packet.getCommand();
if(command==Command.BASE_LIST—REQ)
{
retumPacket=null;
}
elseif(command.getCornmandType()==CommandType.MEDIA
_PLAYER)
lif(command==Command.CLOSE)
{
}
elseifrcommand==Command.PLAY)
f
etrlPoint.operate(”powerOn”);
}
elseiffcommand==Command.STOP)
f
l
}
整个系统的运行
如图4所示。
Android手/OL(Client)厂丽翮
请求连接
............I!一开启多线程
糕H...H_||
结束线程关闭Socket
连接释放相关资源
电脑(Server)
刃始化Sockel
蔫
结束线程
等待下次连接
接
收
命
令
图4系统运行流程
为了提高程序的响应速度,多处使用子线程,这样异步处
理各种不同事件,避免了事件之间的盲等。当前没有处理任
务时可将处理器时间让给其他任务一j,占用大量处理器时间
的任务可以定期将处理器时问让给其他任务,并可随时停止
某个任务,设置各个任务的优先级,以此优化性能,提高了程
序的运行效率,减少了服务器的响应时间,提高了CPU和网
络I/O的利用率。
4 实现结果
系统采用了C/S的结构来进行实现,服务器与客户端通
过Socket进行网络通信。在PC端使用Java的OSGi框架,手
机的Server做成一个町热插拔的Bundle,该手机Bundle只有
被加载的时候才会启动,因此具有很高的性能,实现环境为
Eclipse。Android手机端的启动、访问控制及文件操作过程如
图5所示。
5结语
图5实现结果
经过在HTCM确cG2上反复测试,手机连接Server的时
间小于5s,远端Server对手机控制命令的响应时间小于3S,
基本上完成了手机在智能宅间的普适访问和控制功能。系统
在设计与实现中,已经加入了与其他设备进行交互的接口,下
一步将准备实现多种设备之间的远程瓦操作。93。如将UPnP
的
移植到手机上,这样就可以自动联网,发现其他设备的
服务,进而实现对整个智能窄间中的UPnP设备进行控制,这
也正是项目组正在深入研究和探讨的问题。
参考文献:
【1】 BALANR,FLINNJ,SATYANARAYANANM,eta/.Thecasefor
cyberforaging[C】//Proceedingsofthe10thWorkshopOnACM
SIGOPSEuropeanWorkshop.NewYork:ACM,2002:411—428.
(下转第57l页)
万方数据
第2期 冯兴杰等:基于有向层次图的Web服务自动组合方法 57l
本文方法在图规划算法的基础上加入了完全规约图、广义笛
卡儿积的求解,因此执行时间要大于反向随机求得可行解的
经典图规划算法,但随着规模的增大,DLG具有较高的稳定
性;对于大规模的Web服务库,能够在较短时间内完成自动
组合,满足用户对组合服务质量的要求。
疽
也
蝾
善
面
筐
塞
焉
囊
Web服务库规模(操作数)
图3不同Web服务库规模下服务请求处理时间
web服务库规模(操作数)
图4不同Web服务库规模下组合Web服务质量
4.3组合服务质量的仿真实验
由于单个服务请求的随机性,故在不同规模Web服务库
下,测试了200个服务请求的平均服务质量,每个Web服务
的质量由小于20的随机正整数生成。由定义l,QoS综合值
越小表示质量越高;图4显示了随着规模的增大,QoS综合值
不断增大,这与实际是相符的,因为随着规模的增大,操作库
中参数数目增大,随机生成的服务请求需要更多的服务操作,
因此组合服务的QoS综合值不断增大;DLG求得的组合服务
质量明显优于图规划算法,从而能够提高组合的成功率。
以上两组实验结果表明,基于有向层次图的Web服务组
合方法,能够在较短时间内解决大规模Web服务操作库的
Web服务组合问题,得到近似质量最优的组合服务序列。
5 结语
为了解决web服务自动组合问题,本文提出了基于有向
层次图的服务组合方法,从用户输入开始,通过Web服务操
作库建立参数节点之问的层次关系,避免了循环搜索,提高了
Web服务之间的并发性,能够得到具有最小阶数的最优Web
服务组合序列,该序列近似全局最优的,且不存在冗余的Web
服务。仿真实验结果表明,本文方法能够在较短时间内求得
最优组合服务,有效地满足大规模Web服务操作库的用户请
求,提高服务组合的成功率。
本文主要求解web服务的组合序列,没有考虑Web服务的
组合验证、Web服务组合失败后的补偿以及用户对组合服务某
些单一QoS属性的要求,这些都是下一步要解决的问题。
参考文献:
【1】 倪晚成,刘连臣,吴澄.Web服务组合方法综述【J】.计算机工程,
2008。34(4):79—81.
【2】 VOSSENT,BALLM,LOTEMA,eta/.OntheUSeofintegerpro-
grammingmodelsinAIplanning【C】//ProceedingsoftheSix-
teenthInternationalJointConferenceonArtificialIntelligence.New
York:ACM,1999:304—309.
【3】 李喜彤,范玉顺.Web服务流程相容性和相似性分析【J】.计算机
学报,2009,32(12):2429—2437.
【4J 廖军,谭浩,刘锦德.基于Pi一演算的Web服务组合的描述和验
证【J】.计算机学报,2005,28(4):635—643.
【5】 雷丽晖,段振华.一种基于扩展有限自动机验证组合Web服务
的方法IJ】.软件学报,2007,18(12):2980—2990.
【6】 李鹏,战德臣,刘国忠,等.一种面向用户的Web服务组装方法
【J】.计算机应用,2009,29(11):3120—3123.
【7】 龚小勇,朱庆生,武春岭.基于位置矩阵OoS感知的Web服务组
合研究【J1.计算机应用,2008,28(8):2170—2172.
【8】HASHEMIANSV,MAVADDATF.Agraph—basedframeworkfor(Xm[1-
position0fstatelessWebservices【C】//ProceedingsoftheEuropean
ConferenceonWebSer“o皓.NewYork:ACM.2006"75一筠.
【9】HASHEMIANSV,MAVADDATF.Agraph—basedapproachtoWeb
servicescomposition【C】//ProceedingsoftheSymposiumonAppli—
cationsandtheIntemet.Washington,DC:IEEECoziiputerSociety。
2005:183一189.
【10】 曹利培,刘静,缪淮扣.基于图的Web服务组合优化的研究
【J】.计算机科学,2007,34(2):95—99.
f 1 1】 刘家茂,顾宁,施伯乐.基于Mediator的WebServices无回溯反向链
动态合成[J】.计算机研究与发展,2005,42(7):1153—1158.
【12】 刘峰,谭庆平,杨艳萍.基于深度优先搜索的Web服务合成算
法【J】.计算机工程与科学,2006,28(12):80—82.
【13】邓水光,吴健,李莹,等.基于回溯树的Web服务自动组合【J】.
软件学报,2007,18(8):1896—1910.
【14】 YANGYANPING,TANQINPING,LIUFENG,eta/.Webserv-
icecompositionalgorithmbasedonfLX·pointtheorem【C】//Inter-
nationalFederationforInformationProcessing.NewYork:Spring-
er-Verlag,2005:293—303.
(上接第561页)
【2】XIEWEIKAI,SHIYUANCHUN,XUGUANYOU,eta/.Smart
platform:Asoftwareinfrastructureforsnlartspace【C1//IEEE
InternationalConferenceonMuhimodelInfeffaces.Washington,
DC:IEEEComputerSociety,2002:429-434.
【3】 潘永高,钟亦平,张世永.基于网关的J2MEJabber系统研究【J】.
计算机工程,2005,31(19):108—110.
【4】龙亚券,黄璞,吴胜.超大容量NANDFlash文件系统——
YAFFS2在Linttx下的实现【J】.北京电子科技学院学报,2007,
15(2):80—84.
【5】YUANMJ.J2ME移动应用程序开发【M】.梁超,王延华,译.北
京:清华大学出版社,2004.
【6】YUANMJ,SHARPK.Series40可扩展应用程序开发【M】.周良
忠,译.北京:人民邮电出版社,2006.
【71 Goosle开发人员访谈Android平台【EB/OL】.【2010—06一01】.
hRp://www.builder.eom.cn/2007/1l 13/628807.shtml.
【8】 张海燕.Java多线程技术在手机互联网中的应用【J】.农业网络
信息,2008(3):97—99.
【91’WEISERM.Thecomputerforthetwenty-fwstcentury[J】.Scientific
American,1991(9):94—100.
巷壹富靶1j丰
万方数据
基于Android手机的远程访问和控制系统
作者: 耿东久, 索岳, 陈渝, 文军, 吕勇强, GENG Dong-jiu, SUO Yue, CHEN Yu, WEN
Jun, L(U) Yong-qiang
作者单位: 耿东久,文军,GENG Dong-jiu,WEN Jun(电子科技大学,计算机科学与工程学院,成都,610054)
, 索岳,陈渝,吕勇强,SUO Yue,CHEN Yu,L(U) Yong-qiang(清华大学,计算机科学与技术系
,北京,100084)
刊名: 计算机应用
英文刊名: JOURNAL OF COMPUTER APPLICATIONS
年,卷(期): 2011,31(2)
参考文献(18条)
1.WEISER M The computer for the twenty-first century[外文期刊] 1991(09)
2.BALAN R.FLINN J.SATYANARAYANAN M The case for cyber foraging 2002
3.张海燕 Java多线程技术在手机互联网中的应用 2008(03)
4.XIE WEIKAI.SHI YUANCHUN.XU GUANYOU Smart platform:A software infrastructure for smart space 2002
5.Google开发人员访谈Android平台 2010
6.潘永高.钟亦平.张世永 基于网关的J2ME Jabber系统研究 2005(19)
7.YUANM J;SHARPK;周良忠 Series 40可扩展应用程序开发 2006
8.龙亚券.黄璞.吴胜 超大容量NAND Flash文件系统--YAFFS2在Linux下的实现 2007(2)
9.YUAN M J;梁超;王延华 J2ME移动应用程序开发 2004
10.YUAN M J.梁超.王延华 J2ME移动应用程序开发 2004
11.龙亚券;黄璞;吴胜 超大容量NAND Flash文件系统--YAFFS2在Linux下的实现 2007(02)
12.YUANM J.SHARPK.周良忠 Series 40可扩展应用程序开发 2006
13.潘永高;钟亦平;张世永 基于网关的J2ME Jabber系统研究[期刊论文]-计算机工程 2005(19)
14.Google开发人员访谈Android平台 2010
15.XIE WEIKAI;SHI YUANCHUN;XU GUANYOU Smart platform:A software infrastructure for smart space 2002
16.张海燕 Java多线程技术在手机互联网中的应用 2008(3)
17.BALAN R;FLINN J;SATYANARAYANAN M The case for cyber foraging 2002
18.WEISER M The computer for the twenty-first century 1991(9)
本文链接:http://d.g.wanfangdata.com.cn/Periodical_jsjyy201102076.aspx