CN101944022A - 一种面向Android及其衍生系统的UI对象操作模拟方法 - Google Patents

一种面向Android及其衍生系统的UI对象操作模拟方法 Download PDF

Info

Publication number
CN101944022A
CN101944022A CN2010102728265A CN201010272826A CN101944022A CN 101944022 A CN101944022 A CN 101944022A CN 2010102728265 A CN2010102728265 A CN 2010102728265A CN 201010272826 A CN201010272826 A CN 201010272826A CN 101944022 A CN101944022 A CN 101944022A
Authority
CN
China
Prior art keywords
android
described step
operational order
action
equipment end
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2010102728265A
Other languages
English (en)
Inventor
薛云志
陈军成
郑东阳
张亚峰
安朗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN2010102728265A priority Critical patent/CN101944022A/zh
Publication of CN101944022A publication Critical patent/CN101944022A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种面向Android系统及其衍生系统的UI对象操作模拟方法,包括如下步骤:1)安装Android及其衍生系统的设备端与PC端连接并通信;2)在PC端构造Android UI操作指令并发送给设备端,操作指令格式为:EventType,Action,Eventdata,其中EventType表示操作事件类型;Action表示哪一种操作,Eventdata表示具体的操作;3)设备端接收在PC端构造的Android UI操作指令,如果操作指令格式正确,执行模拟操作,否则结束模拟操作。本发明很好地解决了从Android设备外部模拟指令并操作Android设备的问题。

Description

