AndroidDebugBridge

public class AndroidDebugBridge
extends Object

java.lang.Object
   ↳ com.android.tradefed.device.server.AndroidDebugBridge


ホスト側の Android Debug Bridge(adb)への接続

これは、デバイス、エミュレータ、またはそれらで実行されているアプリケーションと通信するための中心点です。

init() は、何らかの処理を行う前に呼び出す必要があります。

概要

ネストされたクラス

interface AndroidDebugBridge.IDebugBridgeChangeListener

このインターフェースを実装するクラスは、AndroidDebugBridge の変更(再起動を含む)を処理するメソッドを提供します。 

interface AndroidDebugBridge.IDeviceChangeListener

このインターフェースを実装するクラスは、IDevice の追加、削除、変更を処理するメソッドを提供します。 

定数

int DEFAULT_START_ADB_TIMEOUT_MILLIS

ADB サーバーの起動時に使用されるデフォルトのタイムアウト

フィールド

public static final AdbVersion MIN_ADB_VERSION

サポートされている adb の最小バージョンと最大バージョン。

パブリック メソッド

static void addDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)

新しい AndroidDebugBridge が接続されたときに通知されるリスナーのコレクションにリスナーを追加します。IDebugBridgeChangeListener インターフェースで定義されたメッセージのいずれかを送信します。

static void addDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)

IDevice が接続または切断されたとき、またはそのプロパティや ERROR(/ClientImpl) リストが変更されたときに通知を受け取るリスナーのコレクションにリスナーを追加します。この通知は、IDeviceChangeListener インターフェースで定義されたメッセージのいずれかを送信することで行われます。

static AndroidDebugBridge createBridge(String osLocation, boolean forceNewBridge, long timeout, TimeUnit unit)

コマンドライン ツールの場所から新しいデバッグ ブリッジを作成します。

static AndroidDebugBridge createBridge(long timeout, TimeUnit unit)

特定の実行可能ファイルにリンクされていない AndroidDebugBridge を作成します。

static AndroidDebugBridge createBridge(String osLocation, boolean forceNewBridge)

このメソッドは非推奨です。ADB が応答しない場合、このメソッドはハングする可能性があります。代わりに createBridge(String,boolean,long,TimeUnit) を使用してください。

static AndroidDebugBridge createBridge()

このメソッドは非推奨です。ADB が応答しない場合、このメソッドはハングする可能性があります。代わりに createBridge(long,TimeUnit) を使用してください。

static void deviceChanged(IDevice device, int changeMask)

変更された IDevice をリスナーに通知します。

static void deviceConnected(IDevice device)

新しい IDevice をリスナーに通知します。

static void deviceDisconnected(IDevice device)

切断された IDevice をリスナーに通知します。

static void disableFakeAdbServerMode()
static void disconnectBridge()

このメソッドは非推奨です。ADB が応答しない場合、このメソッドはハングする可能性があります。代わりに disconnectBridge(long,TimeUnit) を使用してください。

static boolean disconnectBridge(long timeout, TimeUnit unit)

現在のデバッグ ブリッジを切断し、オブジェクトを破棄します。

static void enableFakeAdbServerMode(int port)
static ListenableFuture<AdbVersion> getAdbVersion(File adb)
static AndroidDebugBridge getBridge()

現在のデバッグ ブリッジを返します。

int getConnectionAttemptCount()

AndroidDebugBridge オブジェクトが adb デーモンへの接続を試みた回数を返します。

static int getDebugBridgeChangeListenerCount()
static int getDeviceChangeListenerCount()
IDevice[] getDevices()

デバイスを返します。

ListenableFuture<List<AdbDevice>> getRawDeviceList()

adb コマンドラインによってレポートされたデバイスのセットを返します。

int getRestartAttemptCount()

AndroidDebugBridge オブジェクトが adb デーモンの再起動を試みた回数を返します。

static InetSocketAddress getSocketAddress()

このメソッドは非推奨です。このメソッドは、ADB サーバーで使用されているものと一致しない可能性のあるループバック サーバー アドレスを返します。たとえば、JVM が IPv4 モードで、ADB サーバーが IPv6 ループバック アドレスでホストされている場合があります。ADB サーバーへの接続を開くときは、代わりに openConnection() を優先します。

static ListenableFuture<String> getVirtualDeviceId(ListeningExecutorService service, File adb, IDevice device)
boolean hasInitialDeviceList()

ブリッジが作成後に adb から初期リストを取得したかどうかを返します。

static void init(AdbInitOptions options)

init() と同様に、カスタムの env セットを渡すことができます。

static void init(boolean useLibusb, Map<String, String> env)

init() と同様に、libusb を有効にしてカスタムの env セットを渡すことができます。

