CN113238687A - 一种桌面平台上安卓应用按钮功能的实现方法及实现装置 - Google Patents

一种桌面平台上安卓应用按钮功能的实现方法及实现装置 Download PDF

Info

Publication number
CN113238687A
CN113238687A CN202110459882.8A CN202110459882A CN113238687A CN 113238687 A CN113238687 A CN 113238687A CN 202110459882 A CN202110459882 A CN 202110459882A CN 113238687 A CN113238687 A CN 113238687A
Authority
CN
China
Prior art keywords
edit box
android application
type
button
android
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.)
Granted
Application number
CN202110459882.8A
Other languages
English (en)
Other versions
CN113238687B (zh
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.)
Beijing Linzhuo Information Technology Co Ltd
Original Assignee
Beijing Linzhuo Information Technology Co Ltd
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 Beijing Linzhuo Information Technology Co Ltd filed Critical Beijing Linzhuo Information Technology Co Ltd
Priority to CN202110459882.8A priority Critical patent/CN113238687B/zh
Publication of CN113238687A publication Critical patent/CN113238687A/zh
Application granted granted Critical
Publication of CN113238687B publication Critical patent/CN113238687B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种桌面平台上安卓应用按钮功能的实现方法及实现装置,根据安卓应用的按钮实现机制对安卓应用的编辑框进行分类,针对每类安卓应用编辑框设计对应的处理单元,完成将桌面平台的键盘事件到安卓应用的编辑框所对应的按钮事件的转换,有效提高了桌面平台上安卓应用中操作的便利性,显著提升了用户体验。

Description