一种面向Android及其衍生系统的UI对象操作模拟方法
技术领域
本发明涉及Android系统及其衍生系统的UI(用户界面)对象操作模拟方法,涉及用户界面自动化领域,属于软件工程领域。
背景技术
Android系统是Google公司推出的一款Linux操作系统上的应用系统框架平台,此平台采用Java语言开发。以此框架平台为基础,能方便地开发一些嵌入式软件。随着Android系统的不断推广,各大手机厂商以及相关嵌入式设备商以Android系统为基础定制出适合各自产品的Android的衍生系统。Android系统现在的最新版本为2.1。
在此背景下,针对相关设备的软件测试自动化、软件界面自动化以及相关的辅助工具的研究与开发逐渐深入,但是缺乏相应的基础工具支撑。
发明内容
根据Android系统的特征,本发明提供了一种面向Android系统及其衍生系统的UI对象操作模拟方法,有针对性的制定了发送给Android设备的指令格式,此指令格式成功地伪造成Android端的操作,驱动Android设备正确执行。
为了完成上述发明,本发明采用下述技术方案:
一种面向Android系统及其衍生系统的UI对象操作模拟方法,包括如下步骤:
1)安装Android及其衍生系统的设备端与PC端连接并通信;
2)在PC端构造Android UI操作指令并发送给设备端,操作指令格式为:EventType,Action,Eventdata,其中EventType表示操作事件类型;Action表示哪一种操作,Eventdata表示具体的操作;
3)设备端接收在PC端构造的Android UI操作指令,如果操作指令格式正确,执行模拟操作,否则结束模拟操作。
所述步骤1)设备端与PC端通过TCP或UDP协议进行连接与通信。
所述设备端与PC端通过USB接口连接。
所述步骤1)采用客户端/服务器端模式,设备端为服务器端,PC端为客户端。
所述步骤2)在PC端构造的Android UI操作指令通过端口发送给设备端。
所述步骤2)操作事件类型包括键盘事件,屏幕动作事件,时间事件。
所述步骤2)对于键盘事件包括软键盘点击和软键盘长点击操作;对于屏幕动作事件包括点击,拖拽和双击操作;对于时间事件包括等待操作。
所述步骤2)具体的操作包括键盘事件指示按下的按键,屏幕动作事件指示事件发生的坐标。
所述步骤3)设备端执行模拟时调用Android系统的窗口管理接口对象向Android系统植入操作事件消息,驱动Android系统执行UI操作指令。
所述步骤3)如果操作指令格式不正确,设备端通过警报声或指示PC端弹出警告消息发送格式错误消息。
与现有技术相比,本发明很好地解决了从Android设备外部模拟指令并操作Android设备的问题。本发明的方法可以广泛应用于:
Android系统平台上的软件测试自动化研究与开发;
Android系统平台上软件界面自动化工具研究与开发;
Android系统平台上的软件辅助工具的研究与开发。
附图说明
图1为本发明方法执行的流程图;
图2为服务器端执行流程图。
具体实施方式
为了更清楚地理解本发明,特此将本发明的具体实施过程结合附图描述如下:
本实施例描述了一次模拟操作的执行流程,模拟系统服务器端程序安装在Android设备端,客户端程序安装在PC端,如图1所示,Android设备端与PC等其它设备端连接,在PC设备端(也可以是具有与PC功能类似的设备如功能强大的服务器等)根据格式规范构造Android UI操作并发送给Android设备端,Android设备端接收发送的消息并检查其格式,如果格式正确则正确执行并结束此次模拟操作,如果格式不正确则报错并结束此次模拟操作。下面以PC端与Android设备端连接为例描述上述流程的具体实施过程。
(1)PC端与Android设备端通过USB接口连接,预先约定PC端与Android端连接的端口,当然也可以使用TCP/UDP等协议进行连接,连接方式采用客户端/服务器端模式,其中PC端为客户端,Android设备端为服务器端;
(2)在PC端根据格式规范构造Android UI操作。在此,利用模拟系统在客户端提供的接口CreateOperation(EventType,Action,EventData)构造消息。此接口的作用是构造Android UI操作事件,参数EventType表示事件类型;Action表示操作动作,EventData表示发生的具体事件;其返回值为表示事件的字符串。
其具体的解释如下:
Event type:KEY,MOTION,TIME;
Action:
对KEY:CLICK和LONG_CLICK;
对MOTION:CLICK,DRAG和LONG_CLICK;
对TIME:WAIT。
Event data:
对KEY->CLICK,其为KEY_NAME,指示键盘值;
对KEY->LONG_CLICK,其为KEY_NAME+Time1,指示键盘值及按下延续的动作;
对MOTION->CLICK,其为POSITION(POS_X+POS_Y),指示点击的具体坐标;
对MOTION->LONG_CLICK,其为POSITION(POS_X+POS_Y)+Time1,指示点击的具体坐标以及点击延续的时间;
对MOTION->DRAG,其为POSITION(POS_X+POS_Y)+NEW_POSITION(NEW_POS_X+NEW_POS_Y),指示从一个具体坐标拖到另一个具体坐标;
对TIME->WAIT,其为Time2(此时表示等待的时间,最小值为0),指示等待的时间;
Event data中各数据含义及取值范围:
KEY_NAME:
含义:按键名称。
取值范围:字符串类型,为以下键值的名称之一。
public static final int KEYCODE_UNKNOWN           =0;
public static final int KEYCODE_SOFT_LEFT         =1;
public static final int KEYCODE_SOFT_RIGHT        =2;
public static final int KEYCODE_HOME              =3;
public static final int KEYCODE_BACK              =4;
public static final int KEYCODE_CALL              =5;
public static final int KEYCODE_MEDIA_REWIND      =89;
public static final int KEYCODE_MEDIA_FAST_FORWARD=90;
public static final int KEYCODE_MUTE              =91;
Time1:
含义:按下与抬起之间的延时时间,以毫秒为单位。
取值范围:长整型,最小值为1500,小于此值将被忽略。
POSITION:
含义:POS_X,POS_Y是坐标值:
此坐标系的原点为屏幕左上角,以向右为x轴正向,向下为y轴正向。
以POS_X,POS_Y值可以确定屏幕上的唯一位置。
取值范围:浮点数类型,POS_X取[0,ScreenWidth],POS_Y取[0,ScreenHeight]。
NEW_POSITION:
含义:NEW_POS_X,NEW_POS_Y是坐标值:
此坐标系的原点为屏幕左上角,以向右为x轴正向,向下为y轴正向。
以NEW_POS_X,NEW_POS_Y值可以确定屏幕上的唯一位置。
取值范围:浮点数类型,NEW_POS_X,NEW_POS_Y无取值范围限制。
Time2:
含义:延时等待时间,以毫秒为单位。
取值范围:长整型,最小值为0,小于此值将被忽略。
消息构造完毕后,通过模拟系统在客户端提供的接口SendMessage(strEvent)向服务器端发送消息,其中strEvent参数表示发送的消息,其为CreateOperation(EventType,Action,EventData)返回值;其伪代码如下图所示:
ClientBehavior()
{
    string strMsg=CreateOperation(EventType,Action,EventData);
    SendMessage(strMsg);
}
(3)服务端的执行流程如下伪代码所示:
ServerBehavior()
{
  //监听服务器端的端口
    Monitor();
    //如果有从客户端发送过来的消息
    if(hasMessage)
    {
        //获取消息
        string strMsg=GetMessage();
        //检查获取的消息格式是否正确
        bool isCompatible=Check(strMsg);
        //如果消息格式不正确则向客户端发送错误消息
        if(isCompatible==false)
        {
            SendErrorToClient(″The format error!″);
        }
        //执行操作
        ExecuteOperation();
    }
}
在服务器端执行流程中,操作执行是整个流程的核心,其具体的操作流程如图2所示,MyServer(服务器)创建new_monkey(操作模拟)对象,new_monkey创建mWm.IWindow.Manager对象;monkey_command(操作模拟指令对象)根据从客户端接收到的消息构造相应的命令,如果消息格式不正确,则返回错误;否则,通过new_monkey向Android系统的mWm.IwindwoManager(窗口管理接口)发送runMonkeyCommand(mk_cmd)消息,mk_cmd表示接收到的字符串经过格式化后的事件消息,mWm.IWindwoManager在接收到消息后调用InjectPointerEvent()或InjectKeyEvent()接口向Android系统植入mk_cmd操作事件消息,驱动Android系统执行相应的操作事件,然后向new_monkey返回执行结果,new_monkey将结果返回给MyServer,指示一个命令的执行。
上面对本发明所述的一种模拟Android及其衍生系统的UI对象操作方法进行了详细的说明,但显然仍然可以做出各种修改和变换而不背离本发明的精神和范围,因此,说明书应被认为是说明性的而非限制性的,其中的各个接口的解释是示意性的,完成类似功能的接口仍然属于本方法的精神和权利要求范围,对于本技术领域的一般技术人员来说,在不背离本发明所述方法的精神和权利要求范围的情况下对它进行的各种显而易见的改变都在本发明的保护范围之内。

