要使用java編寫monkeyrunner腳本,目前本人使用的SDK版本(22.6)。Eclipse裏面需要導入sdk/toos/lib目錄下的一些jar包,導入chimpchat.jar和sdklib.jar,jython-standalone-2.5.3.jar即可,其餘一些jar包會自動導入。下面給出示例代碼:
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Collection;
import java.util.HashMap;
import com.android.chimpchat.adb.AdbBackend;
import com.android.chimpchat.adb.AdbChimpDevice;
import com.android.chimpchat.core.ChimpImageBase;
import com.android.chimpchat.core.IChimpImage;
import com.android.chimpchat.core.TouchPressType;
public class Test {
public static void main(String[] args) throws Exception {
AdbBackend adb = new AdbBackend();
AdbChimpDevice device = (AdbChimpDevice) adb.waitForConnection(5000,
"788a6ab5"); //後面的參數爲設備id號
Thread.sleep(5000);
device.drag(530, 1590, 530, 130, 10, 500); //使用的真機爲上滑解鎖屏幕
Thread.sleep(2000);
//設置截圖的文件名,以當前系統時間命名
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");//設置日期格式
String time = dateFormat.format(new Date());// new Date()爲獲取當前系統時間
String fileName = time + ".png";
//將截圖存放在設備裏面
//device.shell("screencap -p /sdcard/screenshot/" + fileName);
//將截圖存放於本地D盤下
device.takeSnapshot().writeToFile("D:\\screen\\picture\\" + fileName,
"png");
Thread.sleep(2000);
device.press("KEYCODE_MENU", TouchPressType.DOWN_AND_UP);//按下菜單鍵
device.takeSnapshot().getSubImage(0, 1353, 1080,
1920-1353).writeToFile("D:\\screen\\picture\\" + fileName,
"png"); //按規格截取圖片存放於本地
Thread.sleep(2000);
//截取圖片與本地圖片進行對比
IChimpImage picture =
ChimpImageBase.loadImageFromFile("D:\\screen\\picture\\menu.png");
System.out.println(device.takeSnapshot().getSubImage(0, 1353, 1080,
1920-1353).sameAs(picture, 1.0));//圖片相同打印true,否則打印false
device.drag(900, 1100, 200, 1100, 10, 500);
Thread.sleep(2000);
//長按圖標進行拖動
device.touch(412, 1084, TouchPressType.DOWN);
Thread.sleep(1500);
device.drag(412, 1084, 668, 1084, 1, 2000);
Thread.sleep(1500);
device.touch(668, 1084, TouchPressType.UP);
//啓動系統設置
String action = "android.intent.action.MAIN";
Collection<string> categories = new ArrayList<string>();
categories.add("android.intent.category.LAUNCHER");
device.startActivity(null, action, null, null, categories,
new HashMap<string object="">(),
"com.android.settings/.Settings", 0);
adb.shutdown();
}
}