2012年5月31日木曜日

Androidのx86版ICSエミュをEclipseで何とか動かしてみた。多少苦労するけど、やっぱり爆速。GPUも効いてるっぽい。

AndroidのICSエミュのx86版が出たというので早速試してみた。

結論から言うと、すんなりはいかなかった。しかし、何とか動かすことはできた。


まずは普通にアップデート

「Intel Hardware Accelerated Execution Manager」をインストールしていない場合はこの記事を参考にインストール。

琴線探査: Android SDK・ADT rev.17でエミュレーターの高速化を試してみた。確かに速い。しかし・・・

Window > Android SDK Managerでアップデートを調べてみると、確かに「Android 4.0.3(API 15)」のツリーの中に「Intel x86 Atom System Image」があった。これだろう。


何気に「Android SDK Tools」もrev.19にアップデートしているのでアップデート。

「Android Support」もrev.8にアップデートしているのでこれもアップデート。

「Android SDK Tools」と「Android Support」は自動的にチェックされていたので、「Intel x86 Atom System Image」を追加でチェックして「Innstall 3 packages」。

相変わらずデータのダウンロードは遅いので気長に待つ。

ダウンロードが終わるとこのようなウインドウが。


Help > Check for Updates せい!というのでやってみたが結果はこれ。


必要なかったみたい?


ICSエミュx86版が認識されていない?

Window > AVD Manager から「New」で「Name:」に「API_Level_15_x86」とでも入力して、「Target:」で「Intel Atom x86 System Image(Intel Corporation) - API Level 15」を選択して「Create AVD」。

しようとしたら、無い!インストールされているはずのICSエミュx86版が認識されていない!まさかと思ってandroid-sdks/add-ons/ をチェックする。やっぱり無い。

しかし、どこかにインストールされていないかとタイムスタンプを手がかりに調べると、androis-sdks/system-images/android-15/x86にインストールされていることはわかった。

今回の話は「ガジェット速報」からであり、Androidの開発者ブログからではないことから、恐らくSDKの方がまだ完全に対応していないのだろうと思われ。

追記12.07.04:この問題は最新のSDK・ADTで解決したかもしれない
琴線探査: AndroidのSDK・ADTがバージョンアップ。x86版ICSの問題が解決したかも?


手動でファイルツリーを構成して何とか認識成功

ただ、API Level 10のx86エミュをインストールしているので、それに習って手動でファイルツリーを構成してみた。
  1. android-sdks/add-ons/addon-intel_atom_x86_system_image-intel_corporation-15フォルダを作成
  2. このフォルダ配下にmanifest.iniファイルを下記の内容で作成

    # SDK Add-on Manifest

    name=Intel Atom x86 System Image
    vendor=Intel Corporation
    description=Intel Atom x86 System Image

    # version of the Android platform on which this add-on is built.
    api=15

    # revision of the add-on
    revision=1

  3. addon-intel_atom_x86_system_image-intel_corporation-15フォルダ配下にimagesフォルダを作成
  4. imagesフォルダ配下にandrois-sdks/system-images/android-15/x86フォルダをそのままコピー
  5. images/x86/source.propertiesファイルをaddon-intel_atom_x86_system_image-intel_corporation-15フォルダ配下に移動
  6. EclipseでWindow>AVD Manager>「New」>「Target」をプルダウン。認識された!
    Eclipseの再起動は必要ない。
  7. API Level 15のエミュを選択して「Name」に「API_Level_15_x86」とでも入力して「Create AVD」。
  8. 「API_Level_15_x86」を選択して「Start」。起動した!

多少の問題が・・・

アプリをデバッグしようとCmd-F11して「Android Device Chooser」で起動済みのデバイスを見ると、このように確かに選択できる。


選択して「OK」したらアプリも正常に起動した。

ただ、「Target」が「?」になっているためか、AVD Managerでエミュを手動起動していない場合、上の「Choose a running Android Device」にも下の「Launch a new Android Virtual Device」にも出てこない。

少々面倒だけど、現状ではAVD Managerからエミュを手動起動しておくほかなさそうだ。


スピードは?

で、問題のスピードは・・・もちろん爆速だ。多少でも苦労した甲斐があったというものだ。

ついでに以前書いた記事を参考にGPUも使えるかどうか試してみたら、どうやら効いているっぽい。

琴線探査: Android 4.0.3 rev.2のエミュでGPUエミュレーションを使って高速化するには?

これは最強だわ。

願わくば、SDKの正式アップデートで普通に使えるようにしていただきたいものだ。