Android adb共通命令(1)

5084 ワード

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コマンドを発行できます.使用方法:
    adb [-d|-e|-s <serialNumber>] <command>

    コマンドを発行すると、Androidクライアントが有効になります.クライアントはシミュレータインスタンスに関連付けられていないので、デュアルサーバ/デバイスが実行中の場合は、制御すべきコマンドのターゲットインスタンスを-dオプションで決定する必要があります.このオプションを使用する詳細については、シミュレータ/デバイスインスタンス用語制御コマンドを参照することができる.
     
    クエリー・シミュレータ/デバイス・インスタンス
    adbコマンドを発行する前に、adbサーバにどのようなシミュレータ/デバイスインスタンスが接続されているかを知る必要があります.devicesコマンドを使用して、関連するシミュレータ/デバイスの一連を得ることができます.
    adb devices

    •これに応答して、adbは各インスタンスに対応するステータス情報を作成します.
  • ・シーケンス番号--adbによって作成された文字列.この文字列は、独自の制御ポート<type>-<consolePort>によってシミュレータ/デバイスインスタンスを一意に識別する.次に、シーケンス番号の例を示します.emulator-5554
  • 例の接続状態は、
  • の3つの状態である.
  • 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 pullpushコマンドを使用して、ファイルをシミュレータ/デバイスインスタンスのデータファイルにコピーするか、データファイルからコピーすることができます.install命令は1つのみである.apkファイルは特定の場所にコピーされます.これとは異なり、pullおよびpushコマンドは、任意のディレクトリおよびファイルをシミュレータ/デバイスインスタンスの任意の場所にコピーすることができます.