最新版 |
編集中の文章 |
1行目: |
1行目: |
− | '''Xamarin.Android'''(読み:ざまりんあんどろいど)とは、Visual Studioを使いC#でAndroidアプリを作れるという代物である。
| + | [[Xamarin.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]] |