好了,廢話不多說,我們直接進入主題吧。之是以想把這個過程寫下來,是由于經過我這段時間在網上的搜尋和學習,發現關于monkeyrunner的教程極少,幾乎都是把android官方材料自己翻譯了一下擺上去的,對于第一次接觸的同學來說,可能還不太詳細。我在這裡就想以完全初學者的角度出來,真正從0開始,記錄我的學習過程。本文僅針對真正的菜鳥,大蝦們請飄過哈,嘿嘿。
環境搭好後,接下來就開始我們的使用之旅了。網上的monkeyrunner很多都直接從執行個體代碼入手,寫得很粗略,也沒有把詳細步驟說明下來,搞得我确實廢了兩三天才摸到頭緒。是以我這裡會寫得很詳細,盡量幫助大家能夠輕易地看懂。詳細步驟如下(在模拟器上運作,由于不知道什麼原因圖檔不能正常顯示,是以我還是直接寫指令吧):
1. 用Elipse打開andorid的模拟器或者在CMD中用andorid指令打開模拟器,如下:
Comments: 定位到android SDK的路徑下的tools目錄,運作上面這個指令。“AVD2.3.3”是我的模拟器的名字,這個指令是每個人自己命名的,用的時候需改成實際的名字。
2. 這個時候,如果一切正常的話,模拟器應該可以啟動起來了。(運作monkeyrunner之前必須先運作相應的模拟器,不然monkeyrunner無法連接配接裝置。這點很多教程上都沒有說,我也試了好多次才明白過來)。接着,我們打開另一個CMD視窗(前一個不要關),還是定位到tools目錄,輸入指令"monkeyrunner",回車,将進入shell指令互動模式。
好了,接下來就可以導入monkeyrunner所要使用的子產品了。當然是我們的"From...import..."
直接在shell指令中輸入: from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice 回車
OK,這步完成之後,我們就可以開始和模拟器“勾兌”了,哈哈,指令如下:
device = MonkeyRunner.waitForConnection()
沒有報錯的話,就代表和模拟器勾兌成功,我們可以接着“騷擾”它了。接下來,我們可以在裡面裝點東西了。輸入如下指令,并傳入你的apk所在相對路徑即可。我這安裝的是著名的ApiDemos。成功了會傳回true。如果沒有傳回true,一般都是文法錯誤或者你傳入的相對路徑有問題,仔細檢查下就沒問題了。
device.installPackage("../samples/android-10/ApiDemos/bin/Apidemos.apk")
接下來,我們就可以啟動其中的任意activity了,隻要傳入package和activity名稱即可。指令如下:
device.startActivity(component = "com.example.android.apis/com.example.android.apis.ApiDemos")
此時模拟器會自動打開ApiDemos這個應用程式的首頁。
接下來我們還可以給模拟器發送更多的操作,如模拟任何按鍵時間和滾動等,并且可以截圖。指令格式和上述指令類似,我就不再累述了。
當然,我們也可以不這樣麻煩得一行行地輸入指令,可以将從“from...import...”開始的所有後面的語句都寫到一個python檔案裡面,例如 monkeyrunnerTest.py,然後我們再從指令行直接通過monkeyrunner運作它即可。比如,我們還是用上面的例子,文法如下:
D:\Software\Android2.3.3\android-sdk-windows\tools>monkeyrunner monkeyrunnerTest.py
接下來monkeyrunner會自動調用monkeyrunnerTest.py,并執行其中的語句,相當友善。
今天暫時先寫到這裡,今天主要的關鍵是明白了如何使得monkeyrunner和模拟器進行正确的連接配接和相關的操作,具體的monkeyrunner的方法和屬性大家可以參考官方的文檔,上面非常詳細了,呵呵。