AndroidDebugBridge
public
class
AndroidDebugBridge
extends Object
| java.lang.Object | |
| ↳ | com.android.tradefed.device.server.AndroidDebugBridge |
ホスト側の Android Debug Bridge(adb)への接続
これは、デバイス、エミュレータ、またはそれらで実行されているアプリケーションと通信するための中心点です。
init(boolean) は、何らかの処理を行う前に呼び出す必要があります。
概要
ネストされたクラス | |
|---|---|
interface |
AndroidDebugBridge.IClientChangeListener
このインターフェースを実装するクラスは、 |
interface |
AndroidDebugBridge.IDebugBridgeChangeListener
このインターフェースを実装するクラスは、 |
interface |
AndroidDebugBridge.IDeviceChangeListener
このインターフェースを実装するクラスは、 |
定数 | |
|---|---|
int |
DEFAULT_START_ADB_TIMEOUT_MILLIS
ADB サーバーの起動時に使用されるデフォルトのタイムアウト |
フィールド | |
|---|---|
public
static
final
AdbVersion |
MIN_ADB_VERSION
サポートされている adb の最小バージョンと最大バージョン。 |
パブリック メソッド | |
|---|---|
static
void
|
addClientChangeListener(AndroidDebugBridge.IClientChangeListener listener)
|
static
void
|
addDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)
新しい |
static
void
|
addDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)
|
static
void
|
clientChanged(ClientImpl client, int changeMask)
変更された |
static
AndroidDebugBridge
|
createBridge(long timeout, TimeUnit unit)
特定の実行可能ファイルにリンクされていない |
static
AndroidDebugBridge
|
createBridge(String osLocation, boolean forceNewBridge)
このメソッドは非推奨です。ADB が応答しない場合、このメソッドはハングする可能性があります。代わりに |
static
AndroidDebugBridge
|
createBridge()
このメソッドは非推奨です。ADB が応答しない場合、このメソッドはハングする可能性があります。代わりに |
static
AndroidDebugBridge
|
createBridge(String osLocation, boolean forceNewBridge, long timeout, TimeUnit unit)
コマンドライン ツールの場所から新しいデバッグ ブリッジを作成します。 |
static
void
|
deviceChanged(IDevice device, int changeMask)
変更された |
static
void
|
deviceConnected(IDevice device)
新しい |
static
void
|
deviceDisconnected(IDevice device)
切断された |
static
void
|
disableFakeAdbServerMode()
|
static
void
|
disconnectBridge()
このメソッドは非推奨です。ADB が応答しない場合、このメソッドはハングする可能性があります。代わりに |
static
boolean
|
disconnectBridge(long timeout, TimeUnit unit)
現在のデバッグ ブリッジを切断し、オブジェクトを破棄します。 |
static
void
|
enableFakeAdbServerMode(int port)
|
static
ListenableFuture<AdbVersion>
|
getAdbVersion(File adb)
|
static
AndroidDebugBridge
|
getBridge()
現在のデバッグ ブリッジを返します。 |
static
boolean
|
getClientSupport()
|
int
|
getConnectionAttemptCount()
|
static
int
|
getDebugBridgeChangeListenerCount()
|
static
int
|
getDeviceChangeListenerCount()
|
IDevice[]
|
getDevices()
デバイスを返します。 |
ListenableFuture<
|
getRawDeviceList()
adb コマンドラインによってレポートされたデバイスのセットを返します。 |
int
|
getRestartAttemptCount()
|
static
InetSocketAddress
|
getSocketAddress()
このメソッドは非推奨です。このメソッドは、ADB サーバーで使用されているものと一致しない可能性のあるループバック サーバー アドレスを返します。たとえば、JVM が IPv4 モードで、ADB サーバーが IPv6 ループバック アドレスでホストされている場合があります。ADB サーバーへの接続を開くときは、代わりに |
static
ListenableFuture<String>
|
getVirtualDeviceId(ListeningExecutorService service, File adb, IDevice device)
|
boolean
|
hasInitialDeviceList()
ブリッジが作成後に adb から初期リストを取得したかどうかを返します。 |
static
void
|
init(AdbInitOptions options)
|
static
void
|
init(boolean clientSupport)
|
static
void
|
init(boolean clientSupport, boolean useLibusb,
|
static
void
|
initIfNeeded(boolean clientSupport)
必要な場合にのみライブラリを初期化。テスト以外の用途では非推奨になりました。 |
boolean
|
isConnected()
|
static
boolean
|
isUserManagedAdbMode()
|
static
SocketChannel
|
openConnection()
ローカルの Android Debug Bridge サーバーへの接続を試みます。 |
static
void
|
removeClientChangeListener(AndroidDebugBridge.IClientChangeListener listener)
|
static
void
|
removeDebugBridgeChangeListener(AndroidDebugBridge.IDebugBridgeChangeListener listener)
新しい |
static
void
|
removeDeviceChangeListener(AndroidDebugBridge.IDeviceChangeListener listener)
|
boolean
|
restart(long timeout, TimeUnit unit)
adb を再起動しますが、その周辺のサービスは再起動しません。 |
boolean
|
restart()
このメソッドは非推奨です。ADB が応答しない場合、このメソッドはハングする可能性があります。代わりに |
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 に対応します。
パブリック メソッド
addClientChangeListener
public static void addClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)
ClientImpl プロパティが変更されたときに通知されるリスナーのコレクションにリスナーを追加します。このとき、IClientChangeListener インターフェースで定義されたメッセージのいずれかを送信します。
| パラメータ | |
|---|---|
listener |
AndroidDebugBridge.IClientChangeListener: 通知されるリスナー。 |
addDebugBridgeChangeListener
public static void addDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)
新しい AndroidDebugBridge が接続されたときに通知されるリスナーのコレクションにリスナーを追加します。その際、IDebugBridgeChangeListener インターフェースで定義されたメッセージのいずれかを送信します。
| パラメータ | |
|---|---|
listener |
AndroidDebugBridge.IDebugBridgeChangeListener: 通知されるリスナー。 |
addDeviceChangeListener
public static void addDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)
IDevice が接続または切断されたとき、またはそのプロパティや ClientImpl リストが変更されたときに通知されるリスナーのコレクションにリスナーを追加します。この通知は、IDeviceChangeListener インターフェースで定義されたメッセージのいずれかを送信することで行われます。
| パラメータ | |
|---|---|
listener |
AndroidDebugBridge.IDeviceChangeListener: 通知されるリスナー。 |
clientChanged
public static void clientChanged (ClientImpl client, int changeMask)
変更された ClientImpl をリスナーに通知します。
リスナーの通知は同期ブロックで行われます。リスナーが IDevice のさまざまなメソッドや、内部ロックを使用する getDevices() にアクセスする可能性があることを想定しておくことが重要です。
| パラメータ | |
|---|---|
client |
ClientImpl: 変更された Client。 |
changeMask |
int: Client で変更された内容を示すマスク |
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 |
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 |
deviceChanged
public static void deviceChanged (IDevice device, int changeMask)
変更された IDevice をリスナーに通知します。
リスナーの通知は同期ブロックで行われます。リスナーが IDevice のさまざまなメソッドや、内部ロックを使用する getDevices() にアクセスする可能性があることを想定しておくことが重要です。
| パラメータ | |
|---|---|
device |
IDevice: 変更された IDevice。 |
changeMask |
int |
deviceConnected
public static void deviceConnected (IDevice device)
新しい IDevice をリスナーに通知します。
リスナーの通知は同期ブロックで行われます。リスナーが IDevice のさまざまなメソッドや、内部ロックを使用する getDevices() にアクセスする可能性があることを想定しておくことが重要です。
| パラメータ | |
|---|---|
device |
IDevice: 新しい IDevice。 |
deviceDisconnected
public static void deviceDisconnected (IDevice device)
切断された IDevice をリスナーに通知します。
リスナーの通知は同期ブロックで行われます。リスナーが IDevice のさまざまなメソッドや、内部ロックを使用する getDevices() にアクセスする可能性があることを想定しておくことが重要です。
| パラメータ | |
|---|---|
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 |
|
getClientSupport
public static boolean getClientSupport ()
IDevice で実行されている ClientImpl のモニタリングと操作をサポートするように ddmlib が設定されているかどうかを返します。
| 戻り値 | |
|---|---|
boolean |
|
getConnectionAttemptCount
public int getConnectionAttemptCount ()
AndroidDebugBridge オブジェクトが adb デーモンへの接続を試みた回数を返します。
| 戻り値 | |
|---|---|
int |
|
getDebugBridgeChangeListenerCount
public static int getDebugBridgeChangeListenerCount ()
| 戻り値 | |
|---|---|
int |
|
getDeviceChangeListenerCount
public static int getDeviceChangeListenerCount ()
| 戻り値 | |
|---|---|
int |
|
getRawDeviceList
public ListenableFuture<> getRawDeviceList ()
adb コマンドラインによってレポートされたデバイスのセットを返します。これは主に、別のチャネルを介して getDevices() リストの状態を検証する必要がある接続アシスタントやその他の診断ツールを対象としています。デバイスのリストにアクセスするだけのコードは、代わりに getDevices() を呼び出す必要があります。
| 戻り値 | |
|---|---|
ListenableFuture< |
|
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(boolean) と同様に、カスタムの環境変数セットを渡すことができます。
| パラメータ | |
|---|---|
options |
AdbInitOptions |
init
public static void init (boolean clientSupport)
ddm ライブラリを初期化します。
これは、createBridge(String, boolean) の呼び出しの前に一度だけ呼び出す必要があります。
ddmlib の設定も、デフォルト値から変更されたデフォルト値で初期化する必要があります。
アプリケーションが終了するときは、terminate() を呼び出す必要があります。
| パラメータ | |
|---|---|
clientSupport |
boolean: ライブラリで、デバイスで実行されているアプリのモニタリングと操作を有効にするかどうかを示します。 |
init
public static void init (boolean clientSupport,
boolean useLibusb,
env) init(boolean) と同様に、libusb を有効にして、カスタムの環境変数を渡すことができます。
| パラメータ | |
|---|---|
clientSupport |
boolean |
useLibusb |
boolean |
env |
|
initIfNeeded
public static void initIfNeeded (boolean clientSupport)
必要な場合にのみライブラリを初期化。テスト以外の用途では非推奨。
| パラメータ | |
|---|---|
clientSupport |
boolean: ライブラリで、デバイスで実行されているアプリのモニタリングと操作を有効にするかどうかを示します。 |
関連項目:
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 |
成功した場合は接続されたソケット |
| 例外 | |
|---|---|
|
接続を開くときにエラーが発生した場合 |
removeClientChangeListener
public static void removeClientChangeListener (AndroidDebugBridge.IClientChangeListener listener)
ClientImpl プロパティが変更されたときに通知されるリスナーのコレクションからリスナーを削除します。
| パラメータ | |
|---|---|
listener |
AndroidDebugBridge.IClientChangeListener: 通知を停止するリスナー。 |
removeDebugBridgeChangeListener
public static void removeDebugBridgeChangeListener (AndroidDebugBridge.IDebugBridgeChangeListener listener)
新しい AndroidDebugBridge が開始されたときに通知されるリスナーのコレクションからリスナーを削除します。
| パラメータ | |
|---|---|
listener |
AndroidDebugBridge.IDebugBridgeChangeListener: 通知を停止するリスナー。 |
removeDeviceChangeListener
public static void removeDeviceChangeListener (AndroidDebugBridge.IDeviceChangeListener listener)
IDevice が接続または切断されたとき、またはそのプロパティや ClientImpl リストが変更されたときに通知されるリスナーのコレクションからリスナーを削除します。
| パラメータ | |
|---|---|
listener |
AndroidDebugBridge.IDeviceChangeListener: 通知を停止するリスナー。 |
やり直し
public boolean restart (long timeout,
TimeUnit unit)adb を再起動しますが、その周辺のサービスは再起動しません。
| パラメータ | |
|---|---|
timeout |
long |
unit |
TimeUnit |
| 戻り値 | |
|---|---|
boolean |
成功した場合は true。 |
やり直し
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 ライブラリを終了します。これは、アプリの終了時に呼び出す必要があります。