一种桌面平台上安卓应用按钮功能的实现方法及实现装置
技术领域
本发明属于在桌面操作系统上运行移动应用的开发技术领域,具体涉及一种桌面平台上安卓应用按钮功能的实现方法及实现装置。
背景技术
Linux或Windows等桌面操作系统Android运行环境是一种在Linux或Windows操作系统上运行Android应用(App)的技术,对丰富操作系统应用生态有着重要的意义。根据实现机制的不同,Android运行环境包括Android模拟器及Android兼容环境。例如,运行于Linux系统上的Android兼容环境一般由Host端和Guest端组成,Host端运行于Linux系统上,主要包括Android容器和用户交互窗口,Android容器的作用是从Linux系统中隔离出部分内核资源来支撑Guest端运行,Guest端主要包括特殊定制的Android应用框架和Android运行时库等,Android应用都运行在Guest端。用户在Linux操作系统使用Android应用时,Android应用的窗口的实现方式为:运行于Linux系统的xDroidUI将图形缓冲区句柄发送至运行于Android容器中的Android系统,由Android系统渲染得到的Android应用用户界面,其中,xDroidUI为Android应用用户界面的一种实现。本发明中所涉及的桌面平台安卓运行环境包括Android模拟器、Android兼容运行环境等运行环境。
在桌面操作系统上运行的应用程序,往往通过敲击键盘的“回车键”来执行某些功能。例如,通过敲击键盘上的“回车键”触发后续动作,包括在各类编辑框中输入内容后敲击“回车键”进行确认以触发后续动作,比较典型的应用包括桌面版的“微信”应用程序等,在桌面版“微信”中,通过敲击“回车键”即可完成消息的发送,在“搜索栏”中敲击“回车键”即可执行搜索操作等。然而,对于Android应用来说,往往需要点击编辑框所对应的按钮来完成操作,例如,在Android版“微信”应用程序中执行发送消息、搜索等操作则需要点击“发送”、“搜索”等按钮。因此,当用户在现有的Android模拟器或Android兼容运行环境中使用Android应用时,Android运行环境虽然将键盘事件发送到了Android系统,但用户仍需要按照现有的使用方式使用Android应用,即需要点击特定按钮执行某种操作,这种方式增加了用户操作的复杂度,为用户带来了不便,降低了用户体验。
发明内容
有鉴于此,本发明提供了一种桌面平台上安卓应用按钮功能的实现方法及实现装置,能够使用户在桌面平台上运行安卓应用时通过敲击键盘即可实现部分按钮的功能。
本发明提供的一种桌面平台上安卓应用按钮功能的实现方法,具体包括以下步骤:
根据安卓应用的编辑框所对应的按钮功能实现机制的不同,将安卓应用的编辑框分类,为每类编辑框建立名录,针对每类编辑框设计处理单元;所述处理单元用于将桌面平台的键盘事件转换为安卓应用中的按钮触发消息,并将所述按钮触发消息发送至安卓平台实现按钮功能;
桌面平台依据所述名录判断当前编辑框的类型,确定对应的待执行处理单元,当所述桌面平台监测到约定的键盘事件时调用所述待执行处理单元执行当前编辑框所对应的按钮功能。
进一步地,所述按钮功能实现机制包括三类:第一类是调用安卓系统的事件处理机制,第二类是组合按键消息模拟机制,第三类是基于位置的触摸消息模拟机制;采用第一类的安卓应用编辑框为第一类编辑框,采用第二类的安卓应用编辑框为第二类编辑框,采用第三类的安卓应用编辑框为第三类编辑框。
进一步地,所述处理单元接收到按键按下事件时,将当前编辑框设置为单行属性;所述处理单元接收到按键抬起事件时,根据每类编辑框的实现机制采用不同的处理方式执行编辑框所对应的按钮功能。
进一步地,所述桌面平台获取当前安卓应用的活动编辑框的输入事件处理函数的属性值,若所述属性值不为空则判断所述当前编辑框属于所述第一类编辑框。
进一步地,所述根据每类编辑框的实现机制采用不同的处理方式执行编辑框所对应的按钮功能,包括以下步骤:
对于所述第一类编辑框,所述处理单元获取当前活动编辑框的属性值,当所述属性值为未定义时,则以发送功能属性值作为参数调用输入事件处理函数执行按钮功能;当所述属性值为确定值时,则以所述属性值作为参数调用输入事件处理函数执行按钮功能;
对于所述第二类编辑框,所述处理单元根据当前编辑框的实现机制,将组合按键消息及特定按键的按下、抬起消息顺序发送至安卓系统;
对于所述第三类编辑框,所述处理单元根据当前活动窗口及活动编辑框的坐标计算所述活动编辑框所对应的按钮坐标,将包含所述按钮坐标的坐标按键按下及抬起消息顺序发送至安卓系统。
进一步地,所述活动编辑框所对应的按钮坐标的计算采用如下公式:
x=x2+r(x3-x2)
y=y1+(y2-y1)/2
其中,(x,y)为所述活动编辑框所对应的按钮坐标,(x1,y1)为所述活动编辑框的左上顶点的坐标,(x2,y2)为所述活动编辑框的右下顶点的坐标,(x3,y3)为所述活动窗口右下顶点的坐标为,r为所述活动编辑框所对应的按钮在按钮所在区域内的位置比例。
本发明提供的一种桌面平台中安卓应用按钮功能的实现装置,包括安卓应用分析模块、安卓应用信息提取模块、安卓应用编辑框分类模块及安卓应用处理模块:
所述安卓应用分析模块,用于分析安卓应用的编辑框所对应的按钮的实现机制,根据实现机制的不同将编辑框分类,针对每类编辑框建立对应的安卓应用编辑框名录;所述安卓应用编辑框名录中包含安卓应用的包名、父窗口类名及编辑框类名;
所述安卓应用信息提取模块,用于提取当前安卓应用的包名、活动窗口的父窗口类名及活动编辑框类名;
所述安卓应用编辑框分类模块,用于根据所述安卓应用信息提取模块输出的所述包名及活动编辑框类名,以及所述安卓应用分析模块输出的所述安卓应用编辑框名录,得到当前编辑框的类型;
所述安卓应用处理模块,用于根据所述安卓应用编辑框分类模块输出的所述类型采用不同的处理模块将获取的当前键盘事件转换为当前安卓应用中活动编辑框所对应的按钮操作。
进一步地,所述安卓应用分析模块根据实现机制的不同将安卓应用的编辑框分类,编辑框包括三类:第一类是采用调用安卓系统的事件处理机制的编辑框,第二类是采用组合按键消息模拟机制的编辑框,第三类是采用基于位置的触摸消息模拟机制的编辑框;所述第一类对应的安卓应用编辑框名录为名录A,所述第二类对应的安卓应用编辑框名录为名录B,所述第三类对应的安卓应用编辑框名录为名录C。
进一步地,所述安卓应用处理模块包括第一处理模块、第二处理模块及第三处理模块;
所述第一处理模块,用于处理所述名录A中的安卓应用编辑框,获取当前安卓应用中活动编辑框的属性值,根据所述属性值确定调用输入事件处理函数所需传入的参数值,采用所述参数值调用输入事件处理函数;
所述第二处理模块,用于处理所述名录B中的安卓应用编辑框,根据当前安卓应用中活动编辑框所对应的按钮功能实现机制,构造并向安卓系统顺序发送组合按键消息及特定按键的按下、抬起消息;
所述第三处理模块,用于处理所述名录C中的安卓应用组合,获取当前安卓应用中活动窗口及活动编辑框的坐标,计算所述活动编辑框所对应的按钮坐标,构造带有所述按钮坐标的基于位置的触摸消息,将所述基于位置的触摸消息发送至安卓系统。
有益效果:
本发明根据安卓应用的按钮实现机制对安卓应用的编辑框进行分类,针对每类安卓应用编辑框设计对应的处理单元,完成将桌面平台的键盘事件到安卓应用的编辑框所对应的按钮事件的转换,有效提高了桌面平台上安卓应用中操作的便利性,显著提升了用户体验。
附图说明
图1为本发明提供的一种桌面平台上安卓应用按钮功能的实现方法的流程图。
图2为本发明提供的一种桌面平台上安卓应用按钮功能的实现装置的结构图。
图3为本发明提供的一种安卓应用按钮功能实现机制的分析方法所针对的安卓应用的窗口示意图。
其中,1-窗口,2-编辑框,3-按钮,4-内容显示框。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
一般来说,Android应用对于Android系统而言属于黑盒子,即,Android应用的内部实现对于Android系统来说是不可见的。现有的Android应用往往采用以下三种方式实现编辑框所对应的按钮功能:一是通过调用Android系统的事件处理机制实现相应的按钮功能;二是通过自定义的按键的组合操作实现按钮功能;三是Android应用采用模拟点击按钮的方式实现按钮功能。
本发明提供的一种桌面平台上安卓应用按钮功能的实现方法及实现装置,其核心思想是:基于预先分析得到的Android应用的编辑框所对应的按钮功能实现机制,针对不同的实现机制设计不同的处理方式以达到采用桌面操作系统中的实体键盘操作替代Android应用编辑框所对应的按钮功能的目的。本发明提供的方法及装置所针对的安卓应用分析对象,如图3所示,包括窗口1、编辑框2、按钮3及内容显示框4,窗口1为安卓系统的Window类,编辑框2为继承自TextView类的子类,在安卓系统的窗口1中部署编辑框2、按钮3和内容显示框4。
本发明提供的一种桌面平台上安卓应用按钮功能的实现方法,流程如图1所示,包括以下步骤:
步骤1、分析现有Android应用所采用的按钮功能的实现机制;根据实现机制对Android应用的编辑框进行分类,并建立Android应用的编辑框名录。
具体来说,可以将Android应用的编辑框分为三类,即:第一类是采用安卓系统的输入事件处理函数实现按钮功能的类型,第二类是采用组合按键消息模拟机制实现按钮功能的类型,第三类是采用基于位置的触摸消息模拟机制实现按钮功能的类型。针对每类Android应用的编辑框建立Android应用编辑框名录,例如,针对第一类建立名录A,针对第二类建立名录B,针对第三类建立名录C。Android应用编辑框名录中包含应用程序的包名、父窗口(Window)的类名、编辑框的类名,也可包含编辑框所对应的按钮实现机制。编辑框为继承TextView类的子类。
此外,为了提高可扩展性,本发明也可采用获取当前活动编辑框的输入事件处理函数(Handler)的属性值的方式,实时判断Android应用的编辑框是否属于第一类。例如,获取TextView里的Editor的输入事件处理函数Handler的mEditor.mInputContentType.onEditorActionListener的取值,如果该取值不为空,则说明当前Android应用的编辑框属于第一类。
步骤2、针对每类编辑框设计不同的处理单元,处理单元部署在Android系统中。各处理单元对于按键按下事件的处理均为将当前活动编辑框设置为单行属性;对接收到的键盘按键抬起事件的处理方式则各不相同,具体情况如下:
(1)对于第一类Android应用的编辑框建立第一处理单元。
对于第一类Android应用的编辑框来说,当Android系统监测到按键抬起事件(如“KeyUp”事件)时,获取当前活动编辑框的属性值,根据该属性值确定当前活动编辑框的功能,然后针对当前活动编辑框的功能确定调用输入事件处理函数Handler所需传入的参数值,包括以下情况:当获取到的当前活动编辑框的属性值为未定义时,则判定当前活动编辑框的功能为发送,并以发送功能对应的值作为参数调用输入事件处理函数Handler执行发送的功能;当获取到的当前活动编辑框的属性值为确定值时,则以获取到的属性值作为参数调用输入事件处理函数Handler执行相应的功能。
例如,Android应用的编辑框的父类通常为TextView类,TextView类中的onKeyDown和onKeyUp函数负责处理按键抬起及按键按下事件。因此,第一处理单元的实现过程包括:在处理按键抬起事件时,增加获取当前活动编辑框的属性值的操作,并根据属性值确定调用输入事件处理函数Handler的参数的操作过程。
具体为获取TextView子类对象的mEditor.mInputContentType.imeOptions取值,若当前imeOptions属性的取值为0,则判定当前活动编辑框的功能为发送,其下一步动作为发送,则以发送动作对应的属性值作为传入的参数值调用输入事件处理函数Handler,如以IME_ACTION_SEND或IME_ACTION_GO作为参数调用输入事件处理函数Handler执行发送的功能,即用户只需要在输入框中敲击键盘中的“回车键”即能发送当前活动编辑框内的数据;如果当前imeOptions属性的取值不为0,例如为IME_ACTION_SEARCH,则说明当前活动编辑框的功能为搜索,其下一步的动作为搜索操作,那么则以IME_ACTION_SEARCH作为参数调用输入事件处理函数Handler执行发送的功能。
(2)对于第二类Android应用的编辑框建立第二处理单元。
对于第二类Android应用的编辑框来说,当Android系统监测到按键抬起事件(如“KeyUp”事件)时,首先根据步骤1中分析得到当前活动编辑框对应按钮功能的实现机制,向Android系统发送对应的组合按键消息,使当前活动编辑框对应的按钮获得焦点;再发送特定按键的按下和抬起事件消息,模拟点击按钮的操作,执行按钮功能。本发明中的特定按键为Android系统中默认设置的执行按钮操作的按键。
例如,实现机制为Tab键与方向右键的按键组合,具体是发送模拟按下一次Tab键、一次或者两次右键的消息,使当前活动编辑框对应的按钮得到焦点;再发送构造的模拟Enter键或空格键按下keyDown和抬起keyUp事件的消息,模拟Android系统按下按钮的键盘操作,执行按钮功能(在现有Android系统中,当接收到键盘的Enter或空格键事件时,触发当前焦点的按钮);待当前按钮功能执行完毕后,再构造一次或者两次左键的消息发送至Android系统,从而使输入焦点重新回到输入编辑框中。
此外,上述发送键盘事件消息的过程一般采用调用编辑框的键盘事件函数的方式执行,如:调用根View,即调用getRootViewImpl;如果采用由Linux系统向Android系统发送消息的方式则可能会导致Android应用进入死循环。
(3)对于第三类Android应用的编辑框建立第三处理单元。
对于第三类Android应用的编辑框来说,当Android系统监测到按键抬起事件(如“KeyUp”事件)时,获取当前活动窗口及活动编辑框的坐标,采用上述坐标寸按照步骤1中分析得到的Android应用的实现机制计算当前活动编辑框所对应的按钮所在的坐标位置,然后构造带有按钮坐标的触摸事件的按下ACTION_DOWN和抬起ACTION_UP消息,将按下keyDown及抬起keyUp对应的MotionEvent消息依次发送至Android系统,接收到该消息后Android系统执行按钮操作。
例如,桌面操作系统获取到当前活动编辑框的左上顶点的坐标为(x1,y1)、右下顶点的坐标为(x2,y2),当前活动窗口右下顶点的坐标为(x3,y3),则根据步骤1中分析得到的Android应用的实现机制,采用如下公式计算当前活动编辑框所对应的按钮的坐标值(x,y):
x=x2+r(x3-x2)
y=y1+(y2-y1)/2
其中,r为当前活动编辑框所对应的按钮在按钮所在区域内的位置比例,按钮所在区域通常为编辑框的右边沿与窗口右边沿之间的区域。
然后,根据计算得到的按钮坐标值,构造坐标为(x,y)、类型为ACTION_DOWN及ACTION_UP的MotionEvent的消息,再调用当前活动编辑框的键盘事件函数(如:调用根View,即调用getRootViewImpl)的injectInputEvent将ACTION_DOWN及ACTION_UP的MotionEvent的消息顺序发送至Android系统。
各处理单元最后均将当前活动编辑框设置为非单行属性。
步骤3、当Linux系统监测到打开的Android应用的活动编辑框时,提取当前Android应用的包名、父窗口(Window)的类名及编辑框的类名;根据步骤1得到的名录判断当前编辑框的类型,根据类型选择对应的处理单元实现通过点击特定键盘按键执行Android应用的活动编辑框所对应的按钮功能的操作。
根据本发明提供的一种桌面平台中安卓应用按钮功能的实现方法,本发明设计了一种桌面平台中安卓应用按钮功能的实现装置,装置的结构如图2所示,包括Android应用分析模块、Android应用信息提取模块、Android应用编辑框分类模块及Android应用处理模块。
Android应用分析模块,用于分析Android应用的编辑框的按钮功能实现机制,根据实现机制的不同将Android应用的编辑框分类,针对每类Android应用的编辑框建立对应的Android应用编辑框名录;Android应用编辑框名录中包含Android应用的包名、父窗口(Window)的类名及编辑框的类名。
Android应用信息提取模块,用于获取当前使用的Android应用的包名、父窗口的类名及当前活动编辑框的类名。
Android应用编辑框分类模块,用于根据Android应用信息提取模块获取的Android应用包名及当前活动编辑框的类名,以及Android应用分析模块得到的Android应用编辑框名录,得到当前活动编辑框的类型。一般来说,Android应用的编辑框分为三种类型,对应了三个Android应用编辑框名录,包括名录A、名录B及名录C,其中,名录A中的编辑框采用的按钮功能实现机制是调用安卓系统的输入事件处理函数,名录B中编辑框采用的按钮功能实现机制是组合按键消息模拟机制,名录C中编辑框采用的按钮功能实现机制是基于位置的触摸消息模拟机制。
Android应用处理模块,用于根据Android应用分类模块得到的Android应用的类型采用不同的处理模块将获取的当前键盘事件转换为Android应用当前活动编辑框所对应的按钮操作。其中,针对按键抬起事件,选择与当前活动编辑框的类型相对应的处理模块将键盘事件转换为消息触发活动编辑框所对应的按钮,按钮功能执行完毕后,将当前活动编辑框设置为非单行属性;针对按键按下事件,则设置当前活动编辑框为单行属性。与Android应用类型对应的处理模块,包括第一处理模块、第二处理模块、第三处理模块,第一处理模块用于处理名录A中的Android应用编辑框,第二处理模块用于处理名录B中的Android应用编辑框,第三处理模块用于处理名录C中的Android应用编辑框。
第一处理模块,当Android系统监测到按键抬起事件(如“KeyUp”事件)时,获取当前活动编辑框的属性值,根据该属性值确定当前活动编辑框的功能,然后针对当前活动编辑框的功能确定调用输入事件处理函数Handler所需传入的参数值。
第二处理模块,当Android系统监测到按键抬起事件(如“KeyUp”事件)时,根据当前活动编辑框对应的按钮功能的实现机制,向Android系统发送对应的组合按键消息。
第三处理模块,当Android系统监测到按键抬起事件(如“KeyUp”事件)时,获取当前活动窗口及活动编辑框的坐标,采用上述坐标按照当前Android应用的实现机制计算当前活动编辑框对应的按钮所在的坐标位置,构造带有按钮坐标位置的按键按下keyDown和按键抬起keyUp事件的消息,将该消息发送至Android系统触发Android系统执行按钮操作。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种桌面平台上安卓应用按钮功能的实现方法,其特征在于,具体包括以下步骤:
根据安卓应用的编辑框所对应的按钮功能实现机制的不同,将安卓应用的编辑框分类,为每类编辑框建立名录,针对每类编辑框设计处理单元;所述处理单元用于将桌面平台的键盘事件转换为安卓应用中的按钮触发消息,并将所述按钮触发消息发送至安卓平台实现按钮功能;
桌面平台依据所述名录判断当前编辑框的类型,确定对应的待执行处理单元,当所述桌面平台监测到约定的键盘事件时调用所述待执行处理单元执行当前编辑框所对应的按钮功能。
2.根据权利要求1所述的实现方法,其特征在于,所述按钮功能实现机制包括三类:第一类是调用安卓系统的事件处理机制,第二类是组合按键消息模拟机制,第三类是基于位置的触摸消息模拟机制;采用第一类的安卓应用编辑框为第一类编辑框,采用第二类的安卓应用编辑框为第二类编辑框,采用第三类的安卓应用编辑框为第三类编辑框。
3.根据权利要求2所述的实现方法,其特征在于,所述处理单元接收到按键按下事件时,将当前编辑框设置为单行属性;所述处理单元接收到按键抬起事件时,根据每类编辑框的实现机制采用不同的处理方式执行编辑框所对应的按钮功能。
4.根据权利要求2所述的实现方法,其特征在于,所述桌面平台获取当前安卓应用的活动编辑框的输入事件处理函数的属性值,若所述属性值不为空则判断所述当前编辑框属于所述第一类编辑框。
5.根据权利要求3所述的实现方法,其特征在于,所述根据每类编辑框的实现机制采用不同的处理方式执行编辑框所对应的按钮功能,包括以下步骤:
对于所述第一类编辑框,所述处理单元获取当前活动编辑框的属性值,当所述属性值为未定义时,则以发送功能属性值作为参数调用输入事件处理函数执行按钮功能;当所述属性值为确定值时,则以所述属性值作为参数调用输入事件处理函数执行按钮功能;
对于所述第二类编辑框,所述处理单元根据当前编辑框的实现机制,将组合按键消息及特定按键的按下、抬起消息顺序发送至安卓系统;
对于所述第三类编辑框,所述处理单元根据当前活动窗口及活动编辑框的坐标计算所述活动编辑框所对应的按钮坐标,将包含所述按钮坐标的坐标按键按下及抬起消息顺序发送至安卓系统。
6.根据权利要求5所述的实现方法,其特征在于,所述活动编辑框所对应的按钮坐标的计算采用如下公式:
x=x2+r(x3-x2)
y=y1+(y2-y1)/2
其中,(x,y)为所述活动编辑框所对应的按钮坐标,(x1,y1)为所述活动编辑框的左上顶点的坐标,(x2,y2)为所述活动编辑框的右下顶点的坐标,(x3,y3)为所述活动窗口右下顶点的坐标为,r为所述活动编辑框所对应的按钮在按钮所在区域内的位置比例。
7.一种桌面平台中安卓应用按钮功能的实现装置,其特征在于,包括安卓应用分析模块、安卓应用信息提取模块、安卓应用编辑框分类模块及安卓应用处理模块:
所述安卓应用分析模块,用于分析安卓应用的编辑框所对应的按钮的实现机制,根据实现机制的不同将编辑框分类,针对每类编辑框建立对应的安卓应用编辑框名录;所述安卓应用编辑框名录中包含安卓应用的包名、父窗口类名及编辑框类名;
所述安卓应用信息提取模块,用于提取当前安卓应用的包名、活动窗口的父窗口类名及活动编辑框类名;
所述安卓应用编辑框分类模块,用于根据所述安卓应用信息提取模块输出的所述包名及活动编辑框类名,以及所述安卓应用分析模块输出的所述安卓应用编辑框名录,得到当前编辑框的类型;
所述安卓应用处理模块,用于根据所述安卓应用编辑框分类模块输出的所述类型采用不同的处理模块将获取的当前键盘事件转换为当前安卓应用中活动编辑框所对应的按钮操作。
8.根据权利要求7所述的实现装置,其特征在于,所述安卓应用分析模块根据实现机制的不同将安卓应用的编辑框分类,编辑框包括三类:第一类是采用调用安卓系统的事件处理机制的编辑框,第二类是采用组合按键消息模拟机制的编辑框,第三类是采用基于位置的触摸消息模拟机制的编辑框;所述第一类对应的安卓应用编辑框名录为名录A,所述第二类对应的安卓应用编辑框名录为名录B,所述第三类对应的安卓应用编辑框名录为名录C。
9.根据权利要求8所述的实现装置,其特征在于,所述安卓应用处理模块包括第一处理模块、第二处理模块及第三处理模块;
所述第一处理模块,用于处理所述名录A中的安卓应用编辑框,获取当前安卓应用中活动编辑框的属性值,根据所述属性值确定调用输入事件处理函数所需传入的参数值,采用所述参数值调用输入事件处理函数;
所述第二处理模块,用于处理所述名录B中的安卓应用编辑框,根据当前安卓应用中活动编辑框所对应的按钮功能实现机制,构造并向安卓系统顺序发送组合按键消息及特定按键的按下、抬起消息;
所述第三处理模块,用于处理所述名录C中的安卓应用组合,获取当前安卓应用中活动窗口及活动编辑框的坐标,计算所述活动编辑框所对应的按钮坐标,构造带有所述按钮坐标的基于位置的触摸消息,将所述基于位置的触摸消息发送至安卓系统。
CN202110459882.8A 2021-04-27 2021-04-27 一种桌面平台上安卓应用按钮功能的实现方法及实现装置 Active CN113238687B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110459882.8A CN113238687B (zh) 2021-04-27 2021-04-27 一种桌面平台上安卓应用按钮功能的实现方法及实现装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110459882.8A CN113238687B (zh) 2021-04-27 2021-04-27 一种桌面平台上安卓应用按钮功能的实现方法及实现装置

