Androidデバッグブリッジを使用する

ADB(Android Debug Bridge)は、Android用のコマンドラインデバッグツールである。システムログの追跡、ファイルのアップロードやダウンロード、アプリケーションのインストールなど、さまざまな機能を実行できる。

ADBツールは、Windows、Ubuntu、macOSでAndroidのデバッグに使用できる。

ハードウェア接続

ADBを使用する場合、ハードウェア接続は以下の手順に従う必要がある。

adb-connection

ADB接続の準備

  1. USB-A - USB-Cケーブルを使ってPCとEdge 2を接続します。
  2. Edge 2システムの設定を開き、[タブレットについて]をクリックし、[ビルド番号]を7回連続でクリックします。
  3. 設定」→「システム」→「詳細設定」→「開発者向けオプション」を開きます。
  4. USBデバッグ(USB debugging)」オプションをチェックする(デフォルトではチェックされている)。
  5. オペレーティングシステム(Windows、Ubuntu、macOS)に応じてADBドライバーとコマンドをインストールする。
adb-developeroptions-usbdebugging

ADBのステータスを見る

Edge 2の後、ADBは正常に接続します、 USBデバッグ接続 通知

adb-edge2-show

接続状態は、以下のADBコマンドで確認できる:

$ adb devices
List of devices attached
IOO2TDRJNA    device

$ adb shell
mixtile_edge2:/ $
mixtile_edge2:/ $
mixtile_edge2:/ $

ADBをインストールする

WindowsにADBをインストールする

Windows上でAndroidをデバッグするには、ADBツールをインストールする必要がある。

ADBツールのダウンロード

ADBツールのダウンロード

ADBツールをインストールする

  1. ファイルをダウンロードし、C:˶adbplatform-toolsのようなカスタムインストールディレクトリに解凍します。
  2. Windows + Rキーを押して「ファイル名を指定して実行」を開き、sysdm.cplと入力してEnterキーを押す。詳細設定」→「環境変数」→「システム変数」→「パス」の順にクリックする。
  3. Pathの下に新しいC:¥adb¥platform-toolsを作成します。

ADB接続ステータスの確認

以下のADBコマンドを使用して、ADBが正常に接続されているかどうかを確認する。

C:\Users\user> adb devices
List of devices attached
IOO2TDRJNA      device

C:\Users\user> adb shell
mixtile_edge2:/ $
mixtile_edge2:/ $
mixtile_edge2:/ $

一般的なADBコマンド

コネクションの管理

関連機器とシリアルナンバーを表示する:

adb devices

複数のデバイスが接続されている場合は、シリアル番号で区別する必要があります:

export ANDROID_SERIAL=
adb shell ls 

複数のデバイスの下で指定されたデバイスに接続します:

adb -s SerialNumber shell

ADBツールはネットワークを介して接続することができます。

# デバイス側で ADB を再起動し、TCP ポート 5555 でリッスンします。
ADB TCPIP 5555
# これで、Type-Cケーブルを外すことができます。
# ここでIPが192.168.1.100のデバイスに接続します。
adb connect 192.168.1.100:5555
# デバイスを切断します。
adb disconnect 192.168.1.100:5555

デバッグ

ADBツールを通して、Androidのランタイムデバッグ情報を取得することができます。

ADB logcat経由でシステムログを取得する

adb logcat [Options] [Label]

# すべてのログを表示します。
adb logcat
# ログの一部のみを表示する。
adb logcat -s WifiStateMachine StateMachine

コマンド adb shell を実行する

詳細な運行情報を得る

バグレポート はバグレポートに使用され、多くの有用な情報を含んでいる。

adb bugreport
# ホストに保存し、テキストエディタで開いて ADB を表示します。
adb bugreport >bugreport.txt

ルート許可

TARGET_BUILD_VARIANTがユーザー・デバッグ・モードになっている場合は、root権限を取得して実行する必要があります:

adb root

ADBのリマウントなど、rootアクセスが必要なコマンドでは、ADBのデバイス側をrootモードに切り替える。

アプリケーション管理

ADBツールを使って、アプリケーションのインストールやアンインストールができる。

アプリケーションのインストール

adb install [option] apllication_name.apk

オプション

-l フォワードロック
-r アプリを再インストールし、元のデータを保持する。
-s 内部ストレージではなくSDカードにインストールする。

例えば、次のようなことだ。

#インストールfacebook.apk
adb install facebook.apk
#アップグレード twitter.apk
adb install -r twitter.apk

