目的: 想在 Android device 的 adb shell 環境直接啟動程式,可以進行一些測試工具的開發
過程: 找到正確的 command,以及如何啟動
- 需要的 command1: am (啟動特定的 activity)
- 需要的 command2: aapt (取得特定 activity name)
先聊一下 am。用 adb shell 連接到 device 後,直接打 am,會有提示文字,懶的節錄,
請參考這個網站:
http://huenlil.pixnet.net/blog/post/23271843
基本上格式為:
# am start -n com.google.android.browser/com.google.android.browser.BrowserActivity
# am start -a android.intent.action.VIEW -d
http://www.google.com/
# am start -a android.intent.action.CALL -d tel:123456789
請看第一個範例,參數須要 packet name / activity name。這要如何取得呢? 使用 aapt 是一種方法
接下來聊 aapt。找了一下,真是個功能強大的工具。請參考網址:
http://elinux.org/Android_aapt
看來可以針對 APK 進行 list / dump / package / remove / add 等操作。
這個網站已經列了很多項目,請自行參考。
接下來說主要的目的,就是從 AndroidManifest.xml 去找出 Activity name。可以 dump 所有資料 (aapt list -a SpareParts.apk),這樣就可以看到了。
另外一個方法,就是反組譯 APK,也可以取得 activity name。
請參考我另外整理的一篇:
http://pontiffkao.blogspot.com/2010/12/android-android-signed-application.html (Android 應用程式簽章 - Android signed application)
這網站的例子,是個 single activity 例子,但是我想 multiple activity 應該是一樣的。
這樣 am + aapt 就可以達到我的目的。