adb(Android Debug Bridge)とは
Android Debug Bridge(adb)とは、Androidデバイス(スマホ、タブレット等)と通信を行うためのコマンドラインツールです。adbコマンドを利用することで、アプリのインストールやデバッグなど様々な操作を、PC上のコマンドライン(ターミナル)から行うことが出来ます。
また、[adb shell]というコマンドを利用することで、AndroidのUnixシェルにアクセスすることが可能になります。
adbインストール
adbをインストールする方法としてはいくつかありますが、今回はAndroid Studioをインストールすると付いてくる、adbツールを利用していきたいと思います。
まず、Android Studioをインストールできていない方は、以下記事でインストールしましょう。
※「Android Studioのセットアップ」の項目までで大丈夫です。
Android Studioを開いてから、下記画面の下部の「Configure]というタブの[Preferences]という項目を押しましょう。
すると、Android Studioの設定画面が開きますので、左にあるタブで
[System Settings]->[Android SDK]を押すと、右側にAndroid SDK Locationという表示があると思いますので、そこに表示されているディレクトリをコピーしておきましょう。
※私の場合は、「/Users/daichimizuno/Library/Android/sdk」となっていました。
adbの環境変数設定
Macでターミナルを開いてから、下記の流れでコマンドを打ってください。
1.bash_profileを開く
vi ~/.bash_profile
キーボードの「i」を押すと、入力モードになります。
2.bash_profileへ追記
export PATH=$PATH:先程コピーしたパス/platform-tools
[esc]を押し、「:wq」と打った後に「Enter」を押すと入力した内容が保存されます。
※ちなみに私の場合だと、下記コマンドですので参考にしてみてください。
export PATH=$PATH:/Users/daichimizuno/Library/Android/sdk/platform-tools
3.bash_profileの再読み込み
source ~/.bash_profile
4. adbコマンドの確認
adb help
これで、adbコマンドが動いていれば完了となります。
adbコマンドの使い方一覧
adbコマンドでよく使われるコマンド一覧を記載します。
コマンド | 説明 | 使い時(利用例) |
---|---|---|
adb devices | adbで接続されている、デバイスのリストを表示します。 | adbで繋がっている端末を確認するとき |
adb help | adbで利用できるコマンドのヘルプ | adbの使い方がわからなくなった時 |
adb version | adbコマンドのバージョンを表示 | adbのバージョンによって出来ない機能があるため、時々確認します。 |
adb connect <IP address>:port | adbでPCとデバイスを接続する (デフォルトPORTは5555) | <利用例> adb connect 192.168.0.11:5555 |
adb disconnect <IP address>:port | adbでPCとデバイスを接続解除する (デフォルトPORTは5555) | <利用例> adb disconnect 192.168.0.11:5555 |
adb pair <IP address>:port | adbでPCとデバイスをセキュアに接続する | <利用例> adb pair 192.168.0.11:5555 |
adb push | adbでPCからデバイス上にファイルを転送する | <利用例> adb push file.txt /sdcard/ |
adb pull | adbでデバイス上にあるファイルを、PCに転送する | <利用例> adb pull /sdcard/file.txt /Users/daichimizuno/ |
adb shell | PCからデバイス上のシェルにアクセスする | |
adb install <apk name> | デバイス上にアプリをインストールする | <利用例> adb install sample.apk |
adb uninstall <package name> | デバイス上のアプリをアンインストールする | <利用例> adb uninstall com.example.application |
adb logcat | デバイスのログを表示する | <利用例> adb logcat |
adb root | ルート権限でadbデーモンを再起動する | ルート権限でデバイスを操作したい時に使います。 |
adb start-server | adbデーモンを開始する | |
adb kill-server | adbデーモンを切断する |
adb Tips
adbを使って色々やりたいことがある時のTipsをまとめておきます。
スクリーンショットを取りたい時
adb shell screencap -p /sdcard/image.png
adb pull /sdcard/image.png
adb shell rm /sdcard/screen.png
screencapコマンドで、スクリーンショットを取得し、adb pullで取得した後、rmコマンドでデバイス上の画像を削除しています。
スクリーン動画を撮影したい時
adb shell screenrecord /sdcard/video.mp4
adb pull /sdcard/video.png
adb shell rm /sdcard/video.png
screenrecordコマンドで、動画を取得し、adb pullで取得した後、rmコマンドでデバイス上の動画を削除しています。
Wifi越しに接続したい時
Android 11以降
開発者オプションから、「ワイヤレスデバッグ」というオプションをONにした後、「ペア設定コードによるデバイスのペアを設定」という項目がありますので、そちらに「ipアドレス」と「ポート」が記載されています。
adb pair <ipアドレス>:<ポート>
この後、ターミナル上で6桁のペアコードが表示されますので、それを入力すると接続が完了します。
Android 10 以前
Android 10以前でadbをwifi越しで接続するには、PCとデバイスをUSBで接続する必要があります。USB接続を行った後に下記を入力します。
adb tcpip 5555
adb connect <ipアドレス>
上記を実行した後、USBを外すとwifi越しにadb接続が可能となります。
システムアプリとしてアプリをインストールする(上級者)
システムアプリとしてアプリをインストールする場合には、root化が必要ですので、root化された前提で、下記を実行します。
adb disable-verity
adb reboot
adb root
adb remount
adb push <.apk> /system/priv-app/
adb reboot
※Androidのデバイス、OSによってシステムアプリ領域のディレクトリは、/system/priv-appではない可能性があります。
上記の時に、adb remoutで上手く行かない場合は、adb remountの代わりに下記を実行してみてください。
adb shell
su
mount -o rw,remount /system
adb トラブルシューティング
adb で接続ができない時(adb connect)
- デバイスの開発者オプションが有効になっていて、USBデバッグがONになっているか確認
- 問題ない場合は、デバイスのIPアドレスが間違っていないか確認する
- 間違っていない場合は、ポートに5555に設定して接続してみる
- これでもダメであれば、別のポートに変えて実行してみる(5556など)
- それでも出来ない場合は、使用しているデバイスがadbを使えない状態になっている可能性ある
アプリをインストール出来ない場合(adb install)
- インストールしようとしているアプリが、PC上の適切なディレクトリにあるか確認する
- adb install -r <apk>で -r をつけると強制的にインストールできるので、これを試す
- 古いバージョンをインストールしようとしている場合は、一度adb uninstallでアプリをアンインストールしてから試す