「カテゴリ:Xamarin.Android」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
imported>Administrator
 
1行目: 1行目:
[[Xamarin.Android]]関連のカテゴリです。
+
'''Xamarin.Android'''(読み:ざまりんあんどろいど)とは、Visual Studioを使いC#でAndroidアプリを作れるという代物である。
 +
ベータ版までは[[MonoDroid]]、初期の製品版は[[Mono for Android]]という名称であった。
  
 +
== アーキテクチャー ==
 +
Xamarin.Androidは、[[Android]]標準の[[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の起動も伴うため、アプリの立ち上がりに若干時間がかかるという欠点もある。
 +
この起動時間の問題については、LLVM経由でネイティブコード化するなどの技術の登場により、Xamarin.Androidの最新バージョンでは大幅に改善されつつある。
 +
 +
※ベータ版まではMono仮想マシンは単体アプリとして配布する形式だったが、製品版ではアプリの互換性の向上のためにアプリに同梱されるようになった。なお、開発環境(デバッグ版)では起動速度の高速化のために共有仮想マシンを使うようになっている。
 +
 +
=== 開発環境 ===
 +
* [[Windows]] - [[Visual Studio 2017]]以降であれば標準搭載
 +
* [[macOS]] - [[Visual Studio for Mac]] (旧[[Xamarin Studio]])
 +
 +
== 関連項目 ==
 +
* [[Xamarin.Mac]]
 +
* [[Xamarin.iOS]]
 +
* [[Unity]]
 +
* [[PlayStation Suite]]
 +
 +
== 外部リンク ==
 +
* http://xamarin.com/monoforandroid
 +
 +
[[category:Android]]
 
[[category:Xamarin]]
 
[[category:Xamarin]]

2018年2月7日 (水) 04:39時点における最新版

Xamarin.Android(読み:ざまりんあんどろいど)とは、Visual Studioを使いC#でAndroidアプリを作れるという代物である。 ベータ版まではMonoDroid、初期の製品版はMono for Androidという名称であった。

アーキテクチャー[編集 | ソースを編集]

Xamarin.Androidは、Android標準の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の起動も伴うため、アプリの立ち上がりに若干時間がかかるという欠点もある。 この起動時間の問題については、LLVM経由でネイティブコード化するなどの技術の登場により、Xamarin.Androidの最新バージョンでは大幅に改善されつつある。

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

開発環境[編集 | ソースを編集]

関連項目[編集 | ソースを編集]

外部リンク[編集 | ソースを編集]

カテゴリ「Xamarin.Android」にあるページ

このカテゴリには 33 ページが含まれており、そのうち以下の 33 ページを表示しています。