2015年11月25日
Androidのアプリ開発では、手元にない画面サイズを試したいときなどは、パソコンの中で端末を模擬するエミュレータ(システムイメージ;System Image)を使うこともあるのですが、エミュレータはとても重いソフトです。エミュレーションするAndroidのバージョンを選べば、若干でも軽くなることがあるようです。
Android開発の公式サイトで、Android Studioなどの開発環境をダウンロードしてインストールすると、Android SDKの中に、Android端末をパソコンで模擬するためのエミュレータがついてきます。
エミュレータを使えば、手元にないバージョンのAndroidや、様々な画面サイズにアプリが対応しているかを簡単にチェックできるので、便利ですが、エミュレータはとても重いソフトです。なにしろ、端末全体をパソコンの中で模擬するわけですから・・・。
ところで、Android SDK Managerでダウンロードできるエミュレータ(System Image)には様々な種類が提供されています。
System Imageと書かれている項目がそれぞれエミュレータを示します。
エミュレータ(System Image)ごとに、以下の点で違いがあります。
Andoidのバージョン | 端末のOSであるAndroidのバージョン。6.0とか5.1.1とか4.4.2とかがあります。新しいバージョンほど、最新の機能(API)に対応しています。Android 4.4.2はRAMが512MBでもそこそこ使えるほど省メモリであるなど、古いバージョンには、リソースが限られていてもスムーズに動くメリットがあります。 |
---|---|
ふつうのバージョンか「Google API」つきか | Google Play Serviceに対応しているのが「Google API」のほうで、そうでないのがふつうのバージョンのようです。Google Playの機能を使うアプリを試すのであればGoogle APIを選ぶのでしょうが、そのよううな機能がない簡単な自作アプリなら、Google APIではないほうを選んだほうが軽くてよいかもしれません。 |
CPUの種類 | ARMとIntelがあります。パソコンのCPUがインテルの命令セットで動いているのであれば、Intel版を入れたほうが高速に動作することでしょう。 |
端末の種類 | 最近では、単なるスマホやタブレットだけでなく、Android WearやらAndroid TVやらをエミュレーションできるバージョンも公開されています。試しにアプリを書いてみたい場合は、遊んでみるとよいでしょう。 |
ちなみに、Intelのシステムイメージは、追加で「intel x86 Emulator Accelerarator (HAXM installer)」をAndroid SDK Managerから追加でインストールすると、パソコンで対応するCPUを使っている場合は、動作が速くなる可能性があるそうです。
一番下の選択肢がIntel HAXM
Androidのエミュレータ(System Image)では、起動させる前に、画面サイズやRAMの容量などのパラメータを指定する必要があります。
これらのパラメータは、Androidの開発環境に含まれる「AVD Manager」というソフトから設定できます。Android StudioからToos→Android→AVD Managerの順にメニューをたどれば起動できます。
AVD Managerの画面。システムイメージを選び起動や設定を行います。
画面サイズは、パソコンの中で無理なく表示できる大きさとする必要があります。手持ちのパソコンは1366x768ドットの解像度しかないノートPCなので、端末の画面は320x480ピクセルだけにしてあります。小さめにしたほうが、動作が軽くなる期待があります。
端末のRAMの容量は、多く取れば快適に動くのかもしれませんが、4GBしか搭載していないPCでは、まずは512MBを取るのがやっとでした(Android 5.1では、どうしても必要なので1GBを指定)。Androidの開発を行うPCでは、RAMは8GB以上積んだほうが、エミュレータを起動する上では心強いように思います。手持ちのパソコン、増設したいです。
AVD Managerから、起動させたいシステムイメージを選び、再生ボタンを押すと、エミュレータが起動します。
起動したエミュレータは、スマートフォンのように動作します。パソコンがネットにつながっていれば、エミュレータもネットにつながるので、ブラウザがふつうに動きます。
各種バージョンのAndroid端末で、自分のホームページがどう見えるかを確かめる目的でも、エミュレータは活用できるかもしれません。
エミュレータは、いったん起動してしまえば、自作アプリのデバッグ実行に使えます。Android StudioでRun→Run 'app'を選んで作成中のアプリを実行すると、端末を選ぶ画面で、エミュレータが選択肢に出てくるようになります。なお、エミュレータを起動前であれば、エミュレータを起動し、その中でアプリを実行するように設定することもできます。
AndroidのバージョンやCPUの種類により、エミュレータが起動するまでの時間に差があることが分かりました。
エミュレータの起動ボタンを押してから、エミュレータに「ホーム画面」が表示されるまでの時間を、システムイメージを変えながら比べてみました。
なお、手持ちのパソコンはCore i3-350Mを搭載し、RAMは4GBです。汎用機としてはふつうですが、開発機としては不足な感じがします。
システムイメージ | 起動に要する時間 |
---|---|
Android 4.4.2 x86イメージ(RAM 512MB; 320x480 pixel) | 1分35秒 |
Android 4.4.2 ARMイメージ(RAM 512MB; 320x480 pixel) | 5分43秒 |
Android 5.1 x86イメージ(RAM 1024MB; 320x480 pixel) | 3分15秒 |
Android 4.4.2のx86イメージだけがべらぼうに速く、他は使えないくらい遅いです。なお、x86のイメージではintel HAXMの機能を使い、高速化を行いました。
Android 5.1は、やはり重いです。起動には倍の時間を要します。また、RAMの設定は512MBではだめで、1024MB必要でした。(intel HAXMの設定でも1024MBを選択しています。)
intelのCPUを搭載したパソコンを使っているので、ARMのCPUをエミュレーションすると、やはり遅くなります。
エミュレータが立ち上がった後の動作にも、システムイメージごとに大きな違いがあります。
x86のイメージであれば、Android 4.4.2、5.1ともに滑らかに動作し、静かに使っていればCPU使用率は10%程度におさまります。IntelのCPUでintel CPU搭載の端末を模擬しているので、効率がよいのでしょう。一方で、ARMプロセッサのイメージでは、画面表示がカクカクで動作が重い上に、CPU使用率はすぐに17%くらいまで上がってしまいます。
ちなみに、Android 5.1で、intelの高速化技術であるHAXMの設定をRAM 512MBまでとすると、システムイメージが1024MBのRAMを要求するので、HAXMの機能が切れてしまいました。この状態では、1時間半待ってもエミュレータは起動しませんでした。まともにデバッグができるエミュレータがほしければ、HAXMは必須なのかもしれません。
Android 5.1をエミュレーションするためには、HAXMに対してRAMを1GB明け渡す必要がありますが、RAMが4GBしか搭載されていないパソコンでは、だいぶきついです。Android 4.4.2であれば512MBで済むので、なんとかAndroid Studioと共存できるレベルです。
ちなみに、Intel Hardware Accelerated Execution Managerは、Windows 10でユーザ名が"A"であれば、C:\Users\A\AppData\Local\Android\sdk\extras\intel\Hardware_Accelerated_Execution_Managerからたどれる場所にインストールされています。インストーラを再度実行すると、HAXMで使うRAMの量を自由に調整できます。
Android 4.4.2は、少ないメモリで端末を実現できることを売りにしていましたが、開発をする上でも、非力なパソコンでもエミュレーションが快適にできるというメリットがあるようです。
作っている自作アプリが求めるAPIのレベルがそれほど高くないのであれば、Android 4.4.2のイメージを使ってあれこれ楽しんで見るのも、RAM搭載量が4GB程度の非力なマシンではいいのかもしれません。
杉原俊雄のホームページ→ Androidアプリ開発メモ(もくじ)
(c) 2015 Toshio Sugihara. All rights reserved.