Androidのワイヤレスデバッグ設定と実務で使えるADBコマンド活用法

USBケーブル不要でAndroid端末をWi-Fi経由でAndroid Studioに接続する無線デバッグの設定手順を示したアイキャッチ画像

Android Studioで実機デバッグする時、毎回USBケーブルを接続するのは面倒ですよね。そのケーブル接続も結構な頻度で切断されたりしますよね。Android 11以降なら「ワイヤレスデバッグ」を使ってWi-Fi経由でADB接続できます。

この記事ではワイヤレスデバッグの設定手順と、実務の時短に直結するADBコマンドの応用をまとめています。「ADBは知っているけどもう少しうまく使いたい」という方に向けた内容です。

目次

この記事でわかること

  • Android 11以降でワイヤレスデバッグを有効にして接続する方法
  • スクリーンショット・画面録画・ログ監視など実務で便利なADBコマンド5選
  • 複数端末への一括APKインストールや、シェルスクリプトによる自動化の考え方

ケーブル不要になる!ワイヤレスデバッグの設定手順

対応Androidバージョンを確認する

Android 10以前もWiFiでデバッグすることはできますが、初回はUSB接続してadbコマンドで接続する必要がありました(adb tcpip方式)。

Android 11(APIレベル30)以降の標準機能であるワイヤレスデバッグでは一度もPCにUSB接続することなく利用開始することができます。

APIレベルと端末OSの対応についてはこちらもあわせて参考にしてください。

ワイヤレスデバッグの設定手順

Step
開発者オプションを有効にする

まだ開発者オプションが有効になっていない場合は先にここから進めます。

  1. 「設定」アプリを開く
  2. 「デバイス情報」または「端末情報」へ進む
  3. 「ビルド番号」を7回タップする
  4. 「開発者になりました」という表示が出れば有効化完了
Step
ワイヤレスデバッグをオンにする
  1. 「設定」→「開発者向けオプション」を開く
  2. 「ワイヤレスデバッグ」を探してオンにする
  3. 確認ダイアログが表示されたら「許可」を選ぶ
Step
端末とPCをペアリングする(初回のみ)

初回接続時は「ペアリングコードによるデバイスのペアリング」を使います。

端末側の操作
  1. 「ワイヤレスデバッグ」の設定画面を開く
  2. 「ペアリングコードによるデバイスのペアリング」をタップ
  3. 画面に「IPアドレス&ポート番号」と「ペアリングコード」が表示される
PC側の操作
コマンド
adb pair 【IPアドレス】:【ポート番号】

コマンドを実行するとペアリングコードの入力を求められます。端末に表示されているコードを入力してください。

コマンド – ペアリング成功時の出力例
Enter pairing code: 123456
Step
ADBで接続する

ペアリングが完了したら、今度は接続用のポート番号で接続します。ペアリング時とポート番号が異なるので注意してください。

「ワイヤレスデバッグ」設定画面の上部に「IPアドレスとポート」として表示されているIPアドレス&ポート番号を使います。

コマンド
adb connect 【IPアドレス】:【接続用ポート番号】
コマンド – 接続成功時の出力例
connected to 192.168.1.10:43210
コマンド – 接続確認
adb devices
コマンド – 実行結果
List of devices attached
192.168.1.10:43210  device

device と表示されれば接続完了です。offlineunauthorized が出る場合はStep 3からやり直してみてください。

注意 ワイヤレスデバッグで接続するIPアドレスとポート番号は、端末の再起動やWi-Fi再接続のたびに変わることがあります。毎回Step 4の接続操作が必要になります。ペアリング自体は一度やれば再度不要です。

実務の時短に直結するADBコマンド応用5選

基本的なadb installadb rebootは使いこなせている前提で、もう一段階上のコマンドを紹介します。

バグ報告に即使える:スクリーンショットと画面録画

バグ発見時にスマホで画面録画してSlackに貼る……という手順、地味に手間ですよね。ADBを使えばPC側に直接保存できます。

スクリーンショット

