AndroidエミュレータはAndroVM一択
旧ブログ(blog.ogaclejapan.com)から移行してきた古い記事です。 移行に伴い、一部のレイアウトが崩れている可能性もありますmm
「お前のエミュレータはもう死んでいる…」
去年発見してから開発現場で使い続けてるAndroidエミュレータ 「AndroVM(旧Buildroid)」 が爆速かつ使い易すぎて鼻血が止まらん。。
AndroVMとは何奴!?
簡単にいうと、 ORACLE社が無償で提供する仮想化ソフトウェアVirtualBox上で動作させるAndroidのOSイメージみたいなもの。
VirtualBox自体はWindows,Linux,Macいずれもサポートしているので、 よほど古いPCでなければAndroVMは動くはず。
現在のところ、AndroVMでは3つのイメージファイルが配布されている。
- 擬似phoneイメージ(480x800)
- 擬似tabletイメージ(1024x600)
- phone機能を内蔵した擬似tabletイメージ(1024x600)
OVFという仮想化標準フォーマット(らしい)で配布しているので、 もしかしたら他の仮想化ソフトウェアでも利用可能かもしれないが知らん。
詳細はサイトのドキュメントを読むべし。
AndroVM導入
VirtualBoxを既に使っている人なら瞬殺レベル。
-
VirtualBoxをインストール
-
AndroVMをダウンロード
gapps-houdini-flash
と付くほうがgoogleの基本アプリをバンドルしたイメージ。 最新のgappsを自分で導入できる人以外はバンドルを選択するのがベター。 →ドキュメントによるとGoogleTTSはクラッシュするので取り除いたほうがよいとのこと。 -
VirtualBoxを起動し、
[ファイル]→[仮想アプライアンスのインポート]
からダウンロードしたAndroVM(ova)ファイルをインポート。
→アプライアンスの設定はデフォルトで問題なし
これで起動準備おk。
開発者向けの設定
実機と同様にデバッグ接続するためにはadbデバイスとして認識させる必要があり、
ネットワーク設定のポートフォワーディングにlocalhost:5555→10.0.3.15:5555
を追加することで実現できる。
インポートしたAndroVMのネットワーク設定を選択し、ポートフォワーディングボタンを押下。
TCPの5555番ポートをAndroVMの仮想IP:5555番ポートに流すようにする。
これでvm起動後、adbのconnectコマンドで接続できるはず。
$ adb connect localhost
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
connected to localhost:5555
$ adb devices
List of devices attached
localhost:5555 device
参考にしたサイト:
AndroVMのキーボード操作表
一部のキーはAndroVMplayerというフロントエンドアプリ経由で起動することで使用可能になる。 ただ自分の環境ではBSキーがなぜか認識されず入力操作に難があるため今のところ使ってない。
(複数認識するキーがある場合はorで記載)
AndroVM Device Key | PC Keyboard Key |
---|---|
Homeボタン | [HOME] or [Fn + Left] |
Menuボタン | [F1] or [F10] |
Backボタン | [ESC] |
履歴ボタン?? | [F3] |
電源ボタン | [END] or [F4] or [Fn + Right] |
音量UPボタン | 不明(AndroVM Playerのみ使用可?) |
音量DOWNボタン | 不明(AndroVM Playerのみ使用可?) |
カメラボタン | 不明(AndroVM Playerのみ使用可?) |
画面向き変更 | たぶん不可能 |
AndroVMおすすめアプリ
実際に使ってみて、便利だったアプリをいくつかあげておく。
-
擬似ロケーションを設定できるアプリ。 GEO付きのアプリを開発するなら導入必須もの。
-
androidのhostsを編集できるアプリ。 ローカルPC内でサーバサイド含むオールインワン環境まで作るときに重宝する。
-
実機でもroot系端末では必須のアプリ。 使えるshellコマンドが増えるのでadb shell多用なら迷わず導入するべき
-
ウィジェット系一押しアプリ。 AndroVMは電源OFFまでのキー操作が意外とメンドクサイので、 電源OFFとかウィジェットをHOMEに置いておくと、マジ便利。
-
AndroVMはデフォルト英語キーボードレイアウトになるので、 日本語キーボードから使用している場合は入れた方が無難だろうと思われる。 変更方法はこちらのサイトを参考にするとよい
-
PCのchromeに表示しているURLを転送できる。 web系のアプリ開発なら導入しておくと楽チン。
-
デフォルトでも日本語入力できるが、入れた方が快適。
まとめ
SDK標準エミュレータと比べて、AndroVMではOSの選択肢や画面回転などはできないが、 それ以外の部分は同じようなことが実現できるし、なにより快適に動作する。
また、VirtualBox上で動作するため、予め環境設定したイメージを配布してチームで共有することもできるし、 スナップショット機能で状態を復元できる点はSDK標準エミュレータよりも使い勝手が良いと感じた。
AndroVMはアプリ開発者や関係者がローカル環境で動作確認する分には十分使えるレベルじゃないかなと思う。