Claims (10)

1.一种面向Android及其衍生系统的UI对象操作模拟方法,包括如下步骤:
1)安装Android及其衍生系统的设备端与PC端连接并通信;
2)在PC端构造Android UI操作指令并发送给设备端,操作指令格式为:EventType,Action,Eventdata,其中EventType表示操作事件类型;Action表示哪一种操作,Eventdata表示具体的操作;
3)设备端接收在PC端构造的Android UI操作指令,如果操作指令格式正确,执行模拟操作,否则结束模拟操作。
2.如权利要求1所述的方法,其特征在于,所述步骤1)设备端与PC端通过TCP或UDP或USB协议进行连接与通信。
3.如权利要求1所述的方法,其特征在于,所述步骤1)采用客户端/服务器端模式,设备端为服务器端,PC端为客户端。
4.如权利要求1所述的方法,其特征在于,所述步骤2)在PC端构造的Android UI操作指令通过端口发送给设备端。
5.如权利要求1所述的方法,其特征在于,所述步骤2)操作事件类型包括键盘事件,屏幕动作事件,时间事件。
6.如权利要求1所述的方法,其特征在于,所述步骤2)对于键盘事件包括软键盘点击和软键盘长点击操作;对于屏幕动作事件包括点击,拖拽和双击操作;对于时间事件包括等待操作。
7.如权利要求1所述的方法,其特征在于,所述步骤2)具体的操作包括键盘事件指示按下的按键,屏幕动作事件指示事件发生的坐标。
8.如权利要求1所述的方法,其特征在于,所述步骤3)设备端执行模拟时调用Android系统的窗口管理接口对象向Android系统植入操作事件消息,驱动Android系统执行UI操作指令。
9.如权利要求1所述的方法,其特征在于,所述步骤3)如果操作指令格式不正确,设备端向PC端发送格式错误消息。
10.如权利要求9所述的方法,其特征在于,设备端通过发出警报声或指示PC端弹出警告消息发送格式错误消息。
CN2010102728265A 2010-09-03 2010-09-03 一种面向Android及其衍生系统的UI对象操作模拟方法 Pending CN101944022A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102728265A CN101944022A (zh) 2010-09-03 2010-09-03 一种面向Android及其衍生系统的UI对象操作模拟方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102728265A CN101944022A (zh) 2010-09-03 2010-09-03 一种面向Android及其衍生系统的UI对象操作模拟方法

Publications (1)

Publication Number Publication Date
CN101944022A true CN101944022A (zh) 2011-01-12

Family

ID=43436023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102728265A Pending CN101944022A (zh) 2010-09-03 2010-09-03 一种面向Android及其衍生系统的UI对象操作模拟方法

Country Status (1)

