オルタナティブ・ブログ > 少しでもパラノイアになってみる >

知的好奇心を満たすために、いろいろなことにチャレンジする

エミュレーターが高速になったAndroid SDK r17を試す

»

"Android SDKアップデート、Windows/Macでエミュレータが高速に"を読んで、Androidエミュレーターがどれほど高速化したのかと思い試してみました。この記事に興味がわいた理由は、"Android 3.0エミュレータを起動させてみた~ものすごく遅い~"があまりにも遅くて使えなかったためです。また、PhoneGapでAndroidアプリも作ろうかと思っているので、試してみたいと思いました(PhoneGapで作る分はエミュレーターではデバッグしないのですが)。

試してみたのですが、Windowsではそれを実感することはできませんでした。Macでは高速化されていることがわかりました。

その手順を記載します。参考にしたのは、"Configuring Virtual Machine Acceleration"です。

まずは、Android SDK Tools Rev.17、Android 2.3.3のIntel Atom x86 System Image Rev.1、ExtrasのIntel Hardware Accelerated Execution Manager Rev.1をインストールします。

次に、Intel Hardware Accelerated Execution Managerはそのままでは機能しないようなのでインストールします。インストールするファイルは以下にあります。

<sdkのパス>/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.dmg 

これをインストールします。

インストール成功後に、コンソールで"kextstat | grep intel"を投入することで状態を把握できます。

次にAVD Manager(EclipseのメニューのWindowのAVD Manager)で、Newをクリックして新しいAVDを作ります。そのときにターゲットに"Intel Atom x86 System Image(Inte Corporation) - API Level 10"を選択します。

このAVDを起動するとなんとかなり速いです。

起動画面に違いはありませんが、Android 3.0エミュレータを試したときの速度はなんだったのかと思うほど速く起動して、軽いです。

速度差を計るために簡単なベンチマークを取ってみました。デフォルトのブラウザでSunSpiderを実行した時間が以下になります。比較対象にAVDのAPI Level 15のARMのSystem Image、iOSエミュレーター、iPad 3rd gen、Safari(Macbook Air mid 2011)、NEXUS SC-04Dです。エミュレーターは全てMacbook Air mid 2011上で動かしています。

SunSpider
(ms)
AVD(x86 API Level 10) 2,676
AVD
(Android 4.0.3 API Level 15)
17,647
iOSエミュレーター 1,126
iPad 3rd gen 1,709
Safari 5.1.3 237
NEXUS SC-04D 1,997

この数字を見て、いろいろと考えさせられました。

Intelのソフトの提供でAndroid x86のエミュレーターは速度の改善が見られます。まだx86 system imageは、Android 2.3.3しか提供されていませんが、IntelはGoogleと提供してAndroidに参加しているため、x86 system imageのサポートは増えると思われます。

NEXUS SC-04D(OMAP 4460)とMacbook Air(Core i5-2557M)の高速化されたx86のAVDはかなり近い数字が出ています。

ですが、それでもiOSエミュレーションからは低速です。Android 2.3.3のデフォルトブラウザだったこともありますが、Androidアプリを動かそうと思うほど早くはありません。

iPad 3rd genよりもMacbook Air(Core i5-2557M)の方が高速です。もっと速いMacbook Proなどならば、もっと速度差があると思います。

Androidの端末数は劇的に増えています。近い将来AndroidはWindowsを抜く可能性もあると考えています。2011年の時点で年間出荷台数ではAndroidはiOS(iPhone/iPad/iPod touch)を抜いています。

出荷台数の高い伸びを維持しているAndroidはプラットフォームとして魅力的です。ただし、現時点ではゲーム分野で儲からないと判断しているメーカもいますが。

このため、WindowsやMacでAndroidアプリが課金システム込みで動作すればエミュレーターで動かすのも面白いと思っています。

これはゲームコンソールが前ハードのアプリを後継のハードでエミュレーターで動作させるのと同じ方式です。モバイルデバイスの低性能且つPC等がCPUパワーに差がある場合なら実現できる方式です。ただし、速度があまりにも遅ければこの筋書きも意味がありませんが。

このため今回のようなエミュレーターの高速化はこの筋道への布石にもなれます。AppleもiOSに力を入れていることを考えると案外、"庇を貸して母屋を取られる"方式も割とありそうなシナリオではないかとも思っています(同じ言語と同じ開発スタイルを取れるので、低速化の意味は薄い可能性はありますが)。

ついでに、AMDのCPUを搭載した自作PCにはIntelのドライバーは入りません。また、ThinkPad X201sでVTをONにしてインストールを試みました。Intelのドライバーはインストールでき且つ"sc query intelhaxm"ではRUNNINGなのですが、同じようにx86 system imageのAVDを起動しても高速化されている雰囲気はありませんでした。Macbook Airで高速化出来ているので、原因はわかりませんでした。

Comment(0)