Android Emulator 上でアプリを実行する

Android Emulator は、端末の動作をシミュレートして開発用のコンピュータに表示します。エミュレータを利用すると、ハードウェア端末がなくても Android アプリの試作、開発、テストができます。エミュレータは、Android スマートフォン、タブレット、Android Wear、Android TV 端末に対応しています。すぐに開発を始めるために事前に規定された端末タイプを利用したり、自身で端末の定義やエミュレータ スキンを作成したりすることもできます。

Android Emulator は高速かつ強力で、機能も充実しています。ハードウェア端末を接続して使うよりも情報の伝達速度が速いため、開発プロセスを高速化することができます。さらにマルチコア機能によって、開発に使用しているコンピュータのマルチコア プロセッサを活用することが可能になり、エミュレータのパフォーマンスがさらに改善されています。

Android Emulator の概要

エミュレータ上でアプリを起動するには、プロジェクトを実行するか、APK ファイルをエミュレータにドラッグしてインストールします。ハードウェア端末と同様に、アプリを仮想端末にインストールした後は、アンインストールや置き換えをしない限りアプリは保持されます。必要に応じて、自身のアプリやシステムアプリなど、複数のアプリの連携動作をテストすることもできます。

アプリを試用するための機能

マウスやキーボード、エミュレータのボタンやコントロールを使用すると、エミュレータもハードウェア端末と同様に操作できます。エミュレータでは仮想のハードウェア ボタンやタッチスクリーン、2 本指での操作、矢印ボタン(D パッド)、トラックボール、ホイール、さまざまなセンサーなどの機能がサポートされています。必要に応じてエミュレータのウィンドウ サイズの動的な変更、ズームインやズームアウト、端末の向きの変更、スクリーンショットの撮影もできます。

エミュレータ上でアプリを実行している最中に、Android プラットフォームのサービスを利用することもできます。これにより、他のアプリの起動やネットワークへのアクセス、音楽や動画の再生、音声入力内容の取得、データの取得や保存、ユーザーへの通知、グラフィック遷移やテーマのレンダリングなどが可能になります。さらにエミュレータでは、電話やテキスト メッセージの発信、端末の位置情報の指定、指紋スキャンのシミュレート、ネットワークの速度や状態の指定、電池状態のシミュレートが簡単に行えます。また 画像ファイルやデータファイルをエミュレータにドラッグして保存し、SD カードや内部データ ストレージのシミュレートをすることもできます。

エミュレータ機能の概要を把握するには、以下の短い動画をご覧ください。

Android Virtual Device の設定

エミュレータでは Android Virtual Device(AVD)を利用して、シミュレートする端末の外観、機能、システムイメージを定義しています。AVD を利用するとエミュレートする端末の任意のハードウェア条件を定義でき、さまざまな Android プラットフォームとハードウェアの組み合わせに対してテストを実施するために、多様な設定をすることができます。

各 AVD 機能は、ユーザーデータを保存する独自のプライベート ストレージや SD カードなどを有する独立した端末として機能します。AVD 設定をしてエミュレータを起動すると、AVD ディレクトリからユーザーデータや SD カードのデータが自動で読み込まれます。デフォルトでエミュレータは、ユーザーデータ、SD カードのデータ、キャッシュを AVD ディレクトリに保存します。

AVD の作成や管理には、AVD Manager を使用します。

システム イメージ

Android Emulator はカーネルレベルに至るまで、すべての Android システム スタックを実行します。これには電話などのプレインストールされたアプリ一式が含まれており、アプリからそれらの機能にアクセスすることができます。AVD の作成時には、エミュレータで実行したい Android システムのバージョンを選択できます。

AVD Manager 経由で利用できる Android のシステム イメージには、Android Linux カーネル、ネイティブ ライブラリ、VM、さまざまな Android パッケージ(Android フレームワークやプレインストールされたアプリなど)が含まれます。

依存関係と前提条件

このページで説明する Android Emulator のバージョンは、以下の条件を満たすものとします。

  • Android Studio 2.0 以降
  • SDK ツール 25.0.10 以降
  • エミュレータ 24.0.x 以前用の AVD と置換するために新規に作成した AVD
  • アプリ機能のテストなど、ある状況で必要になるアクティブなネットワーク接続
  • [Tools] > [Android] > [Enable ADB Integration] で adb インテグレーションを有効化済み

