やりたいこと
ローカルマシンは汚したくない
ローカルマシンはメールやブラウズ、Qiitaの執筆など軽い機能に限定した使い方をして、あまりシステムを汚したくありません。上記だけの仕事ならお安いPCでもよいですし。
でも私は開発者です! 開発環境が欲しい!
ローカルマシンに開発環境を構築すると、どうしてもシステムを汚してしまいます。最悪OSからの再インストール...
その間、PCが使えない。銀行振込とかしないといけないのに(涙)
そこで考えた、
仮想マシン上に開発環境を構築しよう!
どうせならクラウドに!
そうしたらマシンや場所を選ばずに開発できるよね!
従量課金だから高性能PC買うより常に安くて速いかも!
そう、ここから地獄の長い道のりが始まりました。(2020/2/吉日)
- 開発環境をクラウドのVM上に構築する
- ローカルマシン環境を汚さなくてすむ
- どこでも開発できる
- リモートデスクトップで接続するのでローカルマシンは安くて(低性能)良い
- 従量課金だから高性能PC買うより安いかも
環境
クラウド
Windowsアプリやモバイルアプリの開発が主体のため、Windowsの生みの親のクラウド
- Azureを選択
仮想マシン
- サイズ:Standard D2 v3
- OS:Windows 10 Pro, Version 1809
開発環境
- Android Studio 3.6.1
エミュレータ
- Microsoft Visual Studio Emulator for Android 1.1.622.2 (VS Emulator)
前提・制限
- Azure VM で nested Hyper-V を使うには v3シリーズでないといけない
- VM(Hyper-V) 上では Intel x86 Emulator Accelerator (HAXM) と同居はできない
構築手順
- VMの作成
Azure の VM は Hyper-v 上で実行されています。その上にAndroidエミュレータを起動するということは、仮想マシン(VM)上に仮想マシン(エミュレータ)を実行するということです。Microsoftでは、Hyper-V上でHyper-Vの仮想マシンを実行することができるNested Hyper-V
(入れ子になった仮想化) という機能をサポートしています。Azure でNested Hyper-Vを使用するには、サイズで v3 シリーズを選ぶ必要があります。また、OSはWindows Pro または、Windows Server 2016 以上を選びます。
今回は、D2v3、Windows Pro で作成しました。
- VMにソフトウェアをインストール
VM上にAndroid Studio
とVS Emulator
をインストールします。
Andoroid Studio では、Intel CPU を実行するコンピューターのためのハードウェアアクセラレーションである、HAXM
(Intel Hardware Accelerated Execution Manager) をサポートしたエミュレータがインストールされますが、入れ子状態の仮想環境は未対応のため使用できません。代わりに Microsoft が提供している Hyper-V 対応の VS Emulator をインストールします。
-
VM の Hyper-V を有効化する
VM 上の Windows Pro では、 Hyper-V がデフォルトで無効化されているので、別途 有効化します。 -
コントロールパネルから
プログラムと機能
を選択 -
Hyper-V と WHPX を有効化
-
レジストリの変更
Android Studio から VS Emulator が参照できるようにレジストリを変更します。 -
VS Emulatorの設定
エミュレータの開発設定からUSB接続を有効にします。これにより、Andoroid Studio からエミュレータへアクセスすることができます。 -
Google USB ドライバのインストール
-
Android Appの実行
これでやっと一通りの準備がととのいました。あとはエミュレータを起動したまま、Android Studio から App を実行してみてください。
エミュレータで実行できます。
この記事が、少しでも 「VM上でエミュレータが動かないために Android App 開発を断念されてきた方」
のお役に立てれば幸いです。
(2020/3/吉日)