
Contents
前段
現役のAndroidエンジニアがよく使うadbコマンド一覧を紹介します。
Android開発には必須なコマンド群になっています。
….「adbコマンドとは?」「どうやって使うの?」
という方はこの記事を読んでみてください!

よく使うadbコマンド一覧
adb root
$ adb root
Android 端末にroot権限で接続することができます。
adbコマンド使用時に「Permission denied」と怒られる場合に使ってみてください。
adb reboot
$ adb reboot
Android 端末を再起動することができます。
adb install
$ adb install <apkファイル>
Success
自作したapkファイルを、Android端末にインストールすることができます。
Successと表示されれば、インストール完了です。
すでにインストールされているapkをアップデートインストールする時は、
オプションの -r を install の後につけることでインストールできます。
$ adb install -r <apkファイル>
Success
上記の方法を使って、現在入っているapkのバージョンより古いapkをインストールしようとするとエラーが起きます。
$ adb install -r <古いapkファイル>
Failure [INSTALL_FAILED_VERSION_DOWNGRADE]
このような時は、ダウングレードを許容する -d のオプションをつけることによって、インストールが可能になります。
$ adb install -r -d <古いapkファイル>
Success
adb logcat
$ adb logcat
adb logcat でAndroid端末のログを取得できます。
「control + c」で取得を中断できます。
$ adb logcat > hoge.log
> ログ名.log をつけることによって、ログ名.logファイルとしてログを取得することができます。
adb logcat を入力すると、Android端末に流れている全体のログを取得できます。
とても多い量で、目当てのログを見つけるのが大変だったりします。
そんな時に便利なのが -s オプションです。
$ adb logcat -s <取得したいログのTAG>
-s の後に、取得したいアプリのTAGを入力することで、取得できるログをフィルタリングをすることが可能になります。

TAGはこのようにクラスごとに決められていることが多いです。
$ adb logcat -s MainActivity
2020-04-11 12:48:08.450 7907-7907/com.example.myapplication D/MainActivity: Test button pressed!
-s の後にTAGであるMainActivityを指定することによって、
MainActivityのログだけ出力することが可能になります。
-c オプション
-c オプションを使うことによって、コマンドを入力した時点からのログを取得できます。
裏を返せば、-c オプションを使わなければ、Android端末起動時からのログが全て取得できることになります。
ログの量が大量になるので、必要な時点のログだけ取得するということで -c はよく使われます。
さらにこのような合わせ技も使われます。
$ adb logcat -c && adb logcat -s MainActivity
&& で -c オプションと -s オプション両方を使っています。
このコマンドにより、コマンドを叩いた時点からのMainActivityだけのログを取得することができます。
取得されるログが精査されてとても便利です。
adb shell
$ adb shell
Android端末の中に侵入するイメージです。
adb shell した後は、lsやcdなどLinuxのコマンドと同じコマンドが使えるようになります。
exitでシェルを出ることができます。
adb devices
$ adb devices
接続されているAndroid端末を確認することができます。
adb pull
$ adb pull <端末のパス/持って来たいファイル>
Android端末の中にあるファイルをPCに持ってくることができます。
adb push
$ adb push <ローカルのPushしたいファイル> <端末のPush先パス>
pullと反対に、PC上のファイルをAndroid端末の中に入れることができます。
インテントの発行
$ adb shell am start -n com.sample.app/.MainActivity
MainActivityが起動します。-n の後は発行したいインテントに読み替えてください。
$ adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
起動完了通知(BOOT_COMPLETED)のBroadcastを発行することができます。
-a の後は発行したいBroadcastに読み替えてください。

まとめ
いかがでしたでしょうか。よく使うadbコマンドについて理解できましたでしょうか?
adb logcat などは、アプリのデバッグに非常に有効であり、うまく使えば開発を加速させてくれます。
是非使いこなして有意義なAndroidアプリ開発ライフを送ってください!
ご精読ありがとうございました!!
ピンバック: 【Android開発】Macでadbコマンドを有効化する方法 | Memento Mori Blog
こんにちわ、一つ質問よろしいでしょうか?
adbコマンドを用いたsdカードの内部ストレージ化に挑戦しましたが端末側の問題で上手くいきませんでした。
そこでSDカードを別のことに使おうとPCに挿したら認識してくれませんでした!
まあ一度スマホの内部ストレージとして定義してしまったので当然といえば当然なのですが…
もう一度adbからsdカードを外部ストレージとして定義しなおすことは可能でしょうか?
Linuxのコマンドが使えるとあったのでもしや…と思い質問させていただきます。
カテ違いだったらごめんなさい。