10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Azure VM 上で Android エミュレータを動かせる開発環境を構築するまでの地獄の長い道のり

Posted at

やりたいこと

ローカルマシンは汚したくない

ローカルマシンはメールやブラウズ、Qiitaの執筆など軽い機能に限定した使い方をして、あまりシステムを汚したくありません。上記だけの仕事ならお安いPCでもよいですし。
でも私は開発者です! 開発環境が欲しい!
ローカルマシンに開発環境を構築すると、どうしてもシステムを汚してしまいます。最悪OSからの再インストール...
その間、PCが使えない。銀行振込とかしないといけないのに(涙)

そこで考えた、
仮想マシン上に開発環境を構築しよう!
どうせならクラウドに!
そうしたらマシンや場所を選ばずに開発できるよね!
従量課金だから高性能PC買うより常に安くて速いかも!

そう、ここから地獄の長い道のりが始まりました。(2020/2/吉日)

  • 開発環境をクラウドのVM上に構築する
  • ローカルマシン環境を汚さなくてすむ
  • どこでも開発できる
  • リモートデスクトップで接続するのでローカルマシンは安くて(低性能)良い
  • 従量課金だから高性能PC買うより安いかも

desktop.png

環境

クラウド

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) と同居はできない

構築手順

  1. 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 で作成しました。
    azure.png
  2. VMにソフトウェアをインストール
    VM上にAndroid StudioVS Emulator をインストールします。
    Andoroid Studio では、Intel CPU を実行するコンピューターのためのハードウェアアクセラレーションである、HAXM(Intel Hardware Accelerated Execution Manager) をサポートしたエミュレータがインストールされますが、入れ子状態の仮想環境は未対応のため使用できません。代わりに Microsoft が提供している Hyper-V 対応の VS Emulator をインストールします。
  1. VM の Hyper-V を有効化する
    VM 上の Windows Pro では、 Hyper-V がデフォルトで無効化されているので、別途 有効化します。

  2. コントロールパネルから プログラムと機能 を選択

  3. Windows機能の有効化または無効化 を選択
    プログラムと機能.png

  4. Hyper-V と WHPX を有効化

    • Hyper-V
    • Windows Hypervisor Platform
      機能の有効か.png
  5. レジストリの変更
    Android Studio から VS Emulator が参照できるようにレジストリを変更します。

    1. コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Android SDK Tools というキーを作成します
    2. キーの中に Path を作成し、Android SDK のパスを指定します。
      regedit.png
  6. VS Emulatorの設定
    エミュレータの開発設定からUSB接続を有効にします。これにより、Andoroid Studio からエミュレータへアクセスすることができます。

    1. VS Emulator を起動し、エミュレータを実行
    2. アプリの中から、Dev Settings を選択
      mobile_app.png
    3. USBデバッグ にチェックをいれる
      mobile_usb.png
  7. Google USB ドライバのインストール

    1. Android Studio を開く
    2. メニューから [Tools]-[SDK Manager] を選択
    3. [Appearane & Behavior]-[System Settings]-[Android SDK]-[SDK Tools] を選択
    4. [Google USB Drive']にチェックをいれて [OK] ※HAXM は未チェックのまま(インストールしない)
      SDK_Manager.png
  8. Android Appの実行
    これでやっと一通りの準備がととのいました。あとはエミュレータを起動したまま、Android Studio から App を実行してみてください。
    エミュレータで実行できます。
    desktop.png

この記事が、少しでも 「VM上でエミュレータが動かないために Android App 開発を断念されてきた方」のお役に立てれば幸いです。
(2020/3/吉日)

参考

  1. Emulator for Azure VM
  2. setting up android sdk for visual studio android emulator
  3. 入れ子になった仮想化の有効化
  4. エミュレーターのパフォーマンスのためのハードウェア高速化 (Hyper-V と HAXM)
10
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?