Xamarin.Android

提供: MonoBook
2015年8月19日 (水) 03:19時点における124.87.114.212 (トーク)による版 (ページの作成:「'''Xamarin.Android'''(読み:ざまりんあんどろいど)とは、Android OS上で動作するMono実行環境およびXamarin Studioをベースと...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

Xamarin.Android(読み:ざまりんあんどろいど)とは、Android OS上で動作するMono実行環境およびXamarin Studioをベースとした開発ツールである。 ベータ版まではMonoDroid、初期の製品版はMono for Androidという名称であった。

概要

Xamarin.Androidは、Android実機で動かせる製品版は有償である。 Monoの開発を主導するXamarinの貴重な収入源であり、MonoTouchとXamarin.Androidのおかげで、他の関連プロジェクトも含め、マニュアルを書く専門の人を雇えるくらい安定して回るようになったという。

アーキテクチャー

Xamarin.Androidは、Andorid標準のDalvik仮想マシン上で動くのではなく、Andoroid OSの根底にいるLinuxの上でDalvik仮想マシンと同様にDalvik仮想マシンと並行するかたちでMono仮想マシンが実行される。Mono仮想マシン自体はDalvik仮想マシン同様にC言語で書かれている。

オーディオグラフィックOpenGL、電話制御といったDalvik仮想マシンが提供しているJava APIについても、Mono仮想マシンとDalvik仮想マシンをブリッジするクラスの提供により利用することができる。

メリットとデメリット

互換性

通常、Android OSのアップデートとDalvik仮想マシンのアップデートはイコールであり、Android端末によっては製造メーカーの放置プレイにより最新のAPIが利用できない、また製造メーカーがアップデートを提供してもユーザーの放置により同一端末で複数バージョンのOSが存在し、それぞれの挙動が異なるなどの問題を抱えていることがある。また一部の機種においては、特定のAPIの挙動が異なる、イベント発生タイミングやイベント発生順序が異なるなどの問題も抱えている。

一方、Mono仮想マシンはアプリと同梱されて配布されるため、Mono仮想マシンを半ば強制的にアップデートできるようになっている。つまりOSとアプリをセット配布しているようなものであり、Androidのアプリ互換性問題を大幅に軽減でき、かつアップデートしていない端末でも最新APIが叩けたりするという特徴がある。

ただし、これはメリットばかりではなく、アプリのファイルサイズが桁違いに巨大化するというデメリットもある。 たとえば単純な「Hello World」ですら4MBを超えるapkファイルとなる。 また、アプリの起動には仮想OSの起動も伴うため、アプリの立ち上がりに時間がかかるという問題もある。この起動時間の問題についてはXamarin.Androidの最新バージョンで大幅に改善されつつある。

※ベータ版まではMono仮想マシンは単体アプリとして配布する形式だったが、製品版ではアプリの互換性の向上のためにアプリと同梱されるようになった。なお、開発環境(デバッグ版)では起動速度の高速化のために共有仮想マシンを使うようになっている。

開発環境

Windows上であればMonoDevelopに加え、Visual Studio用のアドオン版も提供されており、Visual Studioに慣れたプログラマーが快適に開発を行えるようになっている。

なおアドオンが使えないVisual Studio Expressでは動かないため、Visual Studioの製品版を買う必要があり、Xamarin.Androidと合わせるとなかなかの出費になるというデメリットもある。ただ前述の互換性云々よりもC#が使いたいがために導入しようとしている人はVisual Studioの製品版くらい持っていそうではある。

WindowsでもMac OS XでもLinuxでも[[MonoDevelop(Mac版はXamarin Studioという名称)を使う限りは特に追加の出費はない。積極的にMonoDevelopに慣れるのもひとつ。少なくともMonoDevelopEclipseより軽快に動作するので、仕事で縛りがなければNetBeansを使うくらいEclipseが嫌いな人には少なからずメリットかもしれない。

インストール

使い方

関連項目

外部リンク

参考文献