在Android應用程序的開發,我也非常頻繁如下:上傳到手機後自動啓動Android應用程序?
- 運行「螞蟻重新安裝」編譯並上傳應用程序到仿真器。
- 切換到模擬器窗口。
- 點擊我剛剛上傳的包來運行並測試它。
有什麼辦法,我可以告訴模擬器手機在運行我剛剛上傳的包?也許我可以在運行我的編譯腳本後發送給它的「adb」命令?作爲最後的手段,我想我可以運行一些模擬鼠標點擊的東西。
在Android應用程序的開發,我也非常頻繁如下:上傳到手機後自動啓動Android應用程序?
有什麼辦法,我可以告訴模擬器手機在運行我剛剛上傳的包?也許我可以在運行我的編譯腳本後發送給它的「adb」命令?作爲最後的手段,我想我可以運行一些模擬鼠標點擊的東西。
您想使用am
命令。假設你有一個清單,看起來有點像這樣:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.MyApp">
<application android:icon="@drawable/icon">
<activity class=".MyMainActivity" android:label="@string/app_name">
<intent-filter>
<action android:value="android.intent.action.MAIN" />
<category android:value="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
...
</manifest>
你將開始與:
adb shell am start -a android.intent.action.MAIN -n com.example.MyApp/.MyMainActivity
雖然你可能想告訴它要等到它準備好:
adb wait-for-device shell am start -a android.intent.action.MAIN -n com.example.MyApp/.MyMainActivity
基本上你只是發射一個叫做Intent
的軟件,它會調用你的軟件包的主要Activity
。
完整的文檔(從運行時--help)是:
usage: am [start|broadcast|instrument|profile]
am start [-D] INTENT
am broadcast INTENT
am instrument [-r] [-e <ARG_NAME> <ARG_VALUE>] [-p <PROF_FILE>]
[-w] <COMPONENT>
am profile <PROCESS> [start <PROF_FILE>|stop]
INTENT is described with:
[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]
[-c <CATEGORY> [-c <CATEGORY>] ...]
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[-e|--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[-n <COMPONENT>] [-f <FLAGS>] [<URI>]
感謝您提供豐富的答案! :-)我可能不會從幫助文件中解決這個問題。這爲我節省了很多時間。要添加到此,請在編譯/安裝應用程序之前先調用「adb shell input keyevent 3&」,以便先將仿真器切換到主屏幕。密集運行的應用程序會使應用程序上傳速度變慢。 – BobbyJim 2010-02-15 19:51:18
沒問題。花了一點時間才弄明白,但是我知道這是可能的,因爲Eclipse可以做到這一點。 – 2010-02-16 20:45:47
大的第一個問題和歡迎。 – 2010-02-12 04:22:32