web-dev-qa-db-ja.com

Google Androidは.NETをサポートしますか?

GoogleのAndroid OSを搭載したG1が利用可能になりました(まもなく)Androidプラットフォームは.Netをサポートしますか?

253
JarrettV

Update:2年前にこの回答を書いたので、Androidで実行するためにMonoを製品化しました。作業には、MonoをAndroidに移植し、Visual Studioと統合し、MacおよびWindowsでMonoDevelopのプラグインを構築し、Java Android AP​​Iを.NET言語に公開するといういくつかの手順が含まれました。これは http://monodroid.net で利用可能になりました

Android上のMonoは、Mono 2.10ランタイムに基づいており、C#4.0コンパイラでデフォルトの4.0プロファイルを使用し、Monoの新しいSGenガベージコレクションエンジンと、_全体でGCを実行する新しい分散ガベージコレクションシステムを使用しますJavaおよびMono。


以下のリンクは、2009年1月現在のAndroidのMonoを反映しています。歴史的な背景のためにそれらを保持しています

MonoはKoushik DuttaとMarc CrichtonのおかげでAndroidで動作するようになりました。

ここで実行されているビデオを見ることができます: http://www.koushikdutta.com/2009/01/mono-on-Android-with-gratuitous-shaky.html

そして、あなたはここでMonoを自分で構築するための指示を得ることができます: http://www.koushikdutta.com/2009/01/building-mono-for-Android.html

MonoのJITとDalvikのインタープリターを比較するベンチマークは、こちらから入手できます。 http://www.koushikdutta.com/2009/01/dalvik-vs-mono.html

そしてもちろん、Monoで事前に構成された画像をここから入手できます(その使用方法の詳細については、投稿の下部をご覧ください): http://www.koushikdutta.com/2009/01/building- mono-for-Android.html

325
miguel.de.icaza

はい、可能です。それほど難しくはありません。この時点で最初に必要なのは、MSILを Dalvikバイトコード に変換する何らかのコンバーターです。どちらの形式もオープンソースであり、十分に文書化されているため、問題はありません。

したがって、C#またはVB.NETでAndroidアプリケーションを作成することが可能になります。質問は、.NETフレームワーク標準ライブラリのどれだけがサポートされるかです。しかし、それは別の問題です。

オスカー・レイズはこう書いた:

グーグルが.netに興味を持っているなら、Androidが最初の段階にある間に何かをデザインしたのではないかと確信しています。私はそれが不可能というわけではありません、私が言っているのは彼らが興味がないということです。たぶんmmm hhhh 10年。

実際、彼らが既に設計したのは、Javaと.NETとの非常に互換性のあるです

一度にすべてを行うことはできませんが、Android SDKを調べると、dxというツールがあります。このツールはJavaバイトコードをDalvikバイトコードに変換します。つまり、Javaで書かれたプログラムをAndroidですぐに実行できます。現在、.NETにも同じツールが必要です。

.NETとJavaがどれほど似ているかを考えると、本当に時間の問題です。

ddimitrovが書いた:

