そんなときあるのか
主にデバッグの際に役立ちます。
「どうやら、特定のActivityが特定のExtra付きintentで起動された時に例外が出ているらしい」
とかそういうときに、わざわざプログラムをいじったりせずに原因調査が出来ます。
どうやるのか
前提
-
adb
コマンドが使える - Android端末は母艦に接続済み
- 起動したいActivityを持ったアプリがインストール済み
手順
以下に該当するActivityを起動したいとします。
- パッケージ名
- net.kikuchy
- 起動したいActivityのフルクラス名
- net.kikuchy.activity.HogeActivity
# 母艦
$ adb shell
# ↓ここからAndroid端末
$ am start -n net.kikuchy/.activity.HogeActivity
# intent.putExtra("somekey", "somevalue") と同等のExtraをつけたいとき
$ am start -n net.kikuchy/.activity.HogeActivity -e somekey somevalue
その他
intentのExtraは型情報を持っているので、各型ごとにオプションがあります。
以下、 am
コマンドの説明より抜粋。
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--esn <EXTRA_KEY> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[--el <EXTRA_KEY> <EXTRA_LONG_VALUE> ...]
[--ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE> ...]
[--eu <EXTRA_KEY> <EXTRA_URI_VALUE> ...]
[--ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE>]
[--eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]]
[--ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]]
[--efa <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]]
[--esa <EXTRA_KEY> <EXTRA_STRING_VALUE>[,<EXTRA_STRING_VALUE...]]
(to embed a comma into a string escape it using "\,")
am
コマンドで他にも山ほどオプションが出てきます。
必要があれば調べてみてください。