2022年5月31日火曜日

Androidでアプリ起動

Androidでアプリを起動するにはそのアプリのアイコンをタップ…
すればいいのですが、ここはそういう話ではありません。
何らかの事情でアイコンが表示されていなかったり、
あるいはリモートで起動させたい場合に、
adbでコマンドから起動させたいことがあったりしますが、
その際困るのがアクティビティ名がわからないこと。
アクティビティ名を指定しないと起動できないのです。
ソースコードがあるのならAndroidManifest.xmlで調べられますが、
そうじゃないとお手上げ。
と思っていたらdumpsysコマンドで解決できることを知りました。
ということで以下に流れを示します。

まず起動したいアプリケーションのパッケージ名を知るには adb$ pm list package でインストール済みパッケージの一覧を得て、ここから探します。
パッケージ名がわかったら
adb$ dumpsys package <パッケージ名>
を実行すると、その結果の"Receiver Resolver Table:"の辺りに
内蔵するアクティビティ名が書かれています。
そこで
adb$ am start -n <パッケージ名>/<アクティビティ名>
を実行すれば起動してくれます。
例えば[設定]アプリなら
adb$ am start -n com.android.settings/.Settings$ApnEditorActivity
な感じになります。

0 件のコメント:

コメントを投稿