失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Android:自动点击屏幕

Android:自动点击屏幕

时间:2019-09-22 06:19:16

相关推荐

Android:自动点击屏幕

在开发的过程中会遇到自动测试功能,比如如何自动点击按钮进行测试,当然可以使用按键精灵等工具进行测试,不过如何在程序进程中测试呢,下面就介绍下adb shell的操作,通过shell进行点击等操作。

1.模拟滑动

input swipe startX startY endX endY duration(ms)

2.单击某点

input tap x y

3.长按某点

input touchscreen swipe x y x y duration(ms)

4.单击某个键

input keyevent keyCode

5.长按某个键

input keyevent --longpress keyCode

一、如下以点击为例,传入当期点所在屏幕位置或者比例

package cn.test.autotouch;import android.app.Activity;import java.io.IOException;public class AutoTouch {public int width = 0;public int height = 0;/*** 传入在屏幕中的比例位置,坐标左上角为基准* @param act 传入Activity对象* @param ratioX 需要点击的x坐标在屏幕中的比例位置* @param ratioY 需要点击的y坐标在屏幕中的比例位置*/public void autoClickRatio(Activity act, final double ratioX, final double ratioY) {width = act.getWindowManager().getDefaultDisplay().getWidth();height = act.getWindowManager().getDefaultDisplay().getHeight();new Thread(new Runnable() {@Overridepublic void run() {// 线程睡眠0.3stry {Thread.sleep(300);} catch (InterruptedException e) {e.printStackTrace();}// 生成点击坐标int x = (int) (width * ratioX);int y = (int) (height * ratioY);// 利用ProcessBuilder执行shell命令String[] order = { "input", "tap", "" + x, "" + y };try {new ProcessBuilder(order).start();} catch (IOException e) {e.printStackTrace();}}}).start();}/*** 传入在屏幕中的坐标,坐标左上角为基准* @param act 传入Activity对象* @param x 需要点击的x坐标* @param y 需要点击的x坐标*/public void autoClickPos(Activity act, final double x, final double y) {width = act.getWindowManager().getDefaultDisplay().getWidth();height = act.getWindowManager().getDefaultDisplay().getHeight();new Thread(new Runnable() {@Overridepublic void run() {// 线程睡眠0.3stry {Thread.sleep(300);} catch (InterruptedException e) {e.printStackTrace();}// 利用ProcessBuilder执行shell命令String[] order = { "input", "tap", "" + x, "" + y };try {new ProcessBuilder(order).start();} catch (IOException e) {e.printStackTrace();}}}).start();}}

二、使用方法

/***************************定义*****************************///声明一个Activitypublic static Activity staticActivity;//初始化AutoTouch对象public static AutoTouch autoTouch = new AutoTouch();//在onCreate中对staticActivity赋值staticActivity = this;/***************************使用*****************************///传入所在比例autoTouch.autoClickRatio(staticActivity, 0.4375, 0.537); //出入坐标autoTouch.autoClickPos(staticActivity, 840, 580);

如果觉得《Android:自动点击屏幕》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。