実行中の各仮想デバイスでは、エミュレートしたデバイス環境に対してクエリを実行したり、制御したりできるコンソールを利用できます。たとえば、コンソールを使用することで、エミュレータでアプリを実行している最中に、ポート リダイレクト、ネットワークの特性、電話のイベントを管理できます。
次のコマンドを実行するには、エミュレータがすでに実行されている必要があります。エミュレータの実行の詳細については、Android Emulator 上でアプリを実行すると、コマンドラインからエミュレータを起動するを参照してください。
コンソール セッションを開始、停止する
ターミナル ウィンドウからコンソールにアクセスしてコマンドを入力するには、telnet
を使用してコンソール ポートに接続し、認証トークンを入力します。コンソールに [OK] が表示されるたびに、コマンドの受け付けが可能になります。一般的なプロンプトはありません。
実行中の仮想デバイスのコンソールに接続するには:
- ターミナル ウィンドウを開いて、以下のコマンドを入力します。
- コンソールに
OK
が表示されたらauth auth_token
コマンドを入力します。 - コンソールに接続したら、コンソール コマンドを入力します。
- コンソール セッションを終了するには、
quit
またはexit
と入力します。
telnet localhost console-port
エミュレータ ウィンドウのタイトルには、別のウィンドウで実行しているときはコンソール ポート番号が表示されますが、ツール ウィンドウで実行しているときは表示されません。コンソール ポート番号 5554 を使用するエミュレータの場合、ウィンドウ タイトルは Pixel8_API_34:5554
になります。また、adb devices
コマンドを使用すると、実行中の仮想デバイスとそのコンソール ポート番号のリストが出力されます。詳細については、デバイスのクエリを行うをご覧ください。
注: エミュレータはポート番号 5554~5585 で接続をリッスンし、localhost
からの接続のみを受け入れます。
コンソール コマンドを入力するには、エミュレータ コンソールで認証が必要です。auth_token
は、ホーム ディレクトリにある .emulator_console_auth_token
ファイルの内容と一致する必要があります。
このファイルが存在しない場合、telnet localhost console-port
コマンドを入力すると、ランダムに生成された認証トークンを含むファイルが作成されます。認証を無効にするには、トークンを .emulator_console_auth_token
ファイルから削除するか、空のファイルを作成します(ファイルが存在しない場合)。
help
、help command
、help-verbose
のいずれかを入力すると、コンソール コマンドのリストが表示され、特定のコマンドを確認できます。
セッションの例を以下に示します。
$ telnet localhost 5554 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Android Console: Authentication required Android Console: type 'auth <auth_token>' to authenticate Android Console: you can find your <auth_token> in '/Users/me/.emulator_console_auth_token' OK auth 123456789ABCdefZ Android Console: type 'help' for a list of commands OK help-verbose Android console command help: help|h|? Prints a list of commands help-verbose Prints a list of commands with descriptions ping Checks if the emulator is alive automation Manages emulator automation event Simulates hardware events geo Geo-location commands gsm GSM related commands cdma CDMA related commands crash Crashes the emulator instance crash-on-exit Simulates crash on exit for the emulator instance kill Terminates the emulator instance restart Restarts the emulator instance network Manages network settings power Power related commands quit|exit Quits control session redir Manages port redirections sms SMS related commands avd Controls virtual device execution qemu QEMU-specific commands sensor Manages emulator sensors physics Manages physical model finger Manages emulator finger print debug Controls the emulator debug output tags rotate Rotates the screen clockwise by 90 degrees screenrecord Records the emulator's display fold Folds the device unfold Unfolds the device multidisplay Configures the multi-display nodraw turn on/off NoDraw mode. (experimental) resize-display resize the display resolution to the preset size virtualscene-image customize virtualscene image for virtulscene camera proxy manage network proxy server settings phonenumber set phone number for the device try 'help <command>' for command-specific help OK exit Connection closed by foreign host.
エミュレータ コマンド リファレンス
次の表に、エミュレータ コンソール コマンドと、そのパラメータおよび値を示します。
表 1. エミュレータ コンソール コマンド
一般的なコマンド | 説明 |
---|---|
avd {stop|start|status|name}
|
以下を指定することで、仮想デバイスのクエリ、制御、管理を実行できます。
|
avd snapshot {list|save name|load name|delete
name}
|
以下を指定することで、スナップショットでデバイスの状態を保存したり、状態を復元したりできます。
次の例では、 avd snapshot save firstactivitysnapshot |
fold
|
デバイスを折りたたんで、小さい画面構成を表示します(デバイスが折りたたみ式で、現在開かれている場合)。 |
unfold
|
デバイスを開いて、大きな画面構成を表示します(デバイスが折りたたみ式で、現在閉じられている場合)。 |
kill
|
仮想デバイスを終了します。 |
ping
|
仮想デバイスが実行されているかどうかを確認します。 |
rotate
|
AVD を反時計回りに 45 度ずつ回転させます。 |
エミュレータのクラッシュ | 説明 |
crash
|
アプリの実行中にエミュレータをクラッシュさせます。 |
crash-on-exit |
アプリの終了時にエミュレータをクラッシュさせます。 |
デバッグタグ | 説明 |
debug tags ...
|
エミュレータの特定部分からのデバッグ メッセージを有効または無効にします。tags パラメータは、
次の例では、 debug radio |
ポート リダイレクト | 説明 |
redir list
|
現在のポート リダイレクトをリストします。 |
redir add protocol:host-port:guest-port
|
次のように新しいポート リダイレクトを追加します。
|
redir del protocol:host-port
|
ポート リダイレクトを削除します。
|
位置情報 | 説明 |
エミュレータに GPS フィックスを送信して、エミュレータ内で実行されているアプリにレポートする地理的位置を設定します。 仮想デバイスが実行されるとすぐに、次のいずれかの |
|
geo fix longitude latitude [altitude] [satellites] [velocity]
|
エミュレータにシンプルな GPS フィックスを送信します。longitude と latitude を 10 進数で指定します。1~12 の数字を使用して、位置決定に使用する satellites の数を指定し、altitude (メートル単位)と velocity (ノット単位)を指定します。
|
geo nmea sentence
|
エミュレートした GPS モデムからの送信であるかのように、エミュレートしたデバイスに NMEA 0183 センテンスを送信します。「$GP」で sentence を開始します。現在、「$GPGGA」文と「$GPRCM」文のみがサポートされています。次の例は、GPS 受信機の時刻、位置、修正データを取得する GPGGA(全地球測位システム修正データ)文です。 geo nmea $GPGGA ,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx |
疑似ハードウェア イベント | 説明 |
event types
|
すべての疑似イベントタイプをリストします。コードを持つイベントの場合、コード番号は右側の括弧内にリストされます。
event types event <type> can be an integer or one of the following aliases: EV_SYN EV_KEY (405 code aliases) EV_REL (2 code aliases) EV_ABS (27 code aliases) EV_MSC EV_SW (4 code aliases) EV_LED EV_SND EV_REP EV_FF EV_PWR EV_FF_STATUS EV_MAX OK |
event send types [types ...]
|
1 つ以上の疑似イベントタイプを送信します。 |
event codes type
|
指定した疑似イベントタイプのイベントコードをリストします。 |
event send type[:code]:[value] [...]
|
オプションのコードとコード値を持つ、1 つ以上の疑似イベントを送信します。
送信するイベントを正確に確認するには、エミュレータのボタンを手動で押しながら 電源ボタンを押したときに生成されるイベントは次のとおりです。 adb shell getevent -lt /dev/input/event12: EV_KEY KEY_POWER DOWN /dev/input/event12: EV_SYN SYN_REPORT 00000000 /dev/input/event12: EV_KEY KEY_POWER UP /dev/input/event12: EV_SYN SYN_REPORT 00000000たとえば、電源ボタンの長押しをシミュレートするには、keydown と keyup の 2 つの EV_KEY イベントを送信します。
event send EV_KEY:KEY_POWER:0 OK event send EV_KEY:KEY_POWER:1 OK |
event text message
|
キー押下をシミュレートする文字列を送信します。メッセージは UTF-8 文字列にする必要があります。Unicode の場合、現在のデバイスのキーボードに従って逆マッピングされ、サポートされていない文字は警告もなく破棄されます。 |
電源状態の制御 | 説明 |
power display
|
バッテリーと充電器の状態を表示します。 |
power ac {on|off}
|
AC 充電の状態を on または off に設定します。
|
power status {unknown|charging|discharging|not-charging|full}
|
バッテリー ステータスを指定したとおりに変更します。 |
power present {true|false}
|
バッテリーの有無の状態を設定します。 |
power health {unknown|good|overheat|dead|overvoltage|failure}
|
バッテリーの健全性の状態を設定します。 |
power capacity percent
|
バッテリー残量の状態を 0~100 パーセントで設定します。 |
ネットワーク接続のステータス | 説明 |
network status
|
ネットワークのステータス、現在の遅延、速度の特性を確認します。 |
network delay latency
|
エミュレートしたネットワーク レイテンシを変更します。 エミュレータを使用すると、さまざまなネットワーク レイテンシ レベルをシミュレートできるため、実際の実行条件に近い環境でアプリをテストできます。エミュレータの起動時にレイテンシのレベルまたは範囲を設定するか、アプリの実行中にエミュレータでコンソールを使用してレイテンシを変更できます。 ネットワークの latency は次のいずれかの形式で指定します(数値単位はミリ秒)。 ネットワーク レイテンシの形式:
エミュレータの起動時にレイテンシを設定するには、 emulator -netdelay gprs emulator -netdelay 40,100 エミュレータの実行中にネットワークの遅延を変更するには、コンソールに接続し、 network delay gprs network delay 40 100 |
network speed speed |
エミュレータを使用して、さまざまなネットワーク転送速度をシミュレートできます。
エミュレータの起動時に転送の速度または範囲を設定するか、エミュレータでアプリの実行中にコンソールを使用して転送速度を変更できます。 ネットワーク ネットワーク速度の形式:
エミュレータの起動時にネットワーク速度を設定するには、 emulator -netspeed gsm @Pixel_API_26 emulator -netspeed 14.4,80 @Pixel_API_26 エミュレータの実行中にネットワーク速度を変更するには、コンソールに接続し、 network speed 14.4 80 |
network capture {start|stop} file |
パケットをファイルに送信します。パラメータとパラメータ値の説明を以下に示します。
|
電話のエミュレーション | 説明 |
Android Emulator には、エミュレータで電話機能をシミュレートできる独自の GSM および CDMA をエミュレートしたモデムが含まれています。たとえば、GSM を使用すると、電話の着信のシミュレートや、データ接続の確立と終了が可能です。CDMA を使用する場合は、サブスクリプション ソースと優先ローミング リストを指定します。Android システムは、実際の通話とまったく同じようにシミュレートされた通話を処理します。エミュレータは通話音声をサポートしていません。 | |
gsm {call|accept|cancel|busy} phonenumber
|
gsm パラメータは次のとおりです。
|
gsm {data|voice} state
|
次のように、data state コマンドは GPRS データ接続の状態を変更し、data voice state コマンドは GPRS 音声接続の状態を変更します。
|
gsm hold
|
通話の状態を hold に変更します。現在の状態が active または waiting の場合にのみ、通話状態を hold に変更できます。
|
gsm list
|
すべての着信と発信とその状態を一覧表示します。 |
gsm status
|
現在の GSM の音声とデータの状態をレポートします。値については、voice コマンドと data コマンドの説明をご覧ください。
|
gsm signal {rssi|ber}
|
次の 15 秒間の更新における、レポートされる信号強度(rssi)と符号誤り率(ber)を変更します。パラメータとその値の説明を以下に示します。
|
gsm signal-profile num
|
信号強度プロファイルを設定します。num は 0~4 の数字です。
|
cdma ssource source
|
現在の CDMA サブスクリプション ソースを設定します。source は、以下のように、CDMA 通信事業者の加入者とその値が含まれるネットワークベースの許可リストです。
|
cdma prl_version version
|
現在の優先ローミング リスト(PRL)バージョンをダンプします。バージョン番号は、システムの選択と取得のプロセス中に使用される情報が含まれる PRL データベース用です。 |
エミュレータでセンサーを管理する | 説明 |
これらのコマンドは、AVD で使用可能なセンサーに関連します。sensor コマンドを使用する以外に、[Accelerometer] タブと [Additional sensors] タブの [Virtual sensors] 画面で、エミュレータの設定の表示と調整ができます。
|
|
sensor status |
すべてのセンサーとそのステータスをリストします。sensor status コマンドの出力例は以下のとおりです。
|
sensor get sensor-name
|
sensor-name の設定を取得します。次の例では、加速度センサーの値を取得しています。
sensor get acceleration acceleration = 2.23517e-07:9.77631:0.812348
コロン(:)で区切られた |
sensor set sensor-name value-x:value-y:value-z
|
sensor-name の値を設定します。次の例では、加速度センサーをコロンで区切られた x、y、z 値に設定しています。 sensor set acceleration 2.23517e-07:9.77631:0.812348 |
SMS エミュレーション | 説明 |
sms send sender-phone-number textmessage
|
エミュレートされた着信 SMS を生成します。パラメータとその値の説明を以下に示します。
次の例では、「hi there」というメッセージを電話番号 4085555555 に送信しています。 sms send 4085555555 hi there コンソールは、SMS メッセージを Android フレームワークに転送します。Android フレームワークは、エミュレータのアプリ(メッセージ アプリなど)にメッセージを渡し、そのアプリが SMS を処理します。10 桁の番号を渡すと、アプリはその番号を電話番号の形式に合わせます。数値文字列が 10 桁でない場合は、その番号が送信された方法が表示されます。
|
指紋シミュレーション | 説明 |
finger touch fingerprint-id
|
指がセンサーに触れた状態をシミュレートします。 |
finger remove
|
指が離れた状態をシミュレートします。
これらのコマンドの使用方法については、次の指紋のシミュレーションと検証のセクションをご覧ください。 |
指紋のシミュレーションと検証
![](https://developer.android.google.cn/static/studio/images/run/fingerprint_2x.png?authuser=9&hl=ja)
図 1. 指紋認証画面。
finger
コマンドを使用して、アプリの指紋認証をシミュレートして検証します。SDK Tools 24.3 以降と Android 6.0(API レベル 23)以降が必要です。
指紋認証をシミュレートして検証する手順は次のとおりです。
- まだ指紋 ID を設定していない場合は、[Settings] > [Security] > [Fingerprint] を選択し、登録手順に沿ってエミュレータに新しい指紋を登録します。
- 指紋認証を受け入れるようにアプリを設定します。この設定を行うと、デバイスに指紋認証画面が表示されます。
- アプリに指紋認証画面が表示されている間に、コンソールに移動して、
finger touch
コマンドと作成した指紋 ID を入力します。これにより、指がセンサーに触れた状態がシミュレートされます。 - 次に、
finger remove
コマンドを入力して、指が離れた状態をシミュレートします。アプリは、ユーザーが指紋認証センサーに触れてから指を離したときと同じように応答する必要があります。