コマンドラインからアプリを起動する

AndroidアプリケーションはGUIから起動するのが普通だが、amコマンドを使えば、コマンドラインからアプリを起動することもできる。
例えば、下記コマンドで電話帳アプリが起動する

am start -a android.intent.action.MAIN -n com.android.contacts/com.android.contacts.DialtactsContactsEntryActivity

アプリ起動、と言っても実際にはIntentを投げているだけで、このamコマンド、もっと汎用的にIntentを投げることができる。

usage: am [start|broadcast|instrument|profile]
am start [-D] INTENT
am broadcast INTENT
am instrument [-r] [-e ] [-p ]
[-w]
am profile [start |stop]

INTENT is described with:
[-a ] [-d ] [-t ]
[-c [-c ] ...]
[-e|--es ...]
[--ez ...]
[-e|--ei ...]
[-n ] [-f ] []

Intentで呼び出されるアプリをつくっているときに、呼出側のアプリをつくるのは面倒だし、つくったとしてもGUIから起動するのも面倒なので、これを使えば簡単に呼び出すことができる。

たとえば、システム起動時にアプリケーションを起動する - Hacking My Way 〜 itogのhack日記で書いたようなBOOT_COMPLETEDをReceiveするアプリの場合、実際にBOOT_COMPLETEDがBroadcastされるのはシステム起動時だけなので、起動確認のために毎回リブートしなくてはいけないが、下記コマンドを実行すれば、同様のことが実現できる。

am broadcast -a android.intent.action.BOOT_COMPLETED
  • 参考

http://learnandroid.blogspot.com/2008/01/run-android-application-from-command.html