22
16

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 5 years have passed since last update.

Windows Hypervisor PlatformによるアクセラレーションでAVDを動かす

Last updated at Posted at 2018-05-20

概要

Android SDKに含まれるAndroid Emulatorが、v27.3.1からWindows Hypervisor Platform(WHPX)によるアクセラレーションをサポートしたとのことで、従来のHAXMとの動作を比較してみました。

実はv27.2.7から(密かに?)サポートされていたようですが、Googleの公式リリースに記されたのがv27.3.1からということのようです。なお、この機能を用いるには、Windows 10をバージョン1803にアップグレードする必要があります。

作業手順

まずは作業の手順を一通り記します。ベンチマークの内容と結果は次節にまとめます。

試験用PCのスペック

Intel Core i7-3770
Intel HD Graphics 4000
メインメモリー24GB (PC3-12800)
Windows 10 Pro バージョン1803

Android Emulatorのアップデート

(このテストはv27.3のStable版がリリースされていない段階だったため、Canaryを用いています。現在はStable版がリリースされているので、実運用にはそちらを用いましょう。)

まずはAndroid StudioでSettingsを選択して設定を開き、図1の画面でアップデートチャネルをCanary Channelに切り替えます。Check Nowをクリックしてリストを更新しますが、このときAndroid Studio本体のCanary版へのアップデートを問うダイアログが出ます。ここではEmulatorのみアップデートしますので、Ignore This Updateをクリックしてパスします。

図1

次にSDK Managerを開いて、Android Emulatorのみをアップデートします。更新によってv27.3.3になっていましたので、このバージョンで比較を行います。なお、HAXM(v6.2.1)はインストール済みの状態です。

図2

AVDの作成

試験用のAVDを新規に作成します。DeviceはNexus 5X、System ImageはAPI 26のGoogle APIs x86_64を選択しました。ベンチマークアプリのインストール以外は、一切設定を変更せずに用いました。

HAXMによるテスト

まずはHAXMによるアクセラレーションでAVDを起動してベンチマークテストを行います。コマンドプロンプトから起動すると、HAX is working and emulator runs in fast virt mode.という表示が出力されるので、HAXMが機能していることを確認できます。

図3

Windows Hypervisor Platformのインストール

次に、HAXMをアンインストールしてから、Windows Hypervisor Platformをインストールします。

コントロールパネルを開いて「ソフトウェア」→「Windowsの機能の有効化または無効化」と選択します。開かれたダイアログのリストの中から、「Windowsハイパーバイザープラットフォーム」にチェックを入れてインストールします(要再起動)。なお、資料によってはHyper-V関連のコンポーネントのインストールも必要とするものもありますが、入れなくても影響はないようです。

図4

Windows Hypervisor Platformによるテスト

再起動したら、Windows Hypervisor PlatformによるアクセラレーションでAVDを起動して同じベンチマークテストを行います。こちらは、起動したときにWindows Hypervisor Platform accelerator in operationalと表示されます。

図5

ベンチマーク

ソフトウェアと試験項目

AVD上でAntutuなど重量級のベンチマークを動かすのは難しいと思われるので、かなり古いものですが0xbenchを用いました。また、試験項目も2D描画に絞りました。

図6

試験結果

単位はfpsです。Windows Hypervisor Platformの方が若干悪い結果になっています。

Test HAXM WHPX
Draw Canvas 18.102293 15.211219
Draw Circle 21.753263 18.533384
Draw Circle2 33.67966 31.697042
Draw Rect 25.103811 23.606863
Draw Arc 30.099747 26.686575
Draw Image 26.73352 24.638912
Draw Text 36.914715 32.54401

考察

ベンチマークの結果としては、従来のHAXMの方が若干成績が良く、実際の使用感でもその傾向は感じられました。ただ、これまではHAXMを利用するにCPUがIntel製でなければならず、AMD製CPUでWindowsを運用している人にとっては、AVDを高速化する手段がありませんでした。それが、Windows Hypervisor Platformのサポートによってその可能性が拓けたことは朗報です。また、Hyper-Vユーザーにとっても、HAXMとの併用ができずに不便を強いられていた状況が改善されることになります。一方で、これでHAXMが終息に向かうわけではないようなので、当座のところはユーザーの利用形態の幅を広げるものとして併存していくことになるのでしょう。

資料

Emulator 27.3.1 Canary, 27.2.9 Beta | Release Updates | Android Developers
Windows Hypervisor Platform | Microsoft Docs
Intel® Hardware Accelerated Execution Manager (Intel® HAXM) | Intel® Software
Android Emulator - AMD Processor & Hyper-V Support | Android Developers Blog

22
16
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
22
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?