「Mono for Android」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
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のおかげで、他の関連プロジェクトも含め、マニュアルを書く専門の人を雇えるくらい安定して回るようになったという。
  
8行目: 7行目:
 
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仮想マシンをブリッジするクラスの提供により利用することができる。
+
[[オーディオ]]や[[グラフィック]]、[[OpenGL]]、電話制御といったDalvik仮想マシンが提供しているJava APIについても、Mono仮想マシンとDalvik仮想マシンを[[ブリッジ]]する[[クラス]]の提供により利用することができる。
  
 
== メリットとデメリット ==
 
== メリットとデメリット ==
 
=== 互換性 ===
 
=== 互換性 ===
通常、[[Android OS]]のアップデートと[[Dalvik仮想マシン]]のアップデートはイコールであり、[[Android]]端末によっては製造メーカーの放置プレイにより最新の[[API]]が利用できない、製造メーカーがアップデートを提供してもユーザーの放置により同一端末で複数バージョンの[[OS]]が存在し、それぞれの挙動が違う、などの問題を抱えていることがある。
+
通常、[[Android OS]]のアップデートと[[Dalvik仮想マシン]]のアップデートはイコールであり、[[Android]]端末によっては製造メーカーの放置プレイにより最新の[[API]]が利用できない、また製造メーカーがアップデートを提供してもユーザーの放置により同一端末で複数バージョンの[[OS]]が存在し、それぞれの挙動が異なるなどの問題を抱えていることがある。
 +
 
 +
また一部の機種において、特定のAPIの挙動が異なる、イベント発生タイミングやイベント発生順序が異なるなどの問題も抱えている。
  
 
一方、Mono仮想マシンはアプリと同梱されて配布されるため、Mono仮想マシンを半ば強制的にアップデートできるようになっている。つまり[[OS]]とアプリをセット配布しているようなものであり、Androidのアプリ互換性問題を大幅に軽減でき、かつアップデートしていない端末でも最新APIが叩けたりする。
 
一方、Mono仮想マシンはアプリと同梱されて配布されるため、Mono仮想マシンを半ば強制的にアップデートできるようになっている。つまり[[OS]]とアプリをセット配布しているようなものであり、Androidのアプリ互換性問題を大幅に軽減でき、かつアップデートしていない端末でも最新APIが叩けたりする。
  
ただしアプリのサイズが桁違いに超巨大化するというデメリットもある。
+
ただしMono for Androidはメリットばかりではなく、アプリのサイズが桁違いに超巨大化するというデメリットもある。
単純な「[[Hello World]]」ですら4MBを超えるapkファイルとなる。
+
たとえば単純な「[[Hello World]]」ですら4MBを超えるapkファイルとなる。
また、アプリの起動には仮想OSの起動も伴うため、立ち上がりに時間がかかるという問題もあるが、最新バージョンでは大幅に改善されつつある。
+
また、アプリの起動には仮想OSの起動も伴うため、アプリの立ち上がりに時間がかかるという問題もある。この起動時間の問題についてはMono for Androidの最新バージョンで大幅に改善されつつある。
  
 
※ベータ版まではMono仮想マシンは単体アプリとして配布する形式だったが、製品版ではアプリの互換性の向上のためにアプリと同梱されるようになった。また開発環境(デバッグ版)では起動速度の高速化のために共有仮想マシンを使うようになっている。
 
※ベータ版まではMono仮想マシンは単体アプリとして配布する形式だったが、製品版ではアプリの互換性の向上のためにアプリと同梱されるようになった。また開発環境(デバッグ版)では起動速度の高速化のために共有仮想マシンを使うようになっている。
  
 
=== 開発環境 ===
 
=== 開発環境 ===
[[Windows]]上であれば[[MonoDevelop]]に加え、[[Visual Studio]]のアドオン版も提供されているので快適に開発が行える。
+
[[Windows]]上であれば[[MonoDevelop]]に加え、[[Visual Studio]]用のアドオン版も提供されており、Visual Studioに慣れた[[プログラマー]]が快適に開発を行えるようになっている。
  
アドオンが使えないVisual Studio Expressでは動かないため、Visual Studioの製品版を買う必要があり、Mono for Androidと合わせるとなかなかの出費になるというデメリットもある。ただ前述の互換性云々よりも[[C Sharp|C#]]が使いたいがために導入しようとしている人はVisual Studioの製品版くらい持っていそうではある。
+
なおアドオンが使えない[[Visual Studio Express]]では動かないため、Visual Studioの製品版を買う必要があり、Mono for Androidと合わせるとなかなかの出費になるというデメリットもある。ただ前述の互換性云々よりも[[C Sharp|C#]]が使いたいがために導入しようとしている人はVisual Studioの製品版くらい持っていそうではある。
  
なお、[[Windows]]でも[[Mac OS X]]でも[[Linux]]でも[[MonoDevelop]]を使う限りは特に追加の出費はない。積極的に[[MonoDevelop]]になれるのもひとつ。少なくとも[[MonoDevelop]]は[[Eclipse]]よりは軽いので仕事で縛りがなければ[[NetBeans]]を使うくらい[[Eclipse]]が嫌いな人には少なからずメリットかもしれない。
+
[[Windows]]でも[[Mac OS X]]でも[[Linux]]でも[[MonoDevelop]]を使う限りは特に追加の出費はない。積極的に[[MonoDevelop]]になれるのもひとつ。少なくとも[[MonoDevelop]]は[[Eclipse]]より軽快に動作するので、仕事で縛りがなければ[[NetBeans]]を使うくらい[[Eclipse]]が嫌いな人には少なからずメリットかもしれない。
  
 
== インストール ==
 
== インストール ==

2012年6月5日 (火) 12:44時点における版

Mono for Android(もの・ふぉー・あんどろいど)とは、Android OS上で動作するMono実行環境およびMonoDevelopをベースとした開発ツールである。ベータ版まではMonoDroid(ものどろいど)という名称であった。

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

アーキテクチャー

Mono for 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が叩けたりする。

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

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

開発環境

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

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

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

インストール

使い方

関連項目

参考文献

外部リンク