Monkeyrunner 寫指令碼的技巧(shell
命令,檔案操作)
Android 4.0已經發布了,令我失望的一點是monkeyrunner工具本身沒有大的提高,SDK看上去沒有什麼變化,但是之前曾將看到趨勢,源碼已經引入Ichampview和ease等新的模組,可惜源碼還沒有發布,不知道具體情況,況且現在的monkeyrunner也無法執行。感覺目前sdk列出的功能太少,在寫指令碼的時候,限制太多,好在monkeyrunner的指令碼是python形式的,豐富的庫檔案可以彌補這一缺陷
1. adb命令的執行:os.system()
例如 adb root, adb push, adb pull, 可以用 os.system()來實現,例如os.system("adb push e:\\tmp\\email_eception.log /sdcard/")
2.目錄操作: os.chdir(),os.getcwd()
os.chdir('e:\\tmp')
os.getcwd()
3. 建立以時間命名的檔案夾 (很實用的一個方法)
首先擷取時間:time.ctime(), 獲得的時間格式如"Mon Oct 31 15:48:30 2011",因為window不支援檔案夾名包括“:”,並且帶有空格也會帶來相容性的問題,可以用字串處理函數str.replace來將空格用“_”替換,將“:”刪除,st2.replace(" ","_").replace(":","")
4. 判斷檔案是否存在
os.path.exists(), 返回True 或 False
os.path.exists("D:\\shellwork\\devtool\\setup\\music\\setup.bat")
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImagedevice = MonkeyRunner.waitForConnection()#device.removePackage ('ApiDemos.apk')device.removePackage ('com.example.android.notepad')print ('卸載成功')MonkeyRunner.sleep(15)device.installPackage('ApiDemos.apk')print ('安裝成功')
1. adb命令的執行:os.system()
例如 adb root, adb push, adb pull, 可以用 os.system()來實現,例如os.system("adb push e:\\tmp\\email_eception.log /sdcard/")
2.目錄操作: os.chdir(),os.getcwd()
os.chdir('e:\\tmp')
os.getcwd()
3. 建立以時間命名的檔案夾 (很實用的一個方法)
首先擷取時間:time.ctime(), 獲得的時間格式如"Mon Oct 31 15:48:30 2011",因為window不支援檔案夾名包括“:”,並且帶有空格也會帶來相容性的問題,可以用字串處理函數str.replace來將空格用“_”替換,將“:”刪除,st2.replace(" ","_").replace(":","")
4. 判斷檔案是否存在
os.path.exists(), 返回True 或 False
os.path.exists("D:\\shellwork\\devtool\\setup\\music\\setup.bat")
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImagedevice = MonkeyRunner.waitForConnection()#device.removePackage ('ApiDemos.apk')device.removePackage ('com.example.android.notepad')print ('卸載成功')MonkeyRunner.sleep(15)device.installPackage('ApiDemos.apk')print ('安裝成功')