コマンド
adb shell screencap /sdcard/screenshot.png
adb pull /sdcard/screenshot.png .

2行で完了です。最初の行で端末内に保存し、次の行でPCのカレントディレクトリに引き出します。

画面録画(動画)

コマンド
adb shell screenrecord /sdcard/record.mp4

録画中はCtrl+Cで停止できます。その後adb pullでPCに取り出してください。

コマンド
adb pull /sdcard/record.mp4 .

デフォルトでは最長3分の制限があります。--time-limitオプションで秒数を指定することも可能です。

コマンド – 録画時間を60秒に指定する例
adb shell screenrecord --time-limit 60 /sdcard/record.mp4

複数端末を持つ現場で便利:一括APKインストール

接続中の全端末に最新APKをまとめて入れたい場面があります。adb devicesで端末一覧を取得し、ループを回すのが定番のやり方です。

コマンド
#!/bin/bash
APK_PATH="【APKファイルのパス】"

for DEVICE in $(adb devices | grep -v "List" | awk '{print $1}')
do
  echo "Installing to $DEVICE..."
  adb -s "$DEVICE" install -r "$APK_PATH"
done

echo "Done."

このスクリプトを実行するだけで、接続中のすべての端末に同じAPKをインストールできます。-r オプションをつけると、すでにインストール済みの場合も上書きインストールします。

テスト前のリセットに:アプリデータ消去とアンインストール

毎回設定画面を開いてアプリを探してデータ消去……という操作はコマンドで一発です。

アプリデータの消去(アンインストールなし)

コマンド
adb shell pm clear 【パッケージ名】

初回起動の挙動を繰り返しテストしたい場合に重宝します。

アプリのアンインストール

コマンド
adb uninstall 【パッケージ名】

パッケージ名はadb shell pm list packagesで確認できます。

コマンド – パッケージ名の絞り込み
adb shell pm list packages | grep 【アプリ名の一部】

ログを追う:特定キーワードのみをリアルタイム監視

adb logcatをそのまま流すとログが多すぎて見づらいですよね。タグやキーワードで絞り込むのが実務では基本です。

タグ指定でフィルタ

コマンド
adb logcat -s 【タグ名】

キーワードで絞り込む(grep)

コマンド – macOS / Linux
adb logcat | grep "【検索キーワード】"
コマンド – Windows PowerShell
adb logcat | Select-String "【検索キーワード】"

ログレベルを絞る

ログレベルはV(Verbose)/D(Debug)/I(Info)/W(Warning)/E(Error)の5段階です。エラーだけ見たい場合は以下のようにします。

コマンド
adb logcat *:E

ログが溜まりすぎていると流れが追いにくくなります。事前にバッファをクリアしておくのも有効です。

コマンド – ログバッファのクリア
adb logcat -c

端末情報を確認する

複数端末でテストしていると「この端末のAPIレベルは何番だっけ」という場面が出てきます。設定画面を開かずに確認できます。

コマンド – OSバージョン確認
adb shell getprop ro.build.version.release
コマンド – APIレベル確認
adb shell getprop ro.build.version.sdk
コマンド – メーカー・機種名確認
adb shell getprop ro.product.manufacturer
adb shell getprop ro.product.model

複数端末が接続されている場合は-sで端末を指定します。

コマンド – 端末を指定して確認する例
adb -s 【デバイスID】 shell getprop ro.build.version.sdk

【Tips】シェルスクリプトで「いつもの操作」を自動化する

毎回同じ手順を踏んでいる操作はシェルスクリプトにまとめておくと楽になります。例えば「ビルド → 全端末インストール → ログ監視開始」という一連の流れもスクリプト1本で完結させることができます。

bash
#!/bin/bash

# ビルド(Gradleを使う場合の例)
./gradlew assembleDebug

APK_PATH="app/build/outputs/apk/debug/app-debug.apk"

# 全端末にインストール
for DEVICE in $(adb devices | grep -v "List" | awk '{print $1}')
do
  echo "Installing to $DEVICE..."
  adb -s "$DEVICE" install -r "$APK_PATH"