Publications (2)

Publication Number Publication Date
CN113238687A true CN113238687A (zh) 2021-08-10
CN113238687B CN113238687B (zh) 2021-11-16

Family

ID=77129351

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110459882.8A Active CN113238687B (zh) 2021-04-27 2021-04-27 一种桌面平台上安卓应用按钮功能的实现方法及实现装置

Country Status (1)

Country Link
CN (1) CN113238687B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114416044A (zh) * 2022-03-28 2022-04-29 北京麟卓信息科技有限公司 一种Linux平台下安卓应用的输入方法及装置
CN114489920A (zh) * 2022-04-18 2022-05-13 北京麟卓信息科技有限公司 一种Linux平台上安卓应用的输入方法
CN114490140A (zh) * 2022-04-10 2022-05-13 北京麟卓信息科技有限公司 一种Linux平台上安卓应用的低延迟输入方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104740872A (zh) * 2015-04-13 2015-07-01 北京奇虎科技有限公司 模拟安卓环境中游戏程序运行控制方法及装置
CN108694073A (zh) * 2018-05-11 2018-10-23 腾讯科技(深圳)有限公司 虚拟场景的控制方法、装置、设备及存储介质
CN112328356A (zh) * 2020-10-21 2021-02-05 成都安易迅科技有限公司 Android与Windows的互通方法、装置、存储介质及计算机设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104740872A (zh) * 2015-04-13 2015-07-01 北京奇虎科技有限公司 模拟安卓环境中游戏程序运行控制方法及装置
CN108694073A (zh) * 2018-05-11 2018-10-23 腾讯科技(深圳)有限公司 虚拟场景的控制方法、装置、设备及存储介质
CN112328356A (zh) * 2020-10-21 2021-02-05 成都安易迅科技有限公司 Android与Windows的互通方法、装置、存储介质及计算机设备

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114416044A (zh) * 2022-03-28 2022-04-29 北京麟卓信息科技有限公司 一种Linux平台下安卓应用的输入方法及装置
CN114416044B (zh) * 2022-03-28 2022-07-12 北京麟卓信息科技有限公司 一种Linux平台下安卓应用的输入方法及装置
CN114490140A (zh) * 2022-04-10 2022-05-13 北京麟卓信息科技有限公司 一种Linux平台上安卓应用的低延迟输入方法
CN114490140B (zh) * 2022-04-10 2022-07-05 北京麟卓信息科技有限公司 一种Linux平台上安卓应用的低延迟输入方法
CN114489920A (zh) * 2022-04-18 2022-05-13 北京麟卓信息科技有限公司 一种Linux平台上安卓应用的输入方法
CN114489920B (zh) * 2022-04-18 2022-07-05 北京麟卓信息科技有限公司 一种Linux平台上安卓应用的输入方法

