使用java編寫monkeyrunner腳本

要使用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();

	}
}

發佈了26 篇原創文章 · 獲贊 5 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章