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

仮想デバイス

通常、電話アプリをテストしてデバッグするには 、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) に設定されています。

互換性のない仮想デバイス

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

仮想デバイスの編集

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

エミュレーターの起動

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

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

空のアプリを実行しているエミュレーター

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

クイック ブート

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

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

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

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

コールド ブートのスクリーンショット

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

シャットダウン時の状態の保存

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

再起動時の読み込み状態

トラブルシューティング

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

まとめ

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

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