前言
Instrumentation本身是Android用来做测试的工具,可以通过它监测系统与应用程序之间的交互。
本文就介绍Instrumentation在应用中的简单使用。
正文
模拟事件需要权限
<uses-permission android:name="android.permission.INJECT_EVENTS"/>
我测试时用的系统应用,所以
模拟按键
public static void sendSystemKey(final int keyCode) {
try {
new Thread(new Runnable() {
@Override
public void run() {
(new Instrumentation()).sendKeyDownUpSync(keyCode);
}
}).start();
} catch (Exception e) {
e.printStackTrace();
}
}
模拟触摸事件
public static void sendTouchXY(final int x, final int y) {
try {
new Thread(new Runnable() {
@Override
public void run() {
Instrumentation instrumentation = new Instrumentation();
instrumentation.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),
SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, x, y, 0));
instrumentation.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),
SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, x, y, 0));
}
}).start();
} catch (Exception e) {
e.printStackTrace();
}
}
参考文章
历史上的今天
暂无评论...
随机推荐
MediaPlayer源码介绍2
前言之前介绍MediaPlayer ,接上文《MediaPlayer JNI层介绍》(看做《MediaPlayer源码介绍1》)介绍到mediaplayer.cpp,这也是一个代理,真正处理的并不是这个。今天以setDataSource()为例继续分析。涉及代码frameworks\av\...
Settings源码分析之蓝牙(1)
源码:Android 6.0应用:Settings目录:Settings\src\com\android\settings\bluetooth 上一回我们简单分析了Settings加载和启动过程(《Android 6.0 Settings源码简单分析》),现在我们来看看S...
舒婷:人心的法则
为一朵花而死去是值得的冷漠的车轮粗暴的靴底使春天的彩虹在所有眸子里黯然失色既不能阻挡又无处诉说那么,为抗议而死去是值得的 为一句话而沉默是值得的远胜于大潮雪崩似地跌落这句话被嘴唇紧紧封锁汲取一生全部诚实与勇气这句话,不能说那么,为不背叛而沉默是值得的...
杨绛:人生有命
神明的大自然,对每个人都平等。不论贫富尊卑、上智下愚,都有灵魂,都有个性,都有人性。但是每个人的出身、遭遇和天赋的资质才能,却远不平等。有富贵的、有贫贱的,有天才、有低能,有美人、有丑八怪。凭什么呢?人各有“命”。“命”是全不讲理的。孔子曾慨叹:“命矣夫!斯人也而有斯疾也!斯人也而有斯疾也!”(《论...
使用adb shell命令启动动画
adb shell 命令Adb的全称为Android Debug Bridge:android调试桥梁。Android的初衷是用adb这样的一个工具来协助开发人员在开发android应用的过程中更快更好的调试apk,因此adb具有安装卸载apk、拷贝推送文件、查看设备硬件信息、查看应用程序占用...
Android中onConfigurationChanged的总结
前言记录一下Android设备横屏、竖屏和分屏的适配说明。正文Android应用中不在AndroidManifest.xml做配置时,我的如下(这里配置很多,看你自己需求删减,这里也不一一介绍):<activity android:name=".MainActivity" ...