Google Androidは.NETをサポートしますか?[閉まっている]


253

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


24
今それは何かでしょう!
カラヌス09

さらに重要なことに、Microsoftは.NETをWindows以外のプラットフォームに移植することはありますか?
ケリー

回答:


325

更新:2年前にこの回答を書いてから、Androidで実行できるようにMonoを製品化しました。この作業には、MonoからAndroidへの移植、Visual Studioとの統合、MacおよびWindowsでのMonoDevelop用のプラグインの構築、Java Android APIの.NET言語への公開など、いくつかのステップが含まれていました。これはhttp://monodroid.netで入手できます

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


1
まあ、私は言った、MSでもグーグルでもない、おそらくミゲルとここにいる(まあ、それはあなたではなかったと思うが、どういうわけか近い)素晴らしいリンクミゲル。Googleがこれをサポートすると思いますか?彼らは彼らのフードの下でポートを取っているのですか?:)できれば、自分の回答を反対投票します:)
OscarRyz

6
うーん、それは同じハードウェアで動作するdebianで動作する「のみ」です。私の意見では「android」に完全に移植されていませんが、完全に移植することは大きな問題ではないようです。
sandos

1
これをインストールしやすくするためにGoogleと話し合ったことがありますか?多分それを市場からの無料ダウンロードとして置く?.Netアプリを市場に出すことを許可しますか?
csauve

1
Visual Studio Expressでは機能しない...
Rockcoder

1
驚くばかり。更新された答えを見つけてうれしい。+1ミゲル
Steven Evers

78

はい、それは可能であり、それほど難しくはありません。この時点で最初に必要なのは、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 API用の小さな.NETラッパー(そしておそらくいくつかの標準.NETクラスのいくつかの基本的な実装)です。それでおしまい。

更新: .NETはすでにAndroidで動作します- 上記のMonodroid(http://monodroid.net)という製品が必要です。


はい、私たちは決して知りません...多分、おそらく... 10年ではなく4年にしてください...:P
OscarRyz 08年

16
同意しません。あなたが言うことはすべて技術的に可能ですが、必要な作業を桁違いに過小評価していると思います。クロスコンパイルされたhelloワードのような概念実証を数時間で簡単にまとめることができます。しかし、すべてのクラスのラッパーをセットアップすることは多くの作業です。
Lena Schimmel、

4
@ブライアン、あなたが投稿したビデオはAndroidではなくiPhoneに関するものです。
lubos hasko

14
まあ、GoogleのJavaアフィニティを考えると、これで.NETを採用しなかったのはそれほど驚くことではありません。はい、Monoを使用することは可能かもしれませんが、GoogleがLinuxの使用を避けるのと同様の熱意のある.NETの使用をGoogleが避けることはほぼ間違いないと確信しています。
Joey、

2
「中小企業は、いくつかの大企業がそれに重きを置かない限り、将来に賭けることはないだろう」と語った。ノベルはすでにそれを後援しています。マイクロソフトは、コーデックとテストスイートの両方を提供することで、派生プロジェクトであるMoonlightをサポートしています。
2009

23

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

これは、iPhoneのMonoTouchに似ていますが、Android向けです。

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

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


Monodroidベータ版は、ベータプログラムに早期に登録したユーザーが利用できるようになりました。
Damian、

はい、それは現在私がサインアップしたプライベートベータ版ですが、これまでのところ招待状を逃してしまいました:(
trampster

9

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


9

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

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


7

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


6

これをチェックしてくださいxmlvm私はこれが可能だと思います。このビデオをチェックすることもできます


私はその答えが好きです。それは可能であることを示していますが、そのビデオを見ると、解決する必要がある問題の数と、その背後にある作業の量も示されています。
Lena Schimmel、

4

Monoの修正された移植も完全に可能です。


@akdom、デスクトップ/サーバーOSから組み込みへのソフトウェアの移植の経験はありますか?私はモバイル開発の経験(JavaとBrew)とIMHOを持っていますが、あなたはその努力を非常に過小評価しています。それは可能かもしれませんが、今後3年間は間違いなくそうです。
ddimitrov 2008年

@ddmitrov:問題は、Androidプラットフォームが.NETをサポートするかどうかであり、今後3年以内にサポートされるかどうかではありません。Monoは.NETのオープンソース実装であるため、ゼロから開始するよりも、AndroidバージョンのMonoを構築する方が簡単だと私は考えていました。
akdom

2
結局3年はかかりませんでした。そして、Xamarinのスタッフは、6か月足らずで再びそれを実行することを計画しています。
ジャスティン

4

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


コンパクトなフレームワークを使用しましたか?私は毎日仕事をしていますが、MonoDroidの形式のモノポートはより良いものになります。
trampster

4

.NETとMonoは優れた環境であり、多くのツールと、それらの使用方法を知っている人々の優れたスキル基盤があります。

Monoは、iPhoneのObjective-Cに対する唯一の代替手段であり、Androidに移植可能であり、.NETはすでにWindows Mobileに搭載されているため、モバイルクロスプラットフォーム開発環境になる機会があると思います。

私は、Monotouchと同様にAndroid APIのラッパーを使用して、AndroidでMonoの確実な実装が見られることを本当に望んでおり、私は自分で実行する立場にないので、それを支払う用意があります。


3

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

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

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


3

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

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

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

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


勝利フォームが移植されることを想定しているわけではありません。これは非常に悪い考えです。MonoDroidはAndroid UIウィジェットへのバインディングを持つため、ネイティブのAndroidアプリとまったく同じように見え、ユーザーはそれを知る必要さえありませんはMonoDroidで実行されています
trampster

また、DalvikへのCLIバイトコードはお勧めできません。モノランタイムとVMはすでにARMで動作しているため、Androidで実行することは問題ありません。そして、モノとして見るとJITがコンパイルされ、Dalvikが解釈されます。Monoランタイムで実行すると、はるかに高速になります。
trampster

2

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

マイクロソフトはAndroidの改善に既得の関心を持っています。同時に、Android上のSilverlightのアプリケーションは開発され、マルチタッチやGPSなどを備えたWindows Phone 7 OSでも動作します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.