サポート対象外の機能

Android Emulator は多数の機能に対応していますが、以下の機能の仮想ハードウェアはサポート対象外となります。

  • WiFi
  • Bluetooth
  • NFC
  • SDカードの挿入、取り出し
  • 端末に装着されたヘッドフォン
  • USB

Android Wear 用のウォッチ エミュレータは最近使用したアプリボタン、D パッド、指紋認証センサーには対応していません。

スマートフォンやタブレットのエンドユーザーの多くは以前の API レベルを使用しているのに対し、Android Wear や Android TV のユーザーは最新リリースの API を使用する傾向があります。最新リリースの API を利用すると、エミュレータが操作性が一層高まります。

Android Emulator 上でアプリを実行する

Android Studio プロジェクトからアプリを実行できます。または普通に端末上でアプリを起動しても、エミュレータにインストール済みのアプリを実行できます。

エミュレータを起動し、プロジェクトでアプリを実行する手順は次の通りです。

  1. Android Studio プロジェクトを開き、[Run] をクリックします。
  2. [Select Deployment Target] ダイアログが表示されます。

    [Select Deployment Target] ダイアログ
  3. ダイアログの上部にエラーや警告メッセージが表示されたら、リンクをクリックして問題の修正や、詳細情報の確認をします。
  4. No USB devices or running emulators detected」という警告は、現在エミュレータが実行されていないか、コンピュータに接続されたハードウェア端末が存在しないことを意味します。ハードウェア端末を接続しておらず、エミュレータを実行していない場合は、この警告は無視して構いません。

    ただし Hardware Accelerated Execution Manager(Intel® HAXM)のエラーなどが発生した場合は、先に進む前に修正する必要があります。

  5. [Select Deployment Target] ダイアログで、既存のエミュレータ定義を選択し、[OK] をクリックします。

    使用したい定義が見当たらない場合は、[Create New Emulator] をクリックして AVD Manager を立ち上げます。新規に AVD を定義した後、[Select Deployment Target] ダイアログで [OK] をクリックします。

    そのエミュレータ定義をプロジェクトでデフォルトとして使用したい場合は、[Use same selection for future launches] を選択します。

    エミュレータが立ち上がり、アプリが表示されます。

  6. エミュレータでアプリをテストします。
  7. 利用可能な機能については、以下のセクションで説明しています。

  8. エミュレータを閉じるには、[Close] 閉じるアイコン をクリックします。
  9. エミュレータ端末にインストールしたアプリは保持されるため、必要に応じて繰り返し実行することができます。アプリを削除するにはアンインストールする必要があります。同じエミュレータで再びプロジェクトを実行すると、アプリが新しいバージョンのものに置き換わります。

アプリを実行せずに Android Emulator を起動する

エミュレータを起動する手順は次の通りです。

  1. AVD Manager を開きます
  2. AVD をダブルクリック、または [Run] をクリックします。
  3. Android Emulator が表示されます。

    エミュレータの実行中に、Android Studio のプロジェクトを実行して、エミュレータをターゲット端末として選択できます。1 つまたは複数の APK をエミュレータにドラッグしてインストールし、実行することも可能です。

コンピュータのマウス ポインターを使って、メニュー項目の選択、フィールドの入力、ボタンやコントロールのクリックなど、指を使ったタッチスクリーン操作を再現できます。コンピュータのキーボードを使った文字入力や、エミュレータ用のショートカット キーの利用も可能です。

機能 説明
画面のスワイプ 画面を指して、マウスの左ボタンを押した状態で画面上をスワイプしてボタンを離します。
アイテムのドラッグ 画面上のアイテムを指して、マウスの左ボタンを押した状態でアイテムを移動してボタンを離します。
タップ
(タッチ)
画面を指して、マウスの左ボタンを押してから離します。これにより、入力を始めるためにテキスト フィールドをクリックする、アプリを選択する、ボタンを押すなどの操作が可能になります。
ダブルタップ 画面を指して、マウスの左ボタンをすばやく 2 回押してから離します。
タップしてホールド 画面上のアイテムを指して、しばらくマウスの左ボタンを押してからボタンを離します。これにより、アイテムのオプションを開くなどの操作が可能になります。
タイプ コンピュータのキーボードや、エミュレータの画面に表示されるキーボードを使ってエミュレータに入力ができます。これにより、テキスト フィールドを選択したあと、入力をすることができます。
ピンチインとピンチアウト
Ctrl キーか Command(⌘)キーを押すと、マルチタッチ インターフェースでピンチ操作ができます。マウスが一本の指を、アンカー ポイントの反対側がもう一本の指として動作します。カーソルを始点に移動して、
マウスの左ボタンをクリックすると 2 つの点をタッチしている状態になり、ボタンを離すと両方の点を離します。

