色々なメモ。

私的メモ。プログラミングとか。主に自分用まとめ。

x86版Androidエミュレーターの導入

Android SDK に標準で付属しているエミュレータ(ARMアーキテクチャをエミュレートしている)とは別に、Intel Atom(x86) Android エミュレータというのがあって、そのほうが動作が高速だと書いてあったのでそれを入れてみた。

使用要件は CPU が Intel Virtualization Technology に対応していること。

インストール過程で結構詰まったので詰まった箇所を書いておく。

主にこのサイトを参考にした。基本的な手順は以下の通り。

  1. SDK Managerから、使用したいバージョンの「Intel x86 Atom System Image」と、一番下の方にある「Intel x86 Emulator Accelerator (HAXM)」をインストール。
  2. HAXMの方はSDK Manager上ではインストーラがダウンロードされているだけで、本当のインストールは手動で行う必要がある。SDKディレクトリ下のextras\intel\Hardware_Accelerated_Execution_Manager\IntelHaxm.exe を起動してインストール(ただしWindows8.1では、別バージョンをIntelのサイトからダウンロードする必要があるらしい。参照)
  3. あとは通常通りエミュレータを作成する際、CPU/ABI から Intel Atom を選ぶ。

ページによっては(3)の前にフォルダ構成を変える必要があると書いてあるところもあったのだが、それはこちらの環境ではしなくても大丈夫だった。 

基本的には以上でできるはず……なのだが、こちらの環境ではHAXMのインストールのところでエラーが出て結構詰まった。出たエラーは This computer meets the requirements for HAXM, but Intel Virtualization Techonology is not turned on.please enable VT-x and re-install HAXM.please refer to the Intel HAXM documentation for more information. というもので、この文章自体は「HAXMの要件には合致してますけどVTがONになってませんよ」と言っている。

こちらの環境では調べてみると確かにVTがDisabledになっていたので、BIOSからこれをEnabledにして再起動……したのだが、にも関わらず再び同じエラーが出た。

色々調べて、まず試したのがここに書いてある"bcdedit /set nx AlwaysOn"を実行する、というもの。が、これをやっても変わらず。(いま気付いたがこのページで質問している人のエラーメッセージは僕のエラーメッセージと少し違った)

さらに調べていると、日本語のページでそのものずばり書いてあるのがあった

原因はセキュリティソフトのavastにあるようで、avast 9の場合、 設定→トラブルシューティング→「ハードウェアによる仮想化支援機能を利用する」のチェックを外して再起動すれば、インストールできるようになります。インストール後は、設定を戻しても正常に動いています。

これに従って、avastの設定で「ハードウェアによる仮想化支援機能を利用する」のチェックを外してからPCを再起動すると、無事にHAXMがインストールできた。めでたしめでたし。