.Net-> Java-> Dalvikの翻訳は今でもできます( http://dev.mainsoft.com/ )が、.Netライブラリの不足を過小評価していると思います。もちろん、だれかがMonoを移植できますが、それは間違いなく簡単な作業ではありません。

Monoを移植する必要はありません。 Androidには既にVMといくつかの基本的なAPIがあります。必要なのは、CIL-> DalvikコンバーターとAndroid AP​​Iの小さな.NETラッパー(およびいくつかの標準的な.NETクラスの基本的な実装)だけです。それでおしまい。

Update:.NETはすでにAndroidで動作します-Monodroid( http:// monodroid。 net )上記のとおり。

78
lubos hasko

Miguel de Icazaは、2010年2月17日に ブログ で、MonoDroidと呼ばれるAndroidのモノの開発を開始すると発表しました。

これは、iPhoneのMonoTouchに似ていますが、代わりにAndroidを使用します。

Android UIへのバインディングを提供するため、アプリはライブネイティブAndroidアプリのルックアンドフィールになります。これには、Android固有のUIを記述する必要があります。

ただし、再コンパイルする必要なく、既存の低レベルのライブラリを再利用できます。

23
trampster

これは、Androidおよび.netのサポートを検索するときのGoogleでの最初のリンクの1つであるため、ここに投稿するのに適しています。

Monoプロジェクトは、C#などのCIL言語を使用してAndroidアプリケーションを開発するSDKに取り組んでいます。マイナス面は、商用製品になることです。 モノドロイド

9
Tony

Android用に移植された.NETフレームワークであるMono for Androidがあります。また、MonoDroidがあります。これは、C#およびコア.NET APIを使用してAndroidベースのアプリケーションを開発するための開発スタックです。 MonoDroid Preview 1は数日前にリリースされました。

9
MonoDroid

MonoDroidはプレビューに使用できます。それがギャップを埋めるだろうと思います。ただし、MonoDroidは開発のコストのかかるオプションになる可能性があります。他の開発ツールの価格は、199ドルから4000ドルです(MonoTouch .. iPhone開発ツールの価格は、399ドルから3999ドルです)。これらのツールを使用してアプリを開発する場合、収益を得るには非常に強力なビジネスモデルが必要です。

7
GSree

これを確認してください xmlvm これは可能だと思います。これを確認することもできます video

6
Poorna

Mono の変更されたポートも完全に可能です。

4
akdom

.NETコンパクトフレームワークがSymbian OSに移植されました( http://www.redfivelabs.com/ )。 「クローズド」プラットフォームとしての.NETをこのプラットフォームに移植できる場合、Androidで実行できない理由はわかりません。

4
KevinD

.NETとMonoは、多くのツールとそれらの使用方法を知っている人々の優れたスキルベースを備えた素晴らしい環境です。

Monoは、iPhone上のObjective-Cに代わる唯一の選択肢であり、Androidに移植可能であるべきであり、Windows Mobileには.NETが既に存在するため、最適なモバイルクロスプラットフォーム開発環境になるチャンスがあると思います。

私は、Monotouchと同様にAndroid AP​​Iのラッパーを使用して、AndroidでのMonoの堅実な実装を期待しており、私はそれをする立場にないので、それを支払う準備ができています私自身。

4
Peter

SilverlightのAndroid実装が見られる可能性が高くなります。 Microsoftの担当者はそれが可能であることを確認しましたが、対iPhoneは問題があると言っていました。

ただし、.Netフレームワークのバージョンは可能です。そんなに気にする人が必要です:)

しかし、実際には、C#からJavaに移行することはそれほど大きな問題ではなく、2つのプラットフォーム(PCとG1)の大幅な違いを考慮すると、うまくいくとは思えません両方で実行したいアプリの1つのコードベース。

3
jcollum

私の意見では、CLIバイトコードをDalvikに変換し、コレクション、ファイルアクセスなどのコア機能のラッパークラスを書くことは技術的には可能ですが、それは大変な作業です。

しかし、Androidで実行された.NETデスクトップアプリケーションは、タッチデバイスではあまり使用できない古典的なWindowsライクなGUIを備えているため、異質に感じます。一方、.NETでAndroidライクなGUIをコーディングする場合は、ラッパーの別のセットが必要になります(ラッピングは上記のラッパーとは反対の方法であることに注意してください)。

.NETモバイルアプリケーションがAndroidでネイティブに感じるかどうかはわかりませんが、そうではないと思います。

別のアプローチに興味があるかもしれません。アプリケーションをJava言語で記述できます。その後、Microsoft J#を介して.NETにコンパイルし(廃止されたことがわかっていますが、ダウンロードして使用できます)、Androidで同じJavaコードを使用します。繰り返しになりますが、これはビジネスロジックとも呼ばれるコアクラスのためのものであり、2つのGUIを記述する必要があります。 J2MEにタグ付けすることもできますが、.NETを使用している場合はタグ付けできません。

3
Lena Schimmel

Androidの.NETは、私にとって本当の可能性のようです。 Microsoftが適切なAndroid向けSilverlightをリリースするというニュースがあります。MicrosoftがAppleを起動する利点を過小評価しないでください。より速く、より多くの機能を備え、より速い開発ライフサイクル、印象的なハードウェア、標準インストール可能なFlash&Silverlightであるスマートフォン。

MicrosoftはAndroidの改善に強い関心を持っていると同時に、Android上のSilverlight向けのアプリケーションが開発され、マルチタッチ、GPSなどを備えたWindows Phone 7 OSでも動作します。

2
Mark