Also Published As

Publication number Publication date
CN113238687B (zh) 2021-11-16

Similar Documents

Publication Publication Date Title
CN113238687B (zh) 一种桌面平台上安卓应用按钮功能的实现方法及实现装置
CN113220391B (zh) 一种安卓应用按钮功能实现机制的分析方法及装置
CN102053911A (zh) 基于Android的自动化测试方法、系统及移动终端
CN102841789B (zh) 一种对浏览器中的用户操作进行录制和回放的方法和装置
CN112041791B (zh) 一种显示输入法虚拟键盘的方法及终端
CN110457214B (zh) 应用测试方法及装置、电子设备
CN103559445A (zh) 一种应用程序交互控制方法及装置
CN110837466B (zh) 一种基于源代码打桩的嵌入式软件动态测试方法
CN109947650A (zh) 脚本步骤处理方法、装置和系统
CN111723002A (zh) 一种代码调试方法、装置、电子设备及存储介质
CN102184076B (zh) 一种针对java程序的移动终端输入控制方法和装置
CN117057318A (zh) 领域模型生成方法、装置、设备以及存储介质
Liñán et al. Automated extraction of augmented models for android apps
CN104679506B (zh) 一种终端
CN111866254B (zh) 一种智能识别划词的快速拨号系统及其实施方法
CN113010825A (zh) 一种数据处理方法和相关装置
CN113552977A (zh) 数据处理方法、装置、电子设备及计算机存储介质
CN106197394A (zh) 导航方法及装置
CN109460310A (zh) 基于web接口的信息收集系统、方法、设备及存储介质
CN112069079B (zh) 一种性能测试的方法、相关装置及存储介质
CN110928539B (zh) 代码工程生成方法、装置、电子设备及可读存储介质
CN109032907B (zh) 面向设备应用的数据监控方法及系统
CN113223520A (zh) 一种软件操作实景语义理解的语音互动方法、系统及平台
CN110858174A (zh) 一种移动设备聊天软件的图片审计方法
KR100932603B1 (ko) 모바일 gui 테스트 방법 및 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant