需求:

  不管是做自动化测试的,还是传媒技术的,自动化操作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/

更多相关文章

  1. Android(安卓)--- Activity生命周期
  2. 锁屏界面
  3. android ndk编译x264开源(用于android的ffmpeg中进行软编码)
  4. android 零星调试笔记
  5. Android下Excel的操作
  6. 从 Android(安卓)Sample ApiDemos 中学习 android.animation API
  7. Android常用控件
  8. SlidingMenu和ActionBarSherlock结合做出出色的App布局,Facebook
  9. 【Android】文件读写操作(含SDCard的读写)

随机推荐

  1. [0]Android框架揭秘-概论
  2. android用户输入系统
  3. Android学习之路之ListView的使用
  4. [Android]用户界面设计
  5. 禁止Eclipse中xml文件Run as的XSL Transf
  6. Android官方推荐全局对象传递数据
  7. Android(安卓)面试题002 android的Handle
  8. Android业务组件化之子模块SubModule的拆
  9. LeakCanary:检测Android中的内存泄漏
  10. Android中使用Java代码动画改变背景颜色