エミュレータ上で基本的なタスクを実行する

エミュレータの右に表示されるパネルから、さまざまなタスクを実行できます。ファイルをエミュレータにドラッグしてアプリをインストールする、ファイルをダウンロードするなどの操作も可能です。

機能 説明 キーボード ショートカット
閉じる
閉じるアイコン
エミュレータを終了します。
最小化
最小化アイコン
エミュレータ ウィンドウを最小化します。
リサイズ オペレーティング システムのウィンドウのように、エミュレータのサイズを変更します。エミュレータは端末に適したアスペクト比を保持します。 ⌘↑ と ⌘↓
電源
電源アイコン
クリックすると画面がオンまたはオフになります。
押し続けると端末の電源がオンまたはオフになります。
Ctrl+P
⌘P
音量アップ
音量アップアイコン
クリックするとスライダー コントロールが表示され、音量を上げることができます。さらに音量を上げるには再度クリックするか、スライダー コントロールで音量を調整します。
Ctrl+=
⌘=
音量ダウン
音量ダウンアイコン
クリックするとスライダー コントロールが表示され、音量を下げることができます。さらに音量を下げるには再度クリックするか、スライダー コントロールで音量を調整します。
Ctrl+-
⌘-
左回転
左回転アイコン
反時計回りに 90 度スマートフォンを回転します。
Ctrl+Left
⌘←
右回転
右回転アイコン
時計回りに 90 度スマートフォンを回転します。
Ctrl+Right
⌘→
スクリーンショット撮影
スクリーンショット撮影アイコン
クリックすると端末のスクリーンショットを撮影できます。デフォルトの保存場所はコンピュータのデスクトップです。保存場所を変更するには、 > [Settings] を選択します。作成されるファイルは Screenshot_yyyymmdd-hhmmss.png のように、撮影した年、月、日、時間、分、秒を使用したファイル名になります。例: Screenshot_20160219-145848.png
Ctrl+S
⌘S
ズームモード移行
ズームモード移行アイコン

クリックすると、カーソルがズームアイコンに変化します。

  • 画面を左クリックすると 25% ずつズームインし、最大で仮想端末の約 2 倍の画面解像度まで拡大できます。
  • 右クリックでズームアウトします。
  • 左クリックしてドラッグし、ズームインしたい長方形の領域を選択します。
  • 右クリックして選択ボックスをドラッグするとデフォルトのズームに戻ります。
  • ズームモード中に画面をタッチするには、Ctrl キーを押しながらクリックします

ズームモード アイコンを再度クリックすると、通常の画面サイズに戻ります。

Ctrl+Z
⌘Z
ズームモード中:
Ctrl+Up
Ctrl+Down
Ctrl+Shift+Up
Ctrl+Shift+Down
Ctrl+Shift+Left
Ctrl+Shift+Right
⌘↑ と ⌘↓
⇧⌘↑ と ⇧⌘↓
⇧⌘← と ⇧⌘→
戻る
戻るアイコン
前画面に戻る、またはダイアログ ボックス、オプション メニュー、通知パネル、オンスクリーンのキーボードを閉じます。
Ctrl+Backspace
⌘⌫
ホーム
ホームアイコン
ホーム画面に戻ります。長押しすると使用中の API レベルに固有のアイテムが表示されます。
Ctrl+H
⌘⇧H
最近
最近アイコン
(最近使用したアプリ)
タップすると最近使用したアプリのサムネイル画像の一覧が表示されます。画像をタップすると、アプリを開くことができます。一覧からサムネイルを削除するには、左右どちらかにスワイプします。このボタンは Android Wear ではサポートされていません。
Ctrl+O
⌘O
メニュー キーボード ショートカットを利用するとメニューボタンのシミュレートができ、メニューを開いてアプリを選択するなどの操作が可能になります。
Ctrl+M
⌘M
その他
その他アイコン
クリックすると、下の表に示すその他の機能や設定を利用できます。
APK インストール エミュレータ画面に APK ファイルをドラッグすると、APK インストーラ ダイアログが表示されます。インストールが完了すると、追加したアプリがアプリのリストに表示されます。「APK failed to install」というダイアログが表示された場合は、アプリはインストールされていません。
ファイル追加 エミュレータ画面に任意のファイルをドラッグすると、ファイルが /sdcard/Download ディレクトリに配置されます。API レベルに応じた方法でファイルがある場所に移動します。たとえば API 22 であれば、次のように移動します。[Settings] > [Device:Storage & USB] > [Internal Storage] > [Explore](仮想 SD カード)。
トラックボール モードの切り替え F6

