コマンドラインからアプリを起動する
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