Picture

Hi, I'm ogaclejapan.

Android Software Engineer at AbemaTV

AndroidエミュレータはAndroVM一択

「お前のエミュレータはもう死んでいる…」

去年発見してから開発現場で使い続けてる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を既に使っている人なら瞬殺レベル。

  1. VirtualBoxをインストール
  2. AndroVMをダウンロード

    gapps-houdini-flashと付くほうがgoogleの基本アプリをバンドルしたイメージ。
    最新のgappsを自分で導入できる人以外はバンドルを選択するのがベター。
    →ドキュメントによるとGoogleTTSはクラッシュするので取り除いたほうがよいとのこと。

  3. VirtualBoxを起動し、[ファイル]→[仮想アプライアンスのインポート]からダウンロードしたAndroVM(ova)ファイルをインポート。

Image
→アプライアンスの設定はデフォルトで問題なし

これで起動準備おk。

開発者向けの設定

実機と同様にデバッグ接続するためにはadbデバイスとして認識させる必要があり、
ネットワーク設定のポートフォワーディングにlocalhost:5555→10.0.3.15:5555を追加することで実現できる。

インポートしたAndroVMのネットワーク設定を選択し、ポートフォワーディングボタンを押下。
Image

TCPの5555番ポートをAndroVMの仮想IP:5555番ポートに流すようにする。
Image

これで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おすすめアプリ

実際に使ってみて、便利だったアプリをいくつかあげておく。

  • Fake GPS location

    擬似ロケーションを設定できるアプリ。
    GEO付きのアプリを開発するなら導入必須もの。

  • Hosts Editor

    androidのhostsを編集できるアプリ。
    ローカルPC内でサーバサイド含むオールインワン環境まで作るときに重宝する。

  • BusyBox

    実機でもroot系端末では必須のアプリ。
    使えるshellコマンドが増えるのでadb shell多用なら迷わず導入するべき

  • Power Toggles

    ウィジェット系一押しアプリ。
    AndroVMは電源OFFまでのキー操作が意外とメンドクサイので、
    電源OFFとかウィジェットをHOMEに置いておくと、マジ便利。

  • 日本語106/109キーボードレイアウト

    AndroVMはデフォルト英語キーボードレイアウトになるので、
    日本語キーボードから使用している場合は入れた方が無難だろうと思われる。
    変更方法はこちらのサイトを参考にするとよい

  • Google Chrome to Phone

    PCのchromeに表示しているURLを転送できる。
    web系のアプリ開発なら導入しておくと楽チン。

  • Google日本語入力

    デフォルトでも日本語入力できるが、入れた方が快適。

まとめ

SDK標準エミュレータと比べて、AndroVMではOSの選択肢や画面回転などはできないが、
それ以外の部分は同じようなことが実現できるし、なにより快適に動作する。

また、VirtualBox上で動作するため、予め環境設定したイメージを配布してチームで共有することもできるし、
スナップショット機能で状態を復元できる点はSDK標準エミュレータよりも使い勝手が良いと感じた。

AndroVMはアプリ開発者や関係者がローカル環境で動作確認する分には十分使えるレベルじゃないかなと思う。

Back to Top