搜尋此網誌

2010年12月22日

從 Device adb shell 環境直接啟動程式 - am (Activity Manager) & aapt

目的: 想在 Android device 的 adb shell 環境直接啟動程式,可以進行一些測試工具的開發
過程: 找到正確的 command,以及如何啟動
  1. 需要的 command1: am (啟動特定的 activity)
  2. 需要的 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 就可以達到我的目的。

沒有留言:

張貼留言