Country Link
CN (1) CN101944022A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102253833A (zh) * 2011-06-28 2011-11-23 宇龙计算机通信科技(深圳)有限公司 一种基于安卓Android平台下应用的操作方法及装置
CN104376235A (zh) * 2013-08-13 2015-02-25 腾讯科技(深圳)有限公司 一种归档文件包的签名方法和装置
CN105005529B (zh) * 2014-04-16 2018-10-23 腾讯科技(深圳)有限公司 一种对应用程序进行测试的方法及装置
CN109508276A (zh) * 2018-11-09 2019-03-22 四川长虹电器股份有限公司 提高Android平台上设备工厂检测效率的方法
CN112256283A (zh) * 2020-09-27 2021-01-22 苏宁智能终端有限公司 用于Android设备的应用版本管控方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1851667A (zh) * 2006-02-15 2006-10-25 华为技术有限公司 一种图形用户界面的测试方法和系统
CN101340317A (zh) * 2007-07-05 2009-01-07 中兴通讯股份有限公司 一种嵌入式软件调试的方法及其应用系统
CN101650686A (zh) * 2009-05-19 2010-02-17 上海闻泰电子科技有限公司 一种基于Ethernet Over USB的智能手机开发和使用方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1851667A (zh) * 2006-02-15 2006-10-25 华为技术有限公司 一种图形用户界面的测试方法和系统
CN101340317A (zh) * 2007-07-05 2009-01-07 中兴通讯股份有限公司 一种嵌入式软件调试的方法及其应用系统
CN101650686A (zh) * 2009-05-19 2010-02-17 上海闻泰电子科技有限公司 一种基于Ethernet Over USB的智能手机开发和使用方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102253833A (zh) * 2011-06-28 2011-11-23 宇龙计算机通信科技(深圳)有限公司 一种基于安卓Android平台下应用的操作方法及装置
CN104376235A (zh) * 2013-08-13 2015-02-25 腾讯科技(深圳)有限公司 一种归档文件包的签名方法和装置
CN105005529B (zh) * 2014-04-16 2018-10-23 腾讯科技(深圳)有限公司 一种对应用程序进行测试的方法及装置
CN109508276A (zh) * 2018-11-09 2019-03-22 四川长虹电器股份有限公司 提高Android平台上设备工厂检测效率的方法
CN112256283A (zh) * 2020-09-27 2021-01-22 苏宁智能终端有限公司 用于Android设备的应用版本管控方法及装置

Similar Documents

Publication Publication Date Title
CN101957793B (zh) 一种面向Android及其衍生系统的软件操作录制回放方法
CN101944022A (zh) 一种面向Android及其衍生系统的UI对象操作模拟方法
CN102520899B (zh) 通用座舱显示管理系统
AU2016201389A1 (en) Method and system for process automation in computing
EP2159744A1 (en) Functional extensions for business objects
US20080126887A1 (en) Method and system for site configurable error reporting
CN101853157B (zh) 一种应用软件gui对象自动识别方法
CN100369013C (zh) 一种嵌入式应用软件测试的过程监控方法
CN102053911A (zh) 基于Android的自动化测试方法、系统及移动终端
CN103744784A (zh) 手机应用自动化测试方法及系统
CN101529382A (zh) 公共组件框架
CN101751329A (zh) 一种实现自动测试的方法和系统
CN108052336A (zh) 一种分布式软件升级系统及其实现方法
CN112882953A (zh) 基于安卓调试桥的应用程序的自动演示方法和系统
CN106354629A (zh) 一种基于多级服务器的iOS系统移动应用自动测试系统的架构方法
CN111612407A (zh) 一种基于云平台的三维可视化综合应用平台设计方法
CN116436794A (zh) 基于物联网物模型的opc实时数据集成与控制方法
CN103858098A (zh) 用于更新控制系统的布置
CN117291517A (zh) 审批流程的构建方法及装置
CN111124370A (zh) 一种数据处理方法及相关设备
CN112395133B (zh) 基于虚拟机的数据备份方法、装置和计算机设备
CN112596481B (zh) 一种支持即插交互式节点的mes管理系统及方法
KR20090014072A (ko) 자동화 개발 시스템
CN105550107A (zh) 基于移动终端模拟器的接近传感器模拟实现方法及系统
JP2010204840A (ja) ユーザインターフェース操作統合システムのカスタマイズ方法及び端末装置並びにコンピュータプログラム及び情報記録媒体

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20110112