インストールに成功すると、ツールは成功のプロンプトを返します。 成功故障の場合、一般的に次のような状況が考えられます:

  • INSTALL_FAILED_ALREADY_EXISTS: この時点で、以下の方法で再インストールする必要があります。 -r パラメータが必要だ。
  • INSTALL_FAILED_SIGNATURE_ERROR: アプリケーションの署名が一致しません。リリース版とデバッグ版で署名が異なることが原因と考えられます。APKファイルの署名が正常であることを確認したら、古いアプリケーションをアンインストールするには adbアンインストール コマンドでインストールする。
  • install_failed_insufficient_storage:ストレージ容量が不足しています。デバイスのストレージ状態を確認する必要がある。

アプリケーションのアンインストール

adb uninstall アプリケーションパッケージ名

例えば、次のようなことだ。

adb uninstall com.android.chrome

アプリケーション・パッケージ名は、以下のコマンドでリストアップできる:

adb shell pm list packages -f

手術結果はこうだ:

package:/system/app/Bluetooth.apk=com.android.bluetooth

表はapkファイル、裏は対応するパッケージ名。

ADBヘルプ

Android Debug Bridge バージョン1.0.31

 -a - adbがすべてのインターフェイスで接続をリッスンするよう指示します。
 -d - 接続されているUSBデバイスのみにコマンドを指示します。
                                 複数のUSBデバイスが存在する場合はエラーを返します。
 -e - 実行中のエミュレーターにのみコマンドを指示します。
                                 複数のエミュレータが動作している場合はエラーを返します。
 -s  - 指定されたシリアル番号または修飾子を持つデバイスまたはエミュレータにコマンドを送ります。
                                 デバイスまたはエミュレータにコマンドを送ります。環境変数 ANDROID_SERIAL
                                 環境変数を上書きする。
 -p  - 'soon'のような単純な製品名。
                                 製品への相対/絶対パス
                                 out/target/product/sooner'のようなoutディレクトリへの相対/絶対パス。
                                 pが指定されない場合、ANDROID_PRODUCT_OUT
                                 環境変数が使用されます。
                                 絶対パスでなければならない。
 -H - adbサーバーのホスト名(デフォルト:localhost)。
 -P - adbサーバーのポート (デフォルト: 5037)
 devices [-l] - 接続されている全てのデバイスをリストアップする。
                                 ('-l' はデバイスの修飾子もリストアップする)
 connect [:] - TCP/IP 経由でデバイスに接続する。
                                 ポート番号が指定されていない場合、デフォルトで5555番ポートが使用される。
 disconnect [[:]] - TCP/IP接続を切断する。  - TCP/IP デバイスとの接続を切断する。
                                 ポート番号が指定されない場合、デフォルトでポート 5555 が使用される。
                                 追加引数なしでこのコマンドを使用すると
                                 を使用すると、接続されているすべての TCP/IP デバイスから切断されます。

デバイスコマンドを使用します:
  adb push [-p]  <リモート
                               - ファイル/ディレクトリをデバイスにコピー
                                 ('-p' で転送の進行状況を表示)
  adb pull [-p] [-a]  [] ファイル/ディレクトリをデバイスからコピーする。
                               - ファイル/ディレクトリをデバイスからコピー
                                 ('-p' で転送の進行状況を表示)
                                 ('-a' はタイムスタンプとモードをコピーする)
  adb sync [  ] - 変更があった場合のみホスト->デバイスをコピーする。
                                 (-l はリストアップするがコピーしない)
                                 (adb help all' を参照)
  adb shell - リモートシェルを対話的に実行する
  adb shell  - リモートシェルコマンドを実行する
  adb emu  - エミュレータのコンソールコマンドを実行する。
  adb logcat [  ] - デバイスログを表示する
  adb forward --list - 全てのフォワードソケット接続をリストアップする。
                                 フォーマットは以下のような行のリストです:
                                     " "  " "  "\n"
  adb forward   - ソケット接続を転送する。
                                 forward の仕様は以下のいずれかである:
                                   tcp:
                                   localabstract:<ユニックスドメインソケット名
                                   localreserved:<unix ドメインソケット名
                                   localalfilesystem:<ユニックスドメインソケット名
                                   dev:<文字デバイス名
                                   jdwp: (リモートのみ)
  adb forward --no-rebind  <リモート
                               - adb forward  ' と同じだが、失敗する。
                                  が既に転送されている場合は失敗する。
  adb forward --remove  - 特定の転送ソケット接続を削除する。
  adb forward --remove-all - 全てのフォワードソケット接続を削除する。
  adb jdwp - JDWP トランスポートをホストしているプロセスの PID をリストアップする
  adb install [-l] [-r] [-d] [-s] [--algo  --key  --iv ]  このパッケージファイルをデバイスにプッシュする。
                               - このパッケージファイルをデバイスにプッシュしてインストールする。
                                 ('-l' はアプリのフォワードロックを意味する)
                                 ('-r' はデータを保持したままアプリを再インストールする)
                                 ('-d' はバージョンコードのダウングレードを許可する)
                                 ('-s' は内部ストレージではなくSDカードにインストールすることを意味します)
                                 ('--algo', '--key', '--iv' はファイルがすでに暗号化されていることを意味する)
  adb uninstall [-k]  - このアプリのパッケージをデバイスから削除する。
                                 ('-k' はデータとキャッシュディレクトリを残すことを意味します)
  adb bugreport - デバイスからバグレポートに含まれるべき全ての情報を返します。
                                 バグレポートに含めるべきデバイスからのすべての情報を返します。

  adb backup [-f ] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] [] デバイスのアーカイブを書き込む。
                               - デバイスのデータのアーカイブを  に書き出す。
                                 もし -f オプションが指定されなければ、データは
                                 に書き込まれる。
                                 (-apk|-noapk アーカイブ内の .apks 自体のバックアップを有効/無効にする。
                                    デフォルトは noapk です)。
                                 (-obb|-noobb インストールされたapk拡張(別名.obb)ファイルのバックアップを有効/無効にします。
                                    (別名.obb)ファイルのバックアップを有効/無効にします。
                                    デフォルトは noobb)。
                                 (-shared|-noshared デバイスの共有ストレージ/SDカードの内容のバックアップを有効/無効にします。
                                    デフォルトはnoshared)。
                                 (-allはインストールされている全てのアプリケーションのバックアップを意味します)
                                 (-system|-nosystemは、-allが自動的にシステム・アプリケーションを含むかどうかを切り替えます。
                                    デフォルトはシステムアプリケーションを含む)
                                 (はバックアップするアプリケーションのリストです。  もし
                                    allフラグまたは-sharedフラグが渡された場合、パッケージリストはオプションです。
                                    のリストは省略可能である。  コマンドラインで明示的に
                                    コマンドラインで明示的に指定されたアプリケーションは、-nosystem
                                    通常は省略される)。

  adb restore  -  バックアップアーカイブからデバイスの内容をリストアする。

  adb help - このヘルプメッセージを表示する。
  adb version - バージョン番号を表示する。

スクリプトを作成する:
  adb wait-for-device - デバイスがオンラインになるまでブロックする。
  adb start-server - サーバーが起動していることを確認する。
  adb kill-server - 実行中のサーバーを停止する。
  adb get-state - オフライン|ブートローダー|デバイスと表示する。
  adb get-serialno - 表示する: と表示する。
  adb get-devpath - 表示する: を表示する。
  adb status-window - 指定したデバイスの状態を表示し続ける
  adb remount - デバイスの /system パーティションを読み書き可能に再マウントする
  adb reboot [bootloader|recovery] - デバイスを再起動し、オプションでブートローダまたはリカバリプログラムに移行する。
  adb reboot-bootloader - デバイスをブートローダにリブートします。
  adb root - root 権限で adbd デーモンを再起動します。
  adb usb - USB をリッスンしている adbd デーモンを再起動します。
  adb tcpip  - 指定したポートの TCP をリッスンしている adbd デーモンを再起動します。
ネットワーキングを行う:
  adb ppp  [parameters] - USB経由でPPPを実行する。
 注意:自動的にPPP接続を開始してはならない。
  は PPP ストリームの tty を指す。例: dev:/dev/omap_csmi_tty1
 [パラメータ] - 例: defaultroute debug dump local notty usepeerdns

adb sync notes: adb sync [  ]。
   はいくつかの方法で解釈できる:

  -  が指定されていない場合、/system パーティションと /data パーティションの両方が更新されます。

  - system "または "data "の場合、対応するパーティションだけが更新されます。
    が更新されます。

環境変数
  ADB_TRACE - デバッグ情報を表示します。以下のカンマ区切りリスト
                                 値 1 または all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport, jdwp
  ANDROID_SERIAL - 接続先のシリアル番号。指定された場合は、-sが優先される。
  ANDROID_LOG_TAGS - logcatオプションと一緒に使うと、これらのデバッグタグだけが出力される。
この記事は役に立ちましたか?

関連記事