adbを便利に使う

はじめに

Android端末とPCの通信を補助するコマンドラインツールであるadb(Android Debug Bridge)の使い方について説明します。

実行環境

この記事は以下の動作環境で動作確認しています。

  • macOS Catalina v10.15.4
  • terminal.app

adb(Android Debug Bridge)とは

adbとはPCに接続したAndroid端末などと通信できるコマンドラインツールです。 Android SDK の platform-toolsに含まれています。表示中のViewの階層を調べたり、アプリが落ちたあとににデバッグレポートを出力したり、端末の時間を変更したり、端末のシステムメッセージのログを出力したりと、開発がより効率的になる便利ツールです。adbの正確な定義は、以下にAndroid Developersから引用しておきます。詳細や導入方法はAndroid Developersのドキュメントを参照してください。

Android Debug Bridge(adb)は、エミュレータ インスタンスや接続された Android 端末と通信できる用途の広いコマンドライン ツールです。また、アプリのインストールやデバッグなどのさまざまな端末アクションを支援し、エミュレータや接続された端末でさまざまなコマンドを実行するときに使用できる Unix シェルへのアクセスを提供します。

システムメッセージのログを着色して便利に

adbを利用して、接続端末のシステムメッセージのログをTerminalに表示することが可能です[^1]。adbで端末が接続できている状態で、以下のコマンドをTerminalに打ち込んでください。

[^1]: logcat コマンドライン ツール

$adb logcat

システムメッセージのログが大量に流れてきます。Android StudioのLogcatと同じく、フィルタリングで情報を絞ることも可能です。しかし、それ以前に文字色が単一で見難いので、PID Catを利用して文字色のバリエーションを増やしましょう。ちなみにLogcatから抜けるには、Control + Cです。

PID Catとは

PID Catとは、TerminalのLogcatの出力に着色できるツールです。Macでは、Homebrewからインストールできます。

$brew install pidcat

インストールできたら、adbの導入と同様に、パスを通しましょう。Shellの設定ファイルに、以下を追記してください。

export PATH=$PATH:/Users/ユーザ名/Library/Android/sdk//tools

あとは、端末がadbで接続できている状態で、以下のコマンドをTerminalに打ち込んでください。着色されたシステムメッセージのログが表示されます。

$pidcat

pidcatは、Logcatと類似の機能を揃えています。ただし同一のコマンドではありません。例えば、以下のコマンドでログレベルがError以上のみを表示するようフィルタリングできます。

$pidcat -l E

その他の機能は、ヘルプを参照してください。pidcat -h でヘルプ表示が可能です。PID Catから抜けるには、Logcatと同様にControl + C です。

接続端末が複数のときの操作を便利に

接続端末が複数のときにadbを利用すると、うまくいきません。例えば、Shellにコマンドを実行させたいときです。Terminalから以下のコマンドを利用します。

$adb shell

このとき接続端末が複数だと、more than one more device/emulator と出力されてしまいます。端末IDを利用することで、このメッセージを回避できます。端末IDは、以下のコマンドで取得できます。

$adb devices

このときに表示される文字列が端末IDです。例えば、私の環境のAndroid Emulatorの端末IDはemulator-5555 となっています。こちらをコピーし、-s で以下のように端末IDを指定する必要があります。

$adb shell -s 端末ID

しかし毎回端末IDを指定するのは大変です。実機のIDはランダムな文字列になっているので、覚えるのも面倒ですし、毎回 $adb devicesを実行して端末IDをコピーするのも面倒です。そんなときは、adb-pecoを利用しましょう。

adb-pecoとは

adb-pecoとは、複数端末が接続されている時の端末の選択を楽にしてくれるツールです。コマンドを入力した際に端末の候補が表示され、選択できるようになります。 前提として、pecoのインストールが必要です。pecoは、Homebrewからインストールできます。

$brew install peco

pecoのインストールが完了したら、adb-pecoをインストールしましょう。adb-pecoは、RubyGemsでインストールできます。

$gem install adb-peco

利用時のコマンドはadb-pecoですが、毎回入力するのは不便なので、エイリアスの設定をしておきましょう。adb-pecoadbに置き換えても問題はありません。Shellの設定ファイルに、以下を追記しましょう。

alias adb="adb-peco"

おわりに

adbには他にも様々な使い方があります。開発効率を上げるためにも、色々と試してみることがおすすめです。