Android Emulator でのデバッグ

このガイドでは、アプリをデバッグしてテストするために Android Emulator で仮想デバイスを起動する方法について説明します。

Android Emulator (.NET によるモバイル開発のワークロードの一部としてインストールされている) は各種の Android デバイスをシミュレートするために、さまざまな構成で実行することができます。 これらの構成がそれぞれ、仮想デバイスとして作成されます。 このガイドでは、Visual Studio からエミュレーターを起動する方法、および仮想デバイスでアプリを実行する方法を説明します。 Android Emulator の構成と、新しい仮想デバイスの作成については、「Android Emulator のセットアップ」を参照してください。

構成済み仮想デバイスの使用

Visual Studio には、デバイスのドロップダウン メニューに表示される構成済みの仮想デバイスが含まれます。 たとえば、次の Visual Studio 2017 のスクリーンショットでは、いくつかの構成済み仮想デバイスが使用可能です。

  • VisualStudio_android-23_arm_phone

  • VisualStudio_android-23_arm_tablet

  • VisualStudio_android-23_x86_phone

  • VisualStudio_android-23_x86_tablet

Virtual devices

通常、電話アプリをテストしてデバッグする場合は、VisualStudio_android-23_x86_phone 仮想デバイスを選択します。 これらの構成済み仮想デバイスのいずれかが要件を満たしている (つまり、アプリのターゲット API レベルと一致している) 場合は、「エミュレーターの起動」に進み、エミュレーターでのアプリの実行を開始します (Android API レベルについてまだよく理解していない場合は、「Understanding Android API Levels」 (Android API レベルについて) を参照してください)。

Xamarin.Android プロジェクトで、使用可能な仮想マシンと互換性のないターゲット フレームワーク レベルを使用している場合は、ドロップダウン メニューの [サポートされていないデバイス] に使用不可の仮想デバイスがリストされます。 たとえば、以下のプロジェクトでは、ターゲット フレームワークが、この例にリストされている Android 6.0 仮想デバイスと互換性のない Android 7.1 Nougat (API 25) に設定されています。

Incompatible virtual device

使用可能な仮想デバイスの API レベルと一致するように、[最小 Android ターゲットの変更] をクリックして、プロジェクトの最小 Android バージョンを変更することができます。 また、Android Device Manager を使用して、ターゲット API レベルをサポートする新しい仮想デバイスを作成することもできます。 新しい API レベル用に仮想デバイスを構成するには、まず、その API レベルに対応するシステム イメージをインストールする必要があります (「Xamarin.Android 向け Android SDK を設定する」を参照)。

仮想デバイスの編集

仮想デバイスを編集する (または新規に作成する) には、Android Device Manager を使用する必要があります。

エミュレーターの起動

VisuaI Studio の上部近くにドロップダウン メニューがあります。このメニューを使用して、デバッグ モードまたはリリース モードを選択できます。 [デバッグ] を選択すると、アプリの起動後にエミュレーター内で実行されているアプリケーション プロセスにデバッガーがアタッチされます。 [リリース] モードを選択すると、デバッガーが無効になります (ただし、アプリを実行し、ログ ステートメントを使用してデバッグすることはできます)。 デバイスのドロップダウン メニューから仮想デバイスを選択した後、[デバッグ] または [リリース] のいずれかのモードを選択し、[再生] ボタンをクリックしてアプリケーションを実行します。

エミュレーターが起動すると、Xamarin.Android はエミュレーターにアプリを展開します。 エミュレーターは、構成済みの仮想デバイス イメージを使用してアプリを実行します。 Android Emulator の例のスクリーン ショットを、下に表示します。 この例では、エミュレーターが MyApp という空のアプリを実行しています。

Emulator running a blank app

エミュレーターは実行したままでかまいません。アプリが起動するたびにシャットダウンして再起動を待つ必要はありません。 Xamarin.Android アプリがエミュレーターで初めて実行されるときに、ターゲットとなる API レベルの Xamarin.Android 共有ランタイムがインストールされてからアプリケーションがインストールされます。 ランタイムのインストールには少し時間がかかる場合があります。完了するまでしばらくお待ちください。 ランタイムのインストールが行われるのは、Xamarin.Android アプリが初めてエミュレーターに展開される場合のみです。以降の展開では、エミュレーターにアプリがコピーされるだけなので、初回より時間はかかりません。

クイック ブート

新しいバージョンの Android Emulator には、ほんの数秒でエミュレーターを起動するクイック ブートと呼ばれる機能が含まれています。 エミュレーターを閉じるときに、仮想デバイスの状態のスナップショットが取得されるため、再起動時にその状態をすばやく復元できます。 この機能にアクセスするには、次が必要になります。

  • Android Emulator バージョン 27.0.2 またはそれ以降
  • Android SDK Tools バージョン 26.1.1 以降

上記のバージョンのエミュレーターと SDK Tools がインストールされていると、クイック ブート機能が既定で有効になります。

仮想デバイスの最初のコールド ブートではまだスナップショットが作成されていないため、実行速度が改善されません。

Cold Boot screenshot

エミュレーターを終了すると、クイック ブートによりエミュレーターの状態がスナップショットで保存されます。

Saving state on shutdown

以後の仮想デバイスの起動では、エミュレーターの終了時の状態が単純に復元されるため、はるかに高速になります。

Loading state on restart

トラブルシューティング

エミュレーターの一般的な問題のヒントと回避策は、「エミュレーターのセットアップに関する問題のトラブルシューティング」を参照してください。

まとめ

このガイドでは、Xamarin.Android アプリを実行およびテストするために、Android Emulator を構成するプロセスについて説明しました。 あらかじめ構成された仮想デバイスを使用してエミュレーターを起動する手順、および Visual Studio からエミュレーターにアプリケーションを配置するための手順について説明しました。

Android Emulator の使用の詳細については、以下の Android 開発者向けトピックを参照してください。