拡張コントロール、設定、ヘルプを利用する

拡張コントロールではデータの送信、端末プロパティの変更、アプリのコントロールなどができます。このコントロールを利用するには、エミュレータ パネルから [] を選択し、[Extended Controls] ダイアログの中から左のパネルに表示したいオプションを選択します。

機能 説明 キーボード ショートカット
[Location]

エミュレータでは、現在地情報(現在エミュレートしている端末がある場所の情報)をシミュレートできます。たとえば、Google マップで現在地 現在地アイコン を選択して位置情報を送信すると、その場所の地図が表示されます。

GPS 位置情報の送信手順は次のとおりです。

  1. [Decimal] か [Sexagesimal] を選択します。
  2. 位置を指定します。
  3. Decimal モードの場合、[Latitude] には -90.0 度から +90.0 度までの値を、[Longitude]には -180.0 度から +180.0 度までの値を入力します。

    sexigesimal モードの場合は入力箇所が 3 つあり、[Latitude] には -90 から +90 度、0 から 59 分、0.0 から 60.0 秒の範囲の値をそれぞれ入力します。[Longitude] には -180 から +180 度、0 から 59 分、0.0 から 60.0 秒の範囲の値を入力します。

    緯度はマイナスが南でプラスが北を、経度はマイナスが西をプラスが東を表します。+ は省略可能です。

    [Altitude] には任意で -1,000.0 から +10,000.0 メートルの値を指定できます。

  4. [Send] をクリックします。

GPS データ交換フォーマット(GPX)やキーホール マークアップ言語(KML)ファイルの地理情報データを利用する方法は以下のとおりです。

  1. [Load GPX/KML] をクリックします。
  2. ファイル ダイアログでコンピュータ上にあるファイルを選択して [Open] をクリックします。
  3. 任意で [Speed] を選択します。
  4. 速度はデフォルトで [Delay] (Speed 1X)に設定されています。速度は 2 倍(Speed 2X)、3 倍(Speed 3X)と増加させることができます。

  5. [Run] をクリックします。
Ctrl+Shift+L
⇧⌘L
[Cellular]

エミュレータでは、さまざまなネットワークの状態をシミュレートできます。異なるネットワーク プロトコルのネットワーク速度に近づけたり、[Full] に指定してコンピュータで実現できる最高速度でデータを転送したりすることができます。ネットワーク プロトコルを指定すると、必ず [Full] にした場合よりも速度が低下します。さらにローミングなどの音声やデータ ネットワークの状態も指定できます。デフォルト値は AVD で設定されています。

[Network type] を選択します。

  • GSM - Global System for Mobile Communications
  • HSCSD - High-Speed Circuit-Switched Data
  • GPRS - Generic Packet Radio Service
  • EDGE - Enhanced Data rates for GSM Evolution
  • UMTS - Universal Mobile Telecommunications System
  • HSPDA - High-Speed Downlink Packet Access
  • Full (default)

[Voice status] と [Data status] の一方または両方を選択します。

  • Home (default)
  • Roaming
  • Searching
  • Denied (emergency calls only)
  • Unregistered (off)
Ctrl+Shift+C
⇧⌘C
[Battery]

デバイスの電池プロパティをシミュレートすると、さまざまな電池状態におけるアプリの動作を確認できます。[Charge level] を選択するには、スライダー コントロールを使用します。

[Charger connection] の値を選択します。

  • None
  • AC charger

