【发布时间】:2011-10-13 16:28:23
【问题描述】:
后台进程或软键盘是否可以创建触摸事件并将它们发送到屏幕,就像屏幕被实际触摸一样?
即模拟触摸屏事件。
【问题讨论】:
-
您是为了测试目的还是为了实际生产代码而这样做?
标签: android touch-event
后台进程或软键盘是否可以创建触摸事件并将它们发送到屏幕,就像屏幕被实际触摸一样?
即模拟触摸屏事件。
【问题讨论】:
标签: android touch-event
SDK 附带了一个名为Monkey 的工具,它可以生成伪随机的用户事件流,例如:
您可以使用 Monkey 以随机但可重复的方式对您正在开发的应用程序进行压力测试。
还有monkeyrunner tool,它提供了一个API,用于编写从Android代码外部控制Android设备或模拟器的程序。使用 monkeyrunner,您可以编写一个 Python 程序来安装 Android 应用程序或测试包、运行它、向其发送击键、截取其用户界面的屏幕截图并将屏幕截图存储在工作站上。
【讨论】:
对于按钮按下,您可以使用以下内容:
dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN,
KeyEvent.KEYCODE_BACK));
dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP,
KeyEvent.KEYCODE_BACK));
可在此处找到可用键码列表: http://developer.android.com/reference/android/view/KeyEvent.html
对于触摸屏事件,您可以使用:
dispatchTouchEvent(MotionEvent.obtain(
SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),
MotionEvent.ACTION_DOWN, Xinput, Yinput, 0));
【讨论】: