MonkeyRunner——如何在实体机上启动一个程序
閑來(lái)無(wú)事,研究了下MonkeyRunner調(diào)試實(shí)體機(jī)。之前JDK,Python,SDK,MonkeyRunner環(huán)境都已配置完畢,這里就不一一詳述了。
一)啟動(dòng)MonkeyRunner并連接設(shè)備:
打開CMD進(jìn)入到SDK安裝目錄中的tools,運(yùn)行命令:“monkeyrunner” ,進(jìn)入shell命令交互模式(若你環(huán)境變量配置好了,則不需進(jìn)入tools目錄)。然后導(dǎo)入所需模塊,運(yùn)行命令:
from com.android.monkeyrunner import MonkeyRunner
輸入“MonkeyDevice”回車后,運(yùn)行命令:
device=MonkeyRunner.waitForConnection(”device id")
設(shè)備就可以成功連接了(獲取device id:在CMD 中運(yùn)行命令“adb devices”就可以獲取device id)。
?
二)安裝并啟動(dòng)設(shè)備的應(yīng)用程序:
我們可以通過(guò)以下兩個(gè)命令安裝并啟動(dòng)設(shè)備的應(yīng)用程序"
device.installPackage(“xxx.apk”)
device.startActivity(packageName/startActivity)
?
三)獲取packageName和startActivity:
接下的問(wèn)題就是如何獲取“packageName”和“startActivity”。 有源碼的話,我們可以從源文件的AndroidManifest.xml中獲得。沒(méi)源碼的話就相對(duì)麻煩些了。
首先我們要在手機(jī)中配置SL4A并連接PC調(diào)試,這個(gè)暫時(shí)放在后面講。我們先直接參考代碼:
1.獲取packageName:
1 import android 2 import pprint 3 droid=android.Android() 4 pacs=droid.getRunningPackages() 5 pprint.pprint(pacs.result)這樣就可以獲取packageName列表了,找出與Apk對(duì)應(yīng)的packageName即可。
2.獲取startActivity:
1 import android 2 import pprint 3 droid=android.Android() 4 apps=droid.getLaunchableApplications() 5 pprint.pprint(apps.result)同樣可以獲取到startActivity列表,找出與之對(duì)應(yīng)的即可。
?
四)安裝配置SL4A:
1. 設(shè)置環(huán)境變量:windows增加一個(gè)環(huán)境變量AP_PORT,其值為9999。ubuntu下執(zhí)行export AP_PORT=9999即可。
2.?訪問(wèn)SL4A的主頁(yè):http://code.google.com/p/android-scripting/下載最新的版本并安裝在手機(jī)上。
3. SL4A安裝成功后,啟動(dòng)SL4A,Menu>View>Interpreters,如果之前沒(méi)有安裝過(guò)解釋器,列表中應(yīng)該只有Shell一項(xiàng),點(diǎn)擊Menu>Add,在顯示出來(lái)的列表中會(huì)有可供選擇安裝的解釋器,選擇后會(huì)自動(dòng)進(jìn)入下載安裝的過(guò)程,我們選擇Python即可。
4. 解釋器安裝成功后,在內(nèi)存卡或手機(jī)內(nèi)存中會(huì)生成“com.googlecode.pythonforandroid”文件夾,進(jìn)入目錄extras>python,將python目錄下的android.py拷貝到PC的python安裝目錄下。
5.?在手機(jī)上啟動(dòng)遠(yuǎn)程調(diào)試的端口:在SL4A的Preferences選項(xiàng)中,設(shè)置Server Port為一個(gè)未占用的,例如‘65000’?。運(yùn)行SL4A,Menu->View->Interpreters->Menu中選擇Start Server即可,然后將手機(jī)端口映射到PC端口,代碼如下:
adb forward tcp:9999 tcp:65000
所有步驟完成后我們來(lái)測(cè)試下SL4A是否配置正確,在CMD中啟動(dòng)Python,運(yùn)行以下代碼:
1 import android 2 droid = android.Android() 3 droid.makeToast('Hello World')?
若返回結(jié)果為:Result(id=0, result=None, error=None),則SL4A配置正確。
若運(yùn)行以上代碼報(bào)錯(cuò):1.可能是端口的轉(zhuǎn)發(fā)設(shè)置有問(wèn)題。2.PC中的python不兼容所導(dǎo)致,本人就因?yàn)閜ython33運(yùn)行android.py報(bào)錯(cuò)而不能運(yùn)行以上代碼。
?
以上這些都是參考網(wǎng)友的一些文檔,自己通過(guò)實(shí)踐總結(jié)而來(lái),若有錯(cuò)誤或侵權(quán)行為,請(qǐng)速告之,謝謝!
轉(zhuǎn)載于:https://www.cnblogs.com/dimdusk/archive/2013/04/09/3008575.html
總結(jié)
以上是生活随笔為你收集整理的MonkeyRunner——如何在实体机上启动一个程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 欣赏一下OFFICE 2013 PLUS
- 下一篇: cocos2d-x jni相关目录分析