Google Androidは.NETをサポートしますか? [閉まっている]
質問
GoogleのAndroid OSを搭載したG1が(まもなく)利用可能になりましたが、Androidプラットフォームは.Netをサポートしますか?
解決
更新:2年前にこの回答を書いたので、Monoを製品化してAndroidで実行できるようにしました。この作業には、MonoをAndroidに移植し、Visual Studioと統合し、MacおよびWindowsでMonoDevelopのプラグインを構築し、Java Android APIを.NET言語に公開するといういくつかの手順が含まれていました。これは http://monodroid.net
で利用可能になりました。- はじめに: http://monodroid.net/Welcome
- ドキュメント: http://monodroid.net/Documentation
- チュートリアル: http://monodroid.net/Tutorials
Android上のMonoは、Mono 2.10ランタイムに基づいており、C#4.0コンパイラでデフォルトの4.0プロファイルを使用し、Monoの新しいSGenガベージコレクションエンジンと、JavaとMonoでGCを実行する新しい分散ガベージコレクションシステムを使用します。
以下のリンクは2009年1月現在のAndroidのMonoを反映しています。私は歴史的な背景のためにそれらを保持しています
Koushik DuttaとMarc Crichtonのおかげで、Monoは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
他のヒント
はい、それは可能であり、それほど難しくありません。この時点で最初に必要なのは、MSILを Dalvikバイトコードに変換するコンバータです。 。どちらの形式もオープンソースであり、十分に文書化されているため、問題はありません。
したがって、C#またはVB.NETでAndroidアプリケーションを作成することが可能になります。質問は、.NETフレームワーク標準ライブラリのどれだけがサポートされるかです。しかし、それは別の問題です。
オスカー・レイズは次のように書いた:
グーグルが何かを手に入れたら .netへの関心、彼らは設計したでしょう Androidが 最初の段階であり、現在ではありません 生産段階。私はそうではありません 不可能です、私が言っているのは 彼らは興味がありません。たぶんmmmで hhhh 10歳。
実際に彼らが既に設計したものは、Javaおよび.NETと非常に互換性があります
一度にすべてを行うことはできませんが、Android SDKを見ると、 dx というツールがあります。このツールは、JavaバイトコードをDalvikバイトコードに変換します。つまり、AndroidでJavaで書かれたプログラムを今すぐ手間をかけずに実行できます。 .NETにも同じツールが必要になりました。
.NETとJavaがどれほど似ているかを考えると、本当に時間の問題です。
ddimitrovの書き込み:
.Net-> Java-> Dalvik翻訳は 今でもできる ( http://dev.mainsoft.com/ )、しかし私は あなたは不足を過小評価すると思います .Netライブラリ。もちろん誰かができる モノラルを移植しますが、それは間違いなく 自明でない努力。
Monoを移植する必要はありません。 AndroidにはすでにVMといくつかの基本的なAPIがあります。必要なのは、CIL-> DalvikコンバーターとAndroid API用の小さな.NETラッパー(および、標準的な.NETクラスの基本的な実装)だけです。それだけです。
更新: .NETはすでにAndroidで動作します-Monodroid( http:// monodroidという製品が必要です。 .net )上記のとおり。
ミゲル・デ・イカザのブログで17日に発表されました2010年2月、MonoDroidと呼ばれるAndroid向けのモノの開発を開始しました。
これは、iPhoneのMonoTouchに似ていますが、Androidの代わりになります。
Android UIへのバインディングを提供するので、アプリはライブネイティブAndroidアプリのルックアンドフィールになります。これには、Android固有のUIを記述する必要があります。
ただし、再コンパイルする必要なく、既存の下位レベルのライブラリを再利用できます。
Mono for Android、Android用に移植された.NETフレームワークがあります。また、MonoDroidがあります。これは、C#およびコア.NET APIを使用してAndroidベースのアプリケーションを開発するための開発スタックです。 MonoDroid Preview 1は数日前にリリースされました。
これは、GoogleでAndroidおよび.netのサポートを検索する際の最初のリンクの1つであるため、ここに投稿するのに適しています。
monoプロジェクトは、C#などのCIL言語を使用してAndroidアプリケーションを開発するSDKに取り組んでいます。マイナス面は、商用製品になることです。 monodroid
MonoDroidはプレビューに使用できます。それがギャップを埋めるだろうと思います。ただし、MonoDroidは開発のコストのかかるオプションになる可能性があります。他の開発ツールの価格は、199ドルから4000ドルです(MonoTouch .. iPhone開発ツールの価格は、399ドルから3999ドルです)。これらのツールを使用してアプリを開発する場合、収益を得るには非常に強力なビジネスモデルが必要です。
Mono の変更されたポートも完全に可能です。
.NETコンパクトフレームワークがSymbian OSに移植されました( http://www.redfivelabs.com/ )。 「閉じた」プラットフォームとしての.NETをこのプラットフォームに移植できる場合、Androidで実行できない理由はわかりません。
.NETとMonoは、多くのツールとそれらの使用方法を知っている人々の優れたスキルベースを備えた素晴らしい環境です。
Monoは、iPhone上のObjective-Cに代わる唯一の選択肢であり、Androidに移植可能であるべきであり、.NETは既にWindows Mobile上にあるため、選択したモバイルクロスプラットフォーム開発環境になる機会があると思います。
MonotouchのようにAndroid APIのラッパーを備えた、AndroidでのMonoの強固な実装を期待しています。私は自分でそれをする立場にないので、それを支払う用意ができています。
SilverlightのAndroid実装を見る可能性が高くなります。 Microsoftの担当者はそれが可能であることを確認しましたが、対iPhoneは問題があると言っていました。
しかし、.Netフレームワークのバージョンは可能です。そんなに気にする人が必要なだけです:)
しかし、実際には、C#からJavaへの移行はそれほど大したことではなく、2つのプラットフォーム(PCとG1)の劇的な違いを考慮すると、両方で実行したいアプリ。
私の意見では、CLIバイトコードをDalvikに変換し、コレクション、ファイルアクセスなどのコア機能のラッパークラスを書くことは技術的に可能ですが、それは大変な作業です。
しかし、Android上で実行された.NETデスクトップアプリケーションは、タッチデバイスではあまり使用できない古典的なWindowsライクなGUIを備えているため、異質に感じます。一方、.NETでAndroidに似たGUIをコーディングする場合は、別のラッパーセットが必要になります(ラッピングは上記のラッパーとは逆になっていることに注意してください)。
.NETモバイルアプリケーションがAndroidでネイティブに感じるかどうかはわかりませんが、そうではないと思います。
別のアプローチに興味があるかもしれません:Java言語でアプリケーションを書くことができます。その後、Microsoft J#を介して.NETにコンパイルし(廃止されていることは知っていますが、ダウンロードして使用できます)、Androidで同じJavaコードを使用します。繰り返しになりますが、これはビジネスロジックとも呼ばれるコアクラスのためのものであり、2つのGUIを記述する必要があります。 J2MEにタグ付けすることもできますが、.NETを使用している場合はタグ付けできません。
.NET for Androidは、私にとって本当の可能性のようです。 Microsoftが適切なAndroid向けSilverlightをリリースするというニュースがあります。MicrosoftがAppleを起動する利点を過小評価しないでください。より速く、より多くの機能を備え、より速い開発ライフサイクル、印象的なハードウェア、フラッシュとアンプを備えたスマートフォン標準インストール可能としてのSilverlight。
MicrosoftはAndroidの改善に強い関心を持っていると同時に、Android上のSilverlight向けに開発されたアプリケーションは、マルチタッチ、GPSなどを備えたWindows Phone 7 OSでも動作します。