LoginSignup
26

More than 5 years have passed since last update.

posted at

updated at

package名のみからadb shell am start -nする

adb am start -n [package]/[classname]

adb am startは便利だが、パッケージ名の指定のみでは起動ができない。
-n オプションで起動には起動する対象のActivityの名前を取得する必要がある。
このActivityの名前を、端末から取得してinteractiveに指定のパッケージを起動するコマンドを書いた。

launchapp

adb shell pm dumpが使える端末であれば、パッケージ名から起動できるscriptをかける。

使い方.

1) 何も指定せずにpecoにまかせて起動

$ launchapp # interactive launch with peco

2) 引数にgrepできるパッケージ名の一部を渡して起動。

$ launchapp naver # launch with grep word

解説

adb shell list package

端末にインストール済みのパッケージ名の取得はこれで行える。

$ adb shell pm list package
package:com.dmm.app.store
package:com.android.calendar
package:jp.naver.line.android
package:jp.co.katakata_game.BallPuzzle001
package:com.android.backupconfirm
package:com.eoruzea.money_defense
package:com.android.packageinstaller
package:com.android.providers.userdictionary
package:com.android.providers.downloads.ui
package:com.android.externalstorage
package:com.google.android.launcher
package:com.square_enix.kairisei_MA

adb shell pm dump [package]

古いバージョンのOSでは利用できないが、dumpコマンドが利用できるとパッケージの詳細情報が取得できる。

$ adb shell pm dump com.android.calendar
...
    Non-Data Actions:
        android.intent.action.MAIN:
          1c400389 com.android.calendar/.AllInOneActivity filter 3a87944f
            Action: "android.intent.action.MAIN"
            Category: "android.intent.category.DEFAULT"
            Category: "android.intent.category.LAUNCHER"
            Category: "android.intent.category.APP_CALENDAR"
        android.intent.action.VIEW:
          d4b6f8e com.android.calendar/.EventInfoActivity filter 1cad70e5
            Action: "android.intent.action.VIEW"
            Category: "android.intent.category.DEFAULT"
        android.intent.action.SEARCH:
          1cc443bc com.android.calendar/.SearchActivity filter 21c3e586
            Action: "android.intent.action.SEARCH"

ここから、com.android.calendar/.AllInOneActivity の部分を抜き出せば起動時アプリが指定できる。

参考

installapp / uninstallappと組み合わせると更にいい感じ

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
What you can do with signing up
26