「Mono for Android」の版間の差分

imported>Administrator
imported>Administrator
編集の要約なし
1行目: 1行目:
'''Mono for Android'''(もの・ふぉー・あんどろいど)とは、Android OS上で動作する[[Mono]]実行環境および[[MonoDevelop]]をベースとした開発ツールである。ベータ版までは'''MonoDroid'''(ものどろいど)という名称であった。
'''Mono for Android'''(もの・ふぉー・あんどろいど)とは、[[Android OS]]上で動作する[[Mono]]実行環境および[[MonoDevelop]]をベースとした開発ツールである。ベータ版までは'''MonoDroid'''(ものどろいど)という名称であった。


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


== アーキテクチャー ==
== アーキテクチャー ==
Mono for Androidは、Andorid標準のDalvik仮想マシン上で動くのではなく、Andoroid OSの根底にいるLinuxの上で、Dalvik仮想マシンと同様に、Dalvik仮想マシンと並行するかたちでMono仮想マシンが実行されるようになっている。Mono仮想マシン自体はDalvik仮想マシン同様にC言語で書かれている。
Mono for Androidは、[[Andorid]]標準の[[Dalvik仮想マシン]]上で動くのではなく、[[Andoroid OS]]の根底にいる[[Linux]]の上で、[[Dalvik仮想マシン]]と同様に、[[Dalvik仮想マシン]]と並行するかたちでMono仮想マシンが実行されるようになっている。Mono仮想マシン自体はDalvik仮想マシン同様に[[C言語]]で書かれている。


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


== メリットとデメリット ==
== メリットとデメリット ==
=== 互換性 ===
=== 互換性 ===
通常、Android OSのアップデートとDalvik仮想マシンのアップデートはイコールであり、Android端末によっては製造メーカーの放置プレイにより最新のAPIが利用できない、製造メーカーがアップデートを提供してもユーザーの放置により同一端末で複数のOSバージョンが存在し挙動が違う、などの問題を抱えていることがある。
通常、[[Android OS]]のアップデートと[[Dalvik仮想マシン]]のアップデートはイコールであり、[[Android]]端末によっては製造メーカーの放置プレイにより最新の[[API]]が利用できない、製造メーカーがアップデートを提供してもユーザーの放置により同一端末で複数バージョンの[[OS]]が存在し、それぞれの挙動が違う、などの問題を抱えていることがある。


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


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


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