[Battery health] の値を選択します。

  • Good (default)
  • Failed
  • Dead
  • Overvoltage
  • Overheated
  • Unknown

[Battery status] の値を選択します。

  • Unknown
  • Charging (default)
  • Discharging
  • Not charging
  • Full
Ctrl+Shift+B
⇧⌘B
[Phone]

エミュレータで着信やテキスト メッセージの受信がシミュレートできます。情報の流れはコントロール側からエミュレータ側への一方向になるので注意してください。たとえばエミュレータ側で通話を終了した場合、コントロール側では状態を変更できないため、コントロール側でも通話を終了する必要があります。

エミュレータへの通話を開始する方法は次のとおりです。

  1. [From] フィールドで電話番号の選択または入力をします。
  2. [Call Device] をクリックします。
  3. 保留する場合は、任意で [Hold Call] をクリックします。
  4. [End Call] をクリックして、通話を終了します。

エミュレータにテキスト メッセージを送信する方法は以下のとおりです。

  1. [From] フィールドで電話番号の選択または入力をします。
  2. [SMS message] フィールドでメッセージを入力します。
  3. [Send Message] をクリックします。
Ctrl+Shift+P
⇧⌘P
[Directional Pad]

AVD にハードウェア プロファイルで有効にした D パッドがある場合は、エミュレータで D パッドを利用できます。ただし、Android ウォッチなどの一部の端末は D パッドに対応していません。各ボタンがシミュレートする動作は以下のとおりです。

D パッドのコントロール
Ctrl+Shift+D
⇧⌘D
[Fingerprint]

このコントロールでは 10 種の異なる指紋スキャンをシミュレートできます。アプリで指紋を使用する際は、この機能をご利用ください。本機能は Android Wear ではサポートされていません。

仮想端末上で指紋のスキャンをシミュレートする方法は次のとおりです。

  1. 指紋データを受信するアプリを用意します。
  2. [Fingerprint] の値を選択します。
  3. [Touch Sensor] をクリックします。
Ctrl+Shift+F
⇧⌘F
[Settings]

以下の項目を設定できます。

  • [Emulator window theme]: [Light] か [Dark] を選択します。
  • [Send keyboard shortcuts to]: デフォルトでは、いくつかのキーを組み合わせるとエミュレータの コントロール ショートカットがトリガーされるようになっています。キーボード ショートカット機能に対応したアプリを開発している場合(Bluetooth キーボードを使う端末を対象とするアプリなど)、この設定を変更することで、エミュレータでショートカットとみなされる入力を含め、すべてのキーボード入力を仮想端末に送信することができます。
  • [Screenshot save location]: フォルダー アイコンをクリックして、エミュレータ画面のスクリーンショットを保存する場所を指定します。
  • [Use detected ADB location]: Android Studio からエミュレータを実行している場合は、この設定(既定値)を選択する必要があります。Android Studio 以外からエミュレータを実行しており、特定の adb 実行ファイルを使用したい場合は、このオプションの選択を外して SDK ツールの場所を指定してください。この設定に誤りがあると、ドラッグ アンド ドロップによるアプリのインストールやファイルのコピー、スクリーンショット撮影などの機能が動作しません。
  • [When to send crash reports]: [Always]、[Never]、[Ask] のいずれかを選択してください。
Ctrl+Shift+S
⇧⌘S
[Help] > [Keyboard Shortcuts]

エミュレータが受けつけるキーボード ショートカットを確認できます。ショートカットは以下の手順で有効にします。

  • [Settings] > [Send keyboard shortcuts to] > [Emulator controls](既定値)を選択します。
F1
⌘/
[Help] > [Emulator Help]

エミュレータのオンライン ドキュメントを見るには [Documentation] をクリックします。

エミュレータのバグを報告するには [File a Bug] をクリックします。

フィードバックをするには [Send Feedback] をクリックします。

これらのリンクを利用するには、インターネット接続とブラウザが必要です。

F1
⌘/
[Help] > [About]

エミュレータで使用している adb ポート、Android Emulator のバージョン番号を確認できます。使用中のエミュレータのバージョンと最新バージョンを比較して、最新のソフトをインストールしているか確認してください。

エミュレータのシリアル番号は emulator-adb_port で、これは adb コマンドラインのオプション指定などに使用できます。

F1
⌘/