博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
〖Android〗屏幕触屏事件录制与回放
阅读量:6707 次
发布时间:2019-06-25

本文共 719 字,大约阅读时间需要 2 分钟。

需求:

  不管是做自动化测试的,还是传媒技术的,自动化操作Android App是一种操作需求;

  自动化的操作可以节省很多的人力资源投入;

 

实现:

  Android UI界面的自动化,通常有两个方法:

  1. 使用得较多的是input命令,input可以直接输入“所有按键、屏幕点击、拖动和直接输入文本内容”

  2. 较为复杂的操作使用getevent 和 sendevent来完成,理论上可以操作一切触屏的输入

 

问题:

  通常,input使用起来会特别简单方便,可以把坐标记录好,写写脚本就完事了;

  但是涉及到复杂的操作,如 长按等 input就不能完成了;

 

思路:

  于是还是回到了 getevent和sendevent方法,sendevent命令本身就是只简单调用一下ioctl来向 /dev/input/eventX 发送控制;

  但是由于 Shell脚本在执行过程中,效率本身就是个问题,使用Shell脚本回放录制的内容,会出现意想不到的问题,如:

    一个操作被分割成两个操作来执行, 这本身就不是我们期望的;

 

解决:

  所以,我写在写回放脚本时,就把 录制到的信息,制作成一个C语言文件,直接以二进制形式来执行,这样子就不会出现操作被分割的现象了;

  源代码:

 

相关链接:

  1. sendevent.c: https://github.com/android/platform_system_core/blob/master/toolbox/sendevent.c

  2. 编译工具请使用NDK: http://developer.android.com/tools/sdk/ndk/

转载地址:http://lwilo.baihongyu.com/

你可能感兴趣的文章
How to check Ubuntu version
查看>>
qt 试用 (3)配置编译源代码及调试
查看>>
(转)用CSS3移除点击交互元素的高亮背景
查看>>
遍历json获得数据的几种方法
查看>>
php Collection类的设计
查看>>
c++中的计时器代码
查看>>
语义Web和本体开发相关技术
查看>>
Mysql集群读写分离(Amoeba)
查看>>
Quest for sane signals in Qt - step 1 (hand coding a Q_OBJECT)
查看>>
SpringBoot的注解:@SpringBootApplication注解 vs @EnableAutoConfiguration+@ComponentScan+@Configuration...
查看>>
SQL Server性能调优之执行计划深度剖析 第一节 浅析SQL执行的过程
查看>>
利用自定义IHttpModule来实现URL地址重写
查看>>
在网页上嵌入 PowerPoint 演示文稿
查看>>
javascript日期格式化函数,跟C#中的使用方法类似
查看>>
Android杂谈--Activity、Window、View的关系
查看>>
使用delphi 开发多层应用(十)安全访问服务器
查看>>
JavaScript计算字符串中每个字符出现的次数
查看>>
mvc中的ViewData用到webfrom中去
查看>>
[转载]java.lang.OutOfMemoryError: bitmap size exceeds VM budget解决方法
查看>>
SKY IM-A800S 驱动下载
查看>>