Mono for Android v4 とx86版ICSエミュレータを組み合わせて開発する

止まっているのかと勘違いするほどクソ遅いARM版ICSエミュレータでMono for Androidアプリを開発するのは非常にストレスがある。エミュレータの起動まではスナップショットを使えば回避できるが、ビルド->転送->実行->ブレーク->ステップ等はとてつもなく遅い。
そこでx86版ICSエミュレータで開発ができないか試してみたら以外とあっさりうまくいった。ARM版と比較にならないぐらい速い。

ここでの開発環境はMac OS。おそらくWindowsでも可能だろう。

使った物

手順

  1. MonoDevelop、AndroidSDK、VirtualBoxをインストール。
  2. ダウンロードしたエミュレータイメージを適当なところに解凍。
  3. VirtualBoxから解凍したエミュレータイメージを読み込む。
  4. ホストのターミナルで以下のコマンド実行

$ adb kill-server
$ adb start-server
$ adb devices

adb devicesを実行してemulator-5554等と表示されればadbがx86エミュレータを認識してくれている。

MonoDevelopでのプロジェクト設定

x86版バイナリを作成しなければならないので以下の部分でx86にチェックを入れる。

またエミュレータ内のICSバージョンがv4.0.1なのでTarget framework等を4.0にする。
ここと

ここ


以上でx86エミュレータMonoDevelopから使えるようになる。ブレークポイントも可能。SDカードへのファイル転送はAndroidSDK付属のddmsから可能。

ネットワークについて

エミュレータのネットワーク設定はNATにしておけばadbからも自動認識された。