最近有一個測試需求,須要重複性的滑動手機、對手機進行觸摸、點擊操做等,因此就須要實現一個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