LoginSignup
21
20

More than 5 years have passed since last update.

adbから任意のActivityを起動したい

Posted at

そんなときあるのか

主にデバッグの際に役立ちます。

「どうやら、特定の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 コマンドで他にも山ほどオプションが出てきます。
必要があれば調べてみてください。

参考

21
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
20