adb devicesは、PCに接続されている実機・エミュレータの一覧を表示するサブコマンドである。基本的な一覧表示に加えて、-lでの詳細表示と、複数の端末を接続している場合に対象を絞り込む-sオプションについても解説する。

接続端末の一覧とシリアル番号を確認する

引数なしでadb devicesを実行すると、接続中の端末の状態が一覧表示される。1列目に表示される値が各端末を識別するシリアル番号であり、後述の-sオプションにはこのシリアル番号を指定する。

$ adb devices
List of devices attached
emulator-5554	device

状態には次のようなものがある。

  • device: 通常に接続され操作可能
  • offline: adbサーバーは端末を検出しているが、adbデーモン(adbd)とのハンドシェイクが完了していない(起動中やadbd再起動直後など)
  • unauthorized: USBデバッグの許可待ち

-lで端末の詳細情報を確認する

同じ種類のエミュレータを複数起動している場合など、シリアル番号だけではどの端末か判別しづらいことがある。-lを付けると、シリアル番号に加えて機種名や接続方式などの詳細情報も表示され、対象を見分ける手がかりになる。

$ adb devices -l
List of devices attached
emulator-5554          device product:sdk_gphone64_arm64 model:sdk_gphone64_arm64 device:emu64a transport_id:2

productはビルド名、modelは機種名、deviceはデバイスコードネーム、transport_idadbサーバー内部での接続識別子を表す。

確認したシリアル番号を-sに指定して対象を絞り込む

複数端末が接続された状態で、-sを付けずにadb shellなどのコマンドを実行するとエラーになる。

$ adb devices
List of devices attached
emulator-5554	device
emulator-5556	device

$ adb shell getprop ro.build.version.release
adb: more than one device/emulator

先ほどadb devicesで確認したシリアル番号を-sに指定すると、対象の端末に絞ってコマンドを実行できる。

$ adb -s emulator-5554 shell getprop ro.build.version.release
16

$ adb -s emulator-5556 shell getprop ro.build.version.release
16

-sadb本体へのグローバルオプションのため、サブコマンドより前に指定する。