zoukankan      html  css  js  c++  java
  • 〖Android〗屏幕触屏事件录制与回放

    需求:

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

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

    实现:

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

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

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

    问题:

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

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

    思路:

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

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

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

    解决:

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

      源代码:https://github.com/scue/android_tap_record

    相关链接:

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

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

  • 相关阅读:
    Appsacn 定期自动化扫描
    安全扫描工具 AppScan
    安全扫描工具 Netsparker
    Appium环境搭建
    selenium元素定位大全
    浅谈 WebDriver如何应对不同浏览器
    自动化环境搭建
    三次握手四次挥手
    通俗讲解python__new__()方法
    第十三章、元类之控制类的调用过程
  • 原文地址:https://www.cnblogs.com/scue/p/4148211.html
Copyright © 2011-2022 走看看