done

echo "Deploy complete."

自動化のポイントは「ミスしやすい繰り返し操作から手を離す」ことです。スクリプトにすると実行結果が毎回同じになるので、テストの再現性も上がります。

最初はシェルスクリプトって難しそうに見えるんですが、ADBコマンドをそのまま並べるだけでも十分便利なんですよね

うまく接続できない時の対処法

ワイヤレスデバッグで接続できない場合は以下を確認してみてください。

Android端末とPCが同じWi-Fiに接続されているか確認する

ワイヤレスデバッグはAndroid端末とPCが同じネットワーク上にいることが前提です。

例えば以下のようなケースでは接続できません。

  • Androidは自宅Wi-Fi
  • PCは有線LANで別ネットワーク
  • PCが会社VPNに接続中
  • Androidがモバイル通信になっている

まずはAndroid端末とPCが同じWi-Fi(同一ネットワーク)に接続されているか確認してください。

ADBサーバーを再起動する

ADBの内部状態が不安定になっていて接続できないことがあります。以下のコマンドでADBサーバーを再起動後、ワイヤレスデバッグを試してください。

コマンド
adb kill-server
adb start-server

ペアリング済みでも接続し直す

一度ペアリングした端末でも接続情報が古くなって失敗することがあります。その場合はAndroid端末側で一度ペアリング情報を削除して再設定してください。

端末側の操作
  1. 開発者向けオプションを開く
  2. ワイヤレスデバッグを開く
  3. 既存のペアリング済み端末を削除
  4. もう一度ペアリングコードで接続する

PCのファイアウォール設定を確認する

Windows Defender Firewall やセキュリティソフトがADB通信をブロックする場合があります。以下のような場合は一時的に確認してみてください。

  • 初回接続時だけ失敗する
  • ペアリングはできるのに接続できない
  • adbコマンドがタイムアウトする

セキュリティソフトを利用している場合はADB通信がブロックされていないか確認してください。

Android Studioを再起動する

Android Studio側のデバイス一覧が更新されず、接続済みなのに認識されないことがあります。この場合はAndroid Studioを再起動すると改善することがあります。ADBサーバー再起動だけで改善しない場合に試してください。

Q&A

ワイヤレスデバッグで接続できるのはWi-Fi環境のみ?

はい、PCと端末が同じWi-Fiネットワークに接続されている必要があります。異なるネットワーク間での接続は標準機能では対応していません。

ペアリングコードがすぐ消えてしまいます。

ペアリング画面は一定時間で自動的に閉じる仕様です。コマンドを先に用意しておいてから、端末側の操作を始めると焦らずに済みます。

adb devicesunauthorizedと表示されます。

端末の画面に「このコンピュータを信頼しますか?」というダイアログが出ている場合があります。端末側で「許可」を選ぶと解消されることが多いです。それでも解決しない場合はadb kill-serveradb start-serverでADBサーバーを再起動してみてください。

コマンド
adb kill-server
adb start-server
screenrecordの動画がPCで再生できません。

screenrecordはMP4形式で保存されますが、コーデックの都合で一部のプレーヤーでは再生できないことがあります。VLCなど汎用性の高いプレーヤーで試してみてください。

スクリプトを実行したらPermission deniedになります。

スクリプトファイルに実行権限が付いていない可能性があります。以下のコマンドで権限を付与してください。

コマンド
chmod +x 【スクリプトファイル名】.sh

まとめ

  • ワイヤレスデバッグはAndroid 11以降で使えて、ペアリングは初回だけで済むよ。
  • 接続ごとにIPアドレスとポート番号が変わる場合があるので、接続時は毎回確認してね。
  • screencapscreenrecordでバグ報告の証拠をPCに直接残せるよ。
  • logcatはタグやキーワードで絞り込むと実務でぐっと使いやすくなるよ。
  • 繰り返し操作はシェルスクリプトにまとめると、ミスが減ってテストの再現性も上がるよ。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次