本技术涉及通信,具体提供一种基于安卓系统的ui布局获取方法、控制装置和介质。
背景技术:
1、安卓系统android是一种针对移动设备的开源软件平台,广泛应用于智能手机、平板电脑、学习机、电子书等产品。
2、系统ui(user interface用户界面)作为产品的人机交互界面,能够最直观的体现产品风格,因此产品生产商都希望通过对ui进行修改实现产品的差异化。ui最常进行的修改就包括调整控件布局、替换图片及增删某些项。在进行app的研发和测试工作中,越来越多的人开始关注移动应用的ui界面图片、ui布局结构分析和ui自动化测试需求,为了完成这些需求则需要使用计算机与安卓设备进行数据传输,当下从计算机获取安卓端ui布局结构信息常用的方式是使用adb命令进行。而在计算机上使用adb命令操作较为复杂,并且整个流程完成响应耗时长。若需要对设备的ui页面进行多步骤的连续操作,这时对整个ui页面画面和ui布局结构信息的获取时效性要求会更高。
3、ui分析场景一,为对轮播图的ui分析。通常会需要获取所有的轮播图,如果有三张轮播大图一直处于轮播状态,后台对于轮播图常规的配置是5秒换下一张图,在获取轮播图的ui布局时,以常规的adb命令进行操作是执行滑动后截图、滑动后截图、滑动后截图,执行三次就可以获取到三张轮播图。对每一张轮播图片进行截图操作需要5秒以上否则无法保证能获取到正确的图片。
4、ui分析场景二,对获取搜索框热词的搜索结果测试。搜索框热词是众多app常用的功能,根据搜索框内显示的热词搜索后跳转到对应的热词内容结果页。
5、对热词结果页的测试验证则需要获取热词内容。需要获取2次ui布局结构信息,一次是点击搜索按钮的同时获取当前ui布局结构信息,从ui布局结构信息中提取出搜索框中的热词,第二次是跳转到搜索结果页再获取一次ui布局结构信息。
6、按照传统的使用adb命令获取ui布局结构信息的方式需要通过获取当前屏幕上的ui布局结构信息的层次结构xml快照,再使用adb pull从设备复制文件到本地计算机。每一次的获取都需要执行二次adb命令。
7、ui分析场景三,响应点击操作。app上有较多的文字,采用传统的adb命令,需要先获取ui布局结构信息,将设备上的ui布局结构信息传输到计算机,从ui布局结构信息xml文件中解析查找对应的坐标再通过adb命令发送点击指令。
8、通过上述基于adb命令进行ui界面分析和app测试的示例可以看出,存在四个问题:
9、1、adb命令为串联运行,需等待上一步骤完成才能进行下一步,如ui分析场景一的滑动后截图、滑动后截图、滑动后截图;执行三次。
10、2、adb命令执行时间较长、对于时效性要求高的操作则无法满足,如ui分析场景一中每一张轮播图片进行截图操作需要5秒以上,ui分析场景二中,获取两次xml快照,获取ui布局和截图的时间比较长。
11、3、adb生产的文件在设备上,占用设备存储空间,如ui分析场景二中xml快照先放在安卓设备的磁盘空间进行文件存储,需使用pull才传输到计算机。
12、4、若需要在计算机处理每次都需要先收到计算机发送的命令,然后响应命令,将设备上的ui布局结构信息xml快照传输到计算机。
技术实现思路
1、为了克服上述缺陷,本技术提供了一种基于安卓系统的ui布局获取方法、控制装置和介质,实现低延迟操作以及实现对于文字传输的指令直接进行操作,提高操作效率。
2、在第一方面,本技术提供了一种基于安卓系统的ui布局获取方法,包括:
3、安卓系统运行,创建用于监听ui布局的线程,得到ui布局信息;
4、所述安卓系统所在的安卓设备与pc机连接;
5、将所述ui布局信息从所述安卓设备发送至所述pc机。
6、进一步地,所述将所述ui布局信息从所述安卓设备发送至所述pc机步骤之前,所述方法还包括:
7、判断所述ui布局信息是否发生变化;
8、所述将所述ui布局信息从所述安卓设备发送至所述pc机包括:
9、若发生变化,则将变化后的ui布局信息从所述安卓设备发送至所述pc机。
10、进一步地,所述将变化的ui布局信息从所述安卓设备发送至所述pc机步骤之后,所述方法还包括:
11、将变化后的ui布局信息保存在所述安卓设备的内存中;
12、删除所述内存中变化前的ui布局信息。
13、进一步地,所述创建用于监听ui布局的线程,得到ui布局信息包括:
14、创建用于监听ui布局的第一线程,得到ui布局的界面元素及其属性信息。
15、进一步地,所述创建用于监听ui布局的第一线程,得到ui布局的界面元素及其属性信息包括:
16、创建用于监听ui布局的第一线程,基于uiautomation模块得到ui布局文件,其中所述ui布局文件包括ui布局的界面元素及其属性;
17、将所述ui布局文件转换为xml格式信息;
18、将所述xml格式信息转换为第一二进制数据流;
19、所述将所述ui布局信息从所述安卓设备发送至所述pc机括:
20、将所述第一二进制数据流从所述安卓设备发送至所述pc机。
21、进一步地,所述创建用于监听ui布局的线程,得到ui布局信息包括:
22、创建用于监听ui布局的第二线程,得到界面图片信息。
23、进一步地,所述创建用于监听ui布局的第二线程,得到界面图片信息包括:
24、创建用于监听ui布局的第二线程,基于mediacodec模块得到界面图片;
25、将所述界面图片转换为第二二进制数据流;
26、所述将所述ui布局信息从所述安卓设备发送至所述pc包括:
27、将所述第二二进制数据流从所述安卓设备发送至所述pc机。
28、进一步地,所述方法还包括:
29、创建第三线程,用于监听所述安卓设备接收到的操作指令,其中,所述操作指令由所述pc机发送;
30、基于所述ui布局的界面元素及其属性信息响应所述操作指令。
31、进一步地,所述基于所述ui布局的界面元素及其属性信息响应所述操作指令包括:
32、在所述操作指令为基于文字的操作指令时,解析所述指令,至少得到执行动作和目标对象;
33、根据所述ui布局的界面元素及其属性信息查找所述目标对象的坐标位置;
34、根据所述坐标位置响应所述执行动作。
35、在第三方面,提供一种控制装置,该控制装置包括处理器和存储装置,所述存储装置适于存储多条程序代码,所述程序代码适于由所述处理器加载并运行以执行上述第一方面技术方案中任一项技术方案所述的基于安卓系统的ui布局获取方法。
36、在第四方面,提供一种计算机可读存储介质,该计算机可读存储介质其中存储有多条程序代码,所述程序代码适于由处理器加载并运行以执行上述第一方面的技术方案中任一项技术方案所述的基于安卓系统的ui布局获取方法。
37、本技术上述一个或多个技术方案,至少具有如下一种或多种有益效果:
38、本技术可以实时、主动的将ui布局的界面元素及其属性信息以及界面图片信息分别从安卓端至计算机端,实现低延迟操作。
39、本技术可以接收pc端的操作指令,实现对于文字传输指令直接进行点击操作,从效率上极大的减少了操作步骤和操作时间。