Android adb共通命令(1)
Androidデバッグブリッジ(adb)は、デバイスやシミュレータの状態を管理するのに役立つさまざまな用途のツールです.
以下の方法でadbを加えることができます.デバイス上でshellコマンド を実行するポート転送によりシミュレータまたはデバイス を管理する.は、シミュレータまたはデバイスからファイル をコピーまたはコピーする.
次にadbについて説明し、一般的な使用について説明する.
Contents概要 adbコマンド を発行する.クエリーシミュレータ/デバイスインスタンス は、特定のシミュレータ/デバイスインスタンスにコマンド を送信する.インストールソフトウェア 転送ポート シミュレータ/デバイスからファイル をコピーまたはコピーする. Adbコマンドリスト shellコマンド を起動リモートshell側でsqllite 3接続データベース を実行 UI/ソフトウェア試験プログラムMonkey 他のshellコマンド logcatログを有効にする logcatコマンド を使用フィルタログ出力 制御ログ出力フォーマット 使用可能なログ・バッファ を表示 stdoutおよびstderr の表示 Logcatコマンドリスト adbサービスを停止する
概要
Androidデバッグシステムは、3つのコンポーネントを含む顧客向けサービスシステムです.プログラムを開発するために使用するコンピュータ上で実行されるクライアントです.shell側でadbコマンドを使用してクライアントを起動できます.他のAndroidツール、例えばADTプラグインやDDMSも同様にadbクライアントを生成することができる. は、送信するマシン上でバックグラウンドプロセスとして実行されるサーバです.このサーバは、クライアントとシミュレータまたはデバイス上で実行されるadbデーモンとの通信を管理する. は、シミュレータまたはデバイス上のデーモン(daemon)で実行される後続のプロセスの形式で実行される.
adbクライアントを起動すると、クライアントはまずadbサービスプロセスが実行されているかどうかを確認します.ない場合は、サービスプロセスを開始します.サーバが実行すると、adbサーバはローカルのTCPポート5037をバインドし、adbクライアントからのコマンドを傍受する-すべてのadbクライアントはポート5037でadbサーバと対話する.
次に、サーバは、すべての実行中のシミュレータまたはデバイスインスタンスを接続します.5555~5585のすべての範囲の奇数ポートをスキャンすることで、すべてのシミュレータまたはデバイスを位置決めします.サーバがadbデーモンを見つけたら、ポートへの接続が確立されます.シミュレータまたはデバイスインスタンスは、対応するコンソールの接続に使用される偶数ポートと、adb接続に応答する奇数ポートの2つの連続ポートを取得することに注意してください.たとえば、
シミュレータ1、コンソール:ポート5554
シミュレータ1、Adbポート5555
コンソール:ポート5556
Adbポート5557...
以上のように、シミュレータの例は5555ポートを介してadbに接続する、5554ポートを用いてコンソールに接続するのと同じである.
サーバがすべてのシミュレータインスタンスに接続されると、adbコマンドを使用してインスタンスを制御およびアクセスできます.サーバがシミュレータ/デバイスインスタンスの接続を管理し、複数のadbクライアントからのコマンドの処理を制御するため、シミュレータまたはデバイスインスタンスを任意のクライアント(またはスクリプト)で制御することができる.
以下のセクションでは、adbのコマンド使用とシミュレータ/デバイスの管理のステータスについて説明します.ADTプラグインを搭載したEclipseでAndroidプログラムを開発する場合は、コマンドラインでadbを使用する必要はありません.ADTプラグインはすでに透明にadbをEclipseに統合しています.もちろん、必要であればadbを直接使用することもできます.例えば、デバッグします.
adbコマンドを発行
Androidコマンドの発行:開発機のコマンドラインまたはスクリプトにAndroidコマンドを発行できます.使用方法:
コマンドを発行すると、Androidクライアントが有効になります.クライアントはシミュレータインスタンスに関連付けられていないので、デュアルサーバ/デバイスが実行中の場合は、制御すべきコマンドのターゲットインスタンスを
クエリー・シミュレータ/デバイス・インスタンス
adbコマンドを発行する前に、adbサーバにどのようなシミュレータ/デバイスインスタンスが接続されているかを知る必要があります.
•これに応答して、adbは各インスタンスに対応するステータス情報を作成します.・シーケンス番号--adbによって作成された文字列.この文字列は、独自の制御ポート 例の接続状態は、 の3つの状態である.
各インスタンスの出力には、次の固定フォーマットがあります.
次に、
現在シミュレータ/デバイスが動作していない場合、adbは
特定のシミュレータ/デバイスインスタンスにコマンドを送信
複数のシミュレータ/デバイスインスタンスが実行されている場合は、adbコマンドを発行するときにターゲットインスタンスを指定する必要があります.そうするには、
上記のように、adbによって割り当てられたシーケンス番号を使用するコマンドにターゲットインスタンスを指定します.
例は次のとおりです.
この点、ターゲットシミュレータ/デバイスのインスタンスを指定することなく
ソフトウェアのインストール
adbを使用して、開発パソコンからアプリケーションをコピーし、シミュレータ/デバイスインスタンスにインストールできます.このようにして、
シミュレータ/デバイスインスタンスにインストール可能なものをどのように作成するかについて、より多くの情報を得る.apkファイルの情報は、Android Asset Packaging Tool(aapt)を参照することができる.
Eclipse IDEを使用しており、ADTプラグインがインストールされている場合は、シミュレータ/デバイス上のアプリケーションを直接adb(またはaapt)でインストールする必要はありません.そうでなければ、ADTプラグインはアプリケーションのパッケージとインストールを全権で処理します.
転送ポート
同様に、adbを使用して抽象と命名されたUNIXドメインスリーブインタフェースを確立することができ、上記の手順は以下の通りである.
シミュレータ/デバイスからファイルをコピーまたはコピー
adb
以下の方法でadbを加えることができます.
次にadbについて説明し、一般的な使用について説明する.
Contents
概要
Androidデバッグシステムは、3つのコンポーネントを含む顧客向けサービスシステムです.
adbクライアントを起動すると、クライアントはまずadbサービスプロセスが実行されているかどうかを確認します.ない場合は、サービスプロセスを開始します.サーバが実行すると、adbサーバはローカルのTCPポート5037をバインドし、adbクライアントからのコマンドを傍受する-すべてのadbクライアントはポート5037でadbサーバと対話する.
次に、サーバは、すべての実行中のシミュレータまたはデバイスインスタンスを接続します.5555~5585のすべての範囲の奇数ポートをスキャンすることで、すべてのシミュレータまたはデバイスを位置決めします.サーバがadbデーモンを見つけたら、ポートへの接続が確立されます.シミュレータまたはデバイスインスタンスは、対応するコンソールの接続に使用される偶数ポートと、adb接続に応答する奇数ポートの2つの連続ポートを取得することに注意してください.たとえば、
シミュレータ1、コンソール:ポート5554
シミュレータ1、Adbポート5555
コンソール:ポート5556
Adbポート5557...
以上のように、シミュレータの例は5555ポートを介してadbに接続する、5554ポートを用いてコンソールに接続するのと同じである.
サーバがすべてのシミュレータインスタンスに接続されると、adbコマンドを使用してインスタンスを制御およびアクセスできます.サーバがシミュレータ/デバイスインスタンスの接続を管理し、複数のadbクライアントからのコマンドの処理を制御するため、シミュレータまたはデバイスインスタンスを任意のクライアント(またはスクリプト)で制御することができる.
以下のセクションでは、adbのコマンド使用とシミュレータ/デバイスの管理のステータスについて説明します.ADTプラグインを搭載したEclipseでAndroidプログラムを開発する場合は、コマンドラインでadbを使用する必要はありません.ADTプラグインはすでに透明にadbをEclipseに統合しています.もちろん、必要であればadbを直接使用することもできます.例えば、デバッグします.
adbコマンドを発行
Androidコマンドの発行:開発機のコマンドラインまたはスクリプトにAndroidコマンドを発行できます.使用方法:
adb [-d|-e|-s <serialNumber>] <command>
コマンドを発行すると、Androidクライアントが有効になります.クライアントはシミュレータインスタンスに関連付けられていないので、デュアルサーバ/デバイスが実行中の場合は、制御すべきコマンドのターゲットインスタンスを
-d
オプションで決定する必要があります.このオプションを使用する詳細については、シミュレータ/デバイスインスタンス用語制御コマンドを参照することができる.クエリー・シミュレータ/デバイス・インスタンス
adbコマンドを発行する前に、adbサーバにどのようなシミュレータ/デバイスインスタンスが接続されているかを知る必要があります.
devices
コマンドを使用して、関連するシミュレータ/デバイスの一連を得ることができます.adb devices
•これに応答して、adbは各インスタンスに対応するステータス情報を作成します.
<type>-<consolePort>
によってシミュレータ/デバイスインスタンスを一意に識別する.次に、シーケンス番号の例を示します.emulator-5554
offline
-この例はadbに接続するか応答できない.device
-このインスタンスはadbサーバに接続されています.この状態は、Androidシステムを実行および操作していることを100%示すものではないので、この例は、システムが実行されている間にadbに接続されている.しかし、システムが起動すると、シミュレータ/デバイスの状態が正常に動作する状態となる.各インスタンスの出力には、次の固定フォーマットがあります.
[serialNumber] [state]
次に、
devices
のコマンドと出力を示す例を示します.$ adb devicesList of devices attached emulator-5554 deviceemulator-5556 deviceemulator-5558 device
現在シミュレータ/デバイスが動作していない場合、adbは
no device
を返す.特定のシミュレータ/デバイスインスタンスにコマンドを送信
複数のシミュレータ/デバイスインスタンスが実行されている場合は、adbコマンドを発行するときにターゲットインスタンスを指定する必要があります.そうするには、
-s
オプションのコマンドを使用してください.使用する-s
オプションはadb -s <serialNumber> <command>
上記のように、adbによって割り当てられたシーケンス番号を使用するコマンドにターゲットインスタンスを指定します.
devices
コマンドを使用して、実行中のシミュレータ/デバイスインスタンスのシーケンス番号を取得できます.例は次のとおりです.
adb -s emulator-5556 install helloWorld.apk
この点、ターゲットシミュレータ/デバイスのインスタンスを指定することなく
-s
というコマンドを実行するとadbにエラーが発生する.ソフトウェアのインストール
adbを使用して、開発パソコンからアプリケーションをコピーし、シミュレータ/デバイスインスタンスにインストールできます.このようにして、
install
コマンドを使用します.このinstall
命令は、インストールするものを指定する必要があります.apkファイルのパス:adb install <path_to_apk>
シミュレータ/デバイスインスタンスにインストール可能なものをどのように作成するかについて、より多くの情報を得る.apkファイルの情報は、Android Asset Packaging Tool(aapt)を参照することができる.
Eclipse IDEを使用しており、ADTプラグインがインストールされている場合は、シミュレータ/デバイス上のアプリケーションを直接adb(またはaapt)でインストールする必要はありません.そうでなければ、ADTプラグインはアプリケーションのパッケージとインストールを全権で処理します.
転送ポート
forward
コマンドを使用して、1つのシミュレータ/デバイスインスタンスの特定のホストポートから別の異なるポートへの転送要求を任意のポートに転送できます.次に、ホストポート6100からシミュレータ/デバイスポート7100への転送を確立する方法を示す.adb forward tcp:6100 tcp:7100
同様に、adbを使用して抽象と命名されたUNIXドメインスリーブインタフェースを確立することができ、上記の手順は以下の通りである.
adb forward tcp:6100 local:logd
シミュレータ/デバイスからファイルをコピーまたはコピー
adb
pull
、push
コマンドを使用して、ファイルをシミュレータ/デバイスインスタンスのデータファイルにコピーするか、データファイルからコピーすることができます.install
命令は1つのみである.apkファイルは特定の場所にコピーされます.これとは異なり、pull
およびpush
コマンドは、任意のディレクトリおよびファイルをシミュレータ/デバイスインスタンスの任意の場所にコピーすることができます.