static void init()

ddm ライブラリを初期化します。

static void initIfNeeded()

必要な場合にのみライブラリを初期化。テスト以外の用途では非推奨。

boolean isConnected()

AndroidDebugBridge オブジェクトが adb デーモンに接続されているかどうかを返します。

static boolean isUserManagedAdbMode()
static SocketChannel openConnection()

ローカルの Android デバッグブリッジ サーバーへの接続を試みます。

static void removeDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)

新しい AndroidDebugBridge が開始されたときに通知されるリスナーのコレクションからリスナーを削除します。

static void removeDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)

IDevice が接続または切断されたとき、またはそのプロパティや ERROR(/ClientImpl) リストが変更されたときに通知されるリスナーのコレクションからリスナーを削除します。

boolean restart(long timeout, TimeUnit unit)

adb を再起動しますが、その周辺のサービスは再起動しません。

boolean restart()

このメソッドは非推奨です。ADB が応答しない場合、このメソッドはハングする可能性があります。代わりに restart(long,TimeUnit) を使用してください。

boolean startAdb(long timeout, TimeUnit unit)

adb ホスト側のサーバーを起動します。

static void terminate()

ddm ライブラリを終了します。

定数

DEFAULT_START_ADB_TIMEOUT_MILLIS

public static final int DEFAULT_START_ADB_TIMEOUT_MILLIS

ADB サーバーの起動時に使用されるデフォルトのタイムアウト

定数値: 20000 (0x00004e20)

フィールド

MIN_ADB_VERSION

public static final AdbVersion MIN_ADB_VERSION

サポートされている adb の最小バージョンと最大バージョン。これは、//device/tools/adb/adb.h にある ADB_SERVER_VERSION に対応します。

パブリック メソッド

addDebugBridgeChangeListener

public static void addDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)

新しい AndroidDebugBridge が接続されたときに通知されるリスナーのコレクションにリスナーを追加します。このとき、IDebugBridgeChangeListener インターフェースで定義されたメッセージのいずれかを送信します。

パラメータ
listener AndroidDebugBridge.IDebugBridgeChangeListener: 通知されるリスナー。

addDeviceChangeListener

public static void addDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)

IDevice が接続または切断されたとき、またはそのプロパティや ERROR(/ClientImpl) リストが変更されたときに通知されるリスナーのコレクションにリスナーを追加します。この通知は、IDeviceChangeListener インターフェースで定義されたメッセージのいずれかを送信することで行われます。

パラメータ
listener AndroidDebugBridge.IDeviceChangeListener: 通知されるリスナー。

createBridge

public static AndroidDebugBridge createBridge (String osLocation, 
                boolean forceNewBridge, 
                long timeout, 
                TimeUnit unit)

コマンドライン ツールの場所から新しいデバッグ ブリッジを作成します。

ロケーションが同じで forceNewBridge が false に設定されていない限り、既存のサーバーは切断されます。

パラメータ
osLocation String: コマンドライン ツール「adb」の場所

forceNewBridge boolean: 同じロケーションのブリッジがすでに存在する場合でも、新しいブリッジの作成を強制します。

timeout long: 待機する最大時間

unit TimeUnit: timeout 引数の時間単位

戻り値
AndroidDebugBridge 接続されたブリッジ。ブリッジの作成または接続中にエラーが発生した場合は null

createBridge

public static AndroidDebugBridge createBridge (long timeout, 
                TimeUnit unit)

特定の実行可能ファイルにリンクされていない AndroidDebugBridge を作成します。

このブリッジは adb が実行されていることを想定しています。adb の開始、停止、再起動はできません。

ブリッジがすでに開始されている場合は、変更なしで直接返されます(getBridge() の呼び出しと同様)。

パラメータ
timeout long

unit TimeUnit

戻り値
AndroidDebugBridge 接続されたブリッジ。ブリッジの作成または接続中にエラーが発生した場合は null

createBridge

public static AndroidDebugBridge createBridge (String osLocation, 
                boolean forceNewBridge)

このメソッドは非推奨です。
ADB が応答しない場合、このメソッドはハングする可能性があります。代わりに createBridge(String,boolean,long,TimeUnit) を使用してください。

コマンドライン ツールの場所から新しいデバッグ ブリッジを作成します。

ロケーションが同じで forceNewBridge が false に設定されていない限り、既存のサーバーは切断されます。

パラメータ
osLocation String: コマンドライン ツール「adb」の場所

forceNewBridge boolean: 同じロケーションのブリッジがすでに存在する場合でも、新しいブリッジの作成を強制します。

戻り値
AndroidDebugBridge 接続されたブリッジ。ブリッジの作成または接続中にエラーが発生した場合は null

createBridge

public static AndroidDebugBridge createBridge ()

このメソッドは非推奨です。
ADB が応答しない場合、このメソッドはハングする可能性があります。代わりに createBridge(long,TimeUnit) を使用してください。

特定の実行可能ファイルにリンクされていない AndroidDebugBridge を作成します。

このブリッジは adb が実行されていることを想定しています。adb の開始、停止、再起動はできません。

ブリッジがすでに開始されている場合は、変更なしで直接返されます(getBridge() の呼び出しと同様)。

戻り値
AndroidDebugBridge 接続されたブリッジ。ブリッジの作成または接続中にエラーが発生した場合は null

deviceChanged

public static void deviceChanged (IDevice device, 
                int changeMask)

変更された IDevice をリスナーに通知します。

リスナーの通知は同期ブロックで行われます。リスナーが内部ロックを使用する getDevices() だけでなく、IDevice のさまざまなメソッドにアクセスする可能性があることを想定しておくことが重要です。

パラメータ
device IDevice: 変更された IDevice

changeMask int

deviceConnected

public static void deviceConnected (IDevice device)

新しい IDevice をリスナーに通知します。

リスナーの通知は同期ブロックで行われます。リスナーが内部ロックを使用する getDevices() だけでなく、IDevice のさまざまなメソッドにアクセスする可能性があることを想定しておくことが重要です。

パラメータ
device IDevice: 新しい IDevice

deviceDisconnected

public static void deviceDisconnected (IDevice device)

切断された IDevice をリスナーに通知します。

リスナーの通知は同期ブロックで行われます。リスナーが内部ロックを使用する getDevices() だけでなく、IDevice のさまざまなメソッドにアクセスする可能性があることを想定しておくことが重要です。

パラメータ
device IDevice: 切断された IDevice

disableFakeAdbServerMode

public static void disableFakeAdbServerMode ()

disconnectBridge

public static void disconnectBridge ()

このメソッドは非推奨です。
ADB が応答しない場合、このメソッドはハングする可能性があります。代わりに disconnectBridge(long,TimeUnit) を使用してください。

現在のデバッグ ブリッジを切断し、オブジェクトを破棄します。新しいオブジェクトは createBridge(String,boolean) で作成する必要があります。

これにより、現在の adb ホストサーバーも停止します。

disconnectBridge

public static boolean disconnectBridge (long timeout, 
                TimeUnit unit)

現在のデバッグ ブリッジを切断し、オブジェクトを破棄します。新しいオブジェクトは createBridge(String,boolean) で作成する必要があります。

これにより、現在の adb ホストサーバーも停止します。

パラメータ
timeout long

unit TimeUnit

戻り値
boolean 指定されたタイムアウト内にメソッドが成功した場合は true

enableFakeAdbServerMode

public static void enableFakeAdbServerMode (int port)

パラメータ
port int

getAdbVersion

public static ListenableFuture<AdbVersion> getAdbVersion (File adb)

パラメータ
adb File

戻り値
ListenableFuture<AdbVersion>

getBridge

public static AndroidDebugBridge getBridge ()

現在のデバッグ ブリッジを返します。作成されていない場合は null になります。

戻り値
AndroidDebugBridge

getConnectionAttemptCount

public int getConnectionAttemptCount ()

AndroidDebugBridge オブジェクトが adb デーモンへの接続を試みた回数を返します。

戻り値
int

getDebugBridgeChangeListenerCount

public static int getDebugBridgeChangeListenerCount ()

戻り値
int

getDeviceChangeListenerCount

public static int getDeviceChangeListenerCount ()

戻り値
int

getDevices

public IDevice[] getDevices ()

デバイスを返品します。

戻り値
IDevice[]

関連項目:

getRawDeviceList

public ListenableFuture<List<AdbDevice>> getRawDeviceList ()

adb コマンドラインによってレポートされたデバイスのセットを返します。これは主に、別のチャネルを介して getDevices() リストの状態を検証する必要がある接続アシスタントやその他の診断ツールを対象としています。デバイスのリストにアクセスするだけのコードは、代わりに getDevices() を呼び出す必要があります。

戻り値
ListenableFuture<List<AdbDevice>>

getRestartAttemptCount

public int getRestartAttemptCount ()

AndroidDebugBridge オブジェクトが adb デーモンの再起動を試みた回数を返します。

戻り値
int

getSocketAddress

public static InetSocketAddress getSocketAddress ()

このメソッドは非推奨です。
このメソッドは、ADB サーバーで使用されているものと一致しない可能性のあるループバック サーバー アドレスを返します。たとえば、JVM が IPv4 モードで、ADB サーバーが IPv6 ループバック アドレスでホストされている場合があります。ADB サーバーへの接続を開くときは、代わりに openConnection() を優先します。

ホスト上の ADB サーバーのソケット アドレスを返します。

このメソッドは、ADB サーバーへのソケット チャネルを開いて、動作することがわかっているソケット アドレスを返そうとします。IPv4 と IPv6 の両方のループバック アドレスが試行されます。どちらも接続できない場合、このメソッドは JVM で優先されるループバック アドレスを返すようにフォールバックします。この代替ロジックは、API の破損を防ぐために必要です。

偽の ADB サーバーモードが有効になっている場合、このメソッドは ADB への接続を試行せずに、自動的に以前の実装にフォールバックします。

戻り値
InetSocketAddress

getVirtualDeviceId

public static ListenableFuture<String> getVirtualDeviceId (ListeningExecutorService service, 
                File adb, 
                IDevice device)

パラメータ
service ListeningExecutorService

adb File

device IDevice

戻り値
ListenableFuture<String>

hasInitialDeviceList

public boolean hasInitialDeviceList ()

ブリッジが作成後に adb から初期リストを取得したかどうかを返します。

通常、createBridge(String,boolean) の直後に getDevices() を呼び出すと、空のリストが返されます。これは、adb との内部非同期通信メカニズムが原因です。このメカニズムでは、getDevices() の呼び出し前に IDevice リストが作成される保証はありません。

IDevice オブジェクトのリストを取得するには、IDeviceChangeListener オブジェクトを作成することをおすすめします。

戻り値
boolean

init

public static void init (AdbInitOptions options)

init() と同様に、カスタムの環境変数セットを渡すことができます。

パラメータ
options AdbInitOptions

init

public static void init (boolean useLibusb, 
                Map<String, String> env)

init() と同様に、libusb を有効にしてカスタム環境セットを渡すことができます。自動的に実行します

パラメータ
useLibusb boolean

env Map

init

public static void init ()

ddm ライブラリを初期化します。

これは、createBridge(String,boolean) の呼び出しの前に一度だけ呼び出す必要があります。

ddmlib の設定も、デフォルト値から変更されたデフォルト値で初期化する必要があります。

アプリケーションが終了するときは、terminate() を呼び出す必要があります。

initIfNeeded

public static void initIfNeeded ()

必要な場合にのみライブラリを初期化。テスト以外の用途では非推奨。

関連項目:

isConnected

public boolean isConnected ()

AndroidDebugBridge オブジェクトが adb デーモンに接続されているかどうかを返します。

戻り値
boolean

isUserManagedAdbMode

public static boolean isUserManagedAdbMode ()

戻り値
boolean ddmlib が ADB サーバーを管理しない、または管理すべきでないユーザー管理の ADB モードで動作している場合。

openConnection

public static SocketChannel openConnection ()

ローカルの Android Debug Bridge サーバーへの接続を試みます。

戻り値
SocketChannel 成功した場合は接続されたソケット

例外
IOException 接続を開くときにエラーが発生した場合

removeDebugBridgeChangeListener

public static void removeDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)

新しい AndroidDebugBridge が開始されたときに通知されるリスナーのコレクションからリスナーを削除します。

パラメータ
listener AndroidDebugBridge.IDebugBridgeChangeListener: 通知を停止するリスナー。

removeDeviceChangeListener

public static void removeDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)

IDevice が接続または切断されたとき、またはそのプロパティや ERROR(/ClientImpl) リストが変更されたときに通知されるリスナーのコレクションからリスナーを削除します。

パラメータ
listener AndroidDebugBridge.IDeviceChangeListener: 通知を停止するリスナー。

restart

public boolean restart (long timeout, 
                TimeUnit unit)

adb を再起動しますが、その周辺のサービスは再起動しません。

パラメータ
timeout long

unit TimeUnit

戻り値
boolean 成功した場合は true。

restart

public boolean restart ()

このメソッドは非推奨です。
ADB が応答しない場合、このメソッドはハングする可能性があります。代わりに restart(long,TimeUnit) を使用してください。

adb を再起動しますが、その周辺のサービスは再起動しません。

戻り値
boolean 成功した場合は true。

startAdb

public boolean startAdb (long timeout, 
                TimeUnit unit)

adb ホスト側のサーバーを起動します。ユーザー管理の ADB サーバーを使用している場合は、このメソッドを使用しないでください。サーバーのライフサイクルは ddmlib ではなくユーザーが管理する必要があるためです。

パラメータ
timeout long

unit TimeUnit

戻り値
boolean 成功した場合は true

停止

public static void terminate ()

ddm ライブラリを終了します。これは、アプリの終了時に呼び出す必要があります。