最近有一个测试需求,须要重复性的滑动手机、对手机进行触摸、点击操做等,因此就须要实现一个Android模拟人工操做的功能。一开始想写一个APK,但在实现过程当中赶上了麻烦,好像须要系统应用权限等,笔者自己并非作Android开发的,因此就没有实现。最后是经过adb shell 实现了该功能。Java开启线程,结合键盘和鼠标事件,使用adb shell控制手机。详解以下。java
1、所需知识shell
一、最基础的adb shell 指令。input tab 等。windows
二、Java自动化基础知识。java.awt.Robotide
三、无工具
2、所需环境测试
硬件:一台电脑、一部手机、一根数据线。软件:jdk、adb工具编码
3、编码线程
一、Java模拟鼠标点击操做方法调试
//实现鼠标左键点击操做orm
public static void pressMouse(Robot r,int m,int delay){
r.mousePress(m);
r.delay(10);
r.mouseRelease(m);
}
二、Java模拟鼠标移动操做
//实现将鼠标移动到电脑屏幕 x=518,y=339的位置
Robot rb = new Robot();
rb.mouseMove(518,339);
rb.delay(500);
三、Java模拟键盘输入操做
public static void pressKey(Robot robot,int keyEvent){
robot.keyPress(keyEvent);
robot.keyRelease(keyEvent);
robot.delay(50);
}
//该代码可实现输出“a”
pressKey(rb,KeyEvent.VK_A);
四、简单的adb指令
adb shell //进入shell
input tab 980 900 //点击手机 x=980 y=900处
input swipe 540 480 540 190 //手机向上滑动290像素
input keyevent 4 //返回
五、开启Java线程
new Thread(){
Robot rb = new Robot();
public void run() {
while (true) {
//to do
} }
4、使用方法
经过上述4个方法已经可以实现使用Java自动化控制Android手机达到控制手机的目的。具体使用方法以下:
一、打开cmd(windows 控制台)
二、cd 到 platform-tools文件夹(该文件可经过附件下载)下
三、打开手机开发者选项并开启USB调试选项(各手机型号开启不同,可自行百度)
四、输入 adb shell
五、输入 input tab 980 900
六、输入 input swipe 540 480 540 190
七、输入 input keyevent 4