AMD でも Android 開発をしたい
使用している開発用 PC の CPU が AMD である場合、Android Emulator を利用するのに設定が必要です。場合によっては Bios の設定をいじる必要があったりします。
設定に難儀したのでメモ代わりにまとめておきます。
この記事の Android 環境構築と部分的にはかぶります。
検証環境
- Windows 10 Home
- AMD CPU (Ryzen 5 2600)
- Android Studio 3.4
以上の環境で Android Emulator を動作させます。
Android Studio をインストール & 設定
Download Android Studio and SDK tools
まずは Android Studio をインストールします。最新版をダウンロードしてインストールしましょう。最新バージョンは2019年5月現在で 3.4 でした。
Android Studio をインストールすることで Android SDK や Emulator 等の管理ツールが合わせて使えるようになります。
Android SDK インストール
Android Studio インストール時に必要なSDK等がデフォルトでインストールされていると思いますが一応確認のため SDK Manager を起動して確認します。
Android Studio を起動し、Configure から SDK Manger を起動します。
インストール内容は以下の通りです。最新の Android SDK 28 がインストールされています。
Emulator ほかデフォルトインストールの内容が入っています。SDK Tools のタブのハイライトした行は Intel x86 Emulator Accelerator(HAXM Installer) で Intel CPU で使える Emulator を高速化する機能です。これは AMD CPU では利用できません。AMD CPU では代わりに Windows Hypervisor Platform(WHPX) を利用します。
Windows Hypervisor Platform のインストール
Windows Hypervisor Platform は Windows 10 以上で利用できる機能で、Intel x86 Emulator Accelerator と同様にハードウェア機能を使って高速なエミュレータを実現してくれます。
まず、タスクバーにある検索欄に “機能の有効化” と入れます。[Windows の機能の有効化または無効化] を選択して画面を開き、 Windows Hypervisor Platform をチェックしてOKで WHPX がインストールされます。
これでひとまず準備はOKです。
systeminfo コマンドで確認
systeminfo
コマンドをコンソールで実行するとインストールした Hyper-V の要件を満たしているかどうかが確認できます。
$ systeminfo
...(略)
Hyper-V の要件: ハイパーバイザーが検出されました。Hyper-V に必要な機能は表示されません。
上記のように表示されていれば Hyper-V が有効になっており、必要な設定は完了しています。しかし以下のように “いいえ” がついていて必要な要件を満たしていない場合は、さらに設定を行う必要があります。
Hyper-V の要件: VM モニター モード拡張機能: はい
ファームウェアで仮想化が有効になっています: いいえ
第 2 レベルのアドレス変換: はい
データ実行防止が使用できます: はい
私が遭遇したのは上記の “ファームウェアで仮想化が有効になっています: いいえ” だったのでこれの対処を記します。
BIOS(UEFI) の設定
“ファームウェアで仮想化” というのは BIOS(UEFI) から設定を行う必要があるということです。PCを再起動してBIOS画面に移り、CPUの設定を確認します。
仮想化に関する設定があるのでそれを有効化(Enable)したら完了です。
BIOSは各マザーボードメーカーによってさまざまなので一概にこうしろということはできませんが、以下私の環境(ASRockマザーボード)での画面を参考に貼っておきます。
“アドバンスド” というメニューの中の CPU設定を開き、SVM Mode という項目の設定値を Enable に変更しました。
この項目の説明には “CPU Virtualization” とあり、CPUの仮想化に関する設定であることがわかります。
設定を変更したら保存して再起動しましょう。再度 systeminfo
で確認し、Hyper-V 要件が満たされていることを確認しましょう。
これで必要な設定は完了です。
AVD Manager からエミュレータを作成する
あとはエミュレータを作成し、起動するかどうかです。
試しに Pixel 2(API 28) を作成し起動してみたところ、うまく起動しました。
ただし Pixel 3 があったので試してみると動きませんでした。なぜかはわかりませんが、ひとまずエミュレータを動かせたのでよしとします。
以上。
役立ちました!AMDだとこのあたりの手順踏まないといけないんですね…
はまってたので助かりました!