Antworten:
Update : Seit ich diese Antwort vor zwei Jahren geschrieben habe, haben wir Mono für Android entwickelt. Die Arbeit umfasste einige Schritte: Portieren von Mono auf Android, Integrieren in Visual Studio, Erstellen von Plugins für MonoDevelop auf Mac und Windows und Bereitstellen der Java Android-APIs für .NET-Sprachen. Dies ist jetzt unter http://monodroid.net verfügbar
Mono auf Android basiert auf der Laufzeit von Mono 2.10 und verwendet standardmäßig das 4.0-Profil mit dem C # 4.0-Compiler. Es verwendet die neue SGen-Garbage-Collection-Engine von Mono sowie unser neues verteiltes Garbage-Collection-System, das GC für Java und Mono ausführt.
Die folgenden Links spiegeln Mono auf Android ab Januar 2009 wider. Ich habe sie für den historischen Kontext aufbewahrt
Dank der Arbeit von Koushik Dutta und Marc Crichton funktioniert Mono jetzt auf Android.
Sie können ein Video davon hier sehen: http://www.koushikdutta.com/2009/01/mono-on-android-with-gratuitous-shaky.html
Die Anleitung zum Erstellen von Mono erhalten Sie hier: http://www.koushikdutta.com/2009/01/building-mono-for-android.html
Einen Benchmark zum Vergleich von Monos JIT mit Dalviks Interpreter finden Sie hier: http://www.koushikdutta.com/2009/01/dalvik-vs-mono.html
Und natürlich können Sie hier ein vorkonfiguriertes Image mit Mono erhalten (Einzelheiten zur Verwendung finden Sie am Ende des Beitrags): http://www.koushikdutta.com/2009/01/building-mono-for- android.html
Ja, es wird möglich sein und es wird nicht so schwierig sein. Alles, was an dieser Stelle benötigt wird, ist eine Art Konverter, der MSIL in Dalvik-Bytecode umwandelt . Da beide Formate Open Source sind und gut dokumentiert sind, gibt es kein Problem damit.
Das Schreiben von Android-Anwendungen in C # oder VB.NET ist also möglich. Die Frage ist, wie viele .NET Framework-Standardbibliotheken unterstützt werden. Aber das ist ein anderes Problem.
Oscar Reyes schrieb:
Ich bin mir ziemlich sicher, wenn Google Hand irgendein Interesse an .net hat, hätten sie etwas entworfen, während Android in den ersten Phasen war, nicht jetzt, wenn sie sich in der Produktionsphase befinden. Ich meine nicht, dass es nicht möglich ist. Ich sage, sie sind nicht interessiert. Vielleicht in mmm hhhh 10 Jahre.
Tatsächlich ist das, was sie bereits entworfen haben, sehr kompatibel mit Java und .NET
Sie können nicht alles auf einmal tun, aber wenn Sie sich das Android SDK ansehen, gibt es ein Tool namens dx . Dieses Tool konvertiert Java-Bytecode in Dalvik-Bytecode. Mit anderen Worten, Sie können heute ohne Aufwand in Java geschriebene Programme auf Android ausführen. Jetzt wird das gleiche Tool für .NET benötigt.
Angesichts der Ähnlichkeit von .NET und Java ist es wirklich eine Frage der Zeit.
ddimitrov schrieb:
Die .Net-> Java-> Dalvik-Übersetzung kann bereits jetzt durchgeführt werden ( http://dev.mainsoft.com/ ), aber ich denke, Sie unterschätzen den Mangel an .Net-Bibliotheken. Natürlich kann jemand Mono portieren, aber es ist definitiv eine nicht triviale Anstrengung.
Mono muss nicht portiert werden. Android hat bereits VM und einige grundlegende API. Alles, was benötigt wird, ist CIL-> Dalvik-Konverter und winziger .NET-Wrapper für die Android-API (und möglicherweise eine grundlegende Implementierung einiger Standard-.NET-Klassen). Das ist es.
Update: .NET funktioniert bereits unter Android - Sie benötigen das Produkt Monodroid ( http://monodroid.net ) wie oben angegeben.
Miguel de Icaza hat am 17. Februar 2010 in seinem Blog angekündigt, dass sie mit der Arbeit an Mono für Android beginnen, das MonoDroid heißen wird.
Dies wird ähnlich wie MonoTouch auf dem iPhone sein, aber stattdessen für Android.
Es bietet eine Bindung an die Android-Benutzeroberfläche, sodass Apps native Android-Apps live aussehen und sich anfühlen. Dazu müssen Sie eine androidspezifische Benutzeroberfläche schreiben.
Sie können jedoch vorhandene Bibliotheken niedrigerer Ebenen wiederverwenden, ohne sie neu kompilieren zu müssen.
Da dies einer der ersten Links bei Google ist, wenn nach Android- und .net-Unterstützung gesucht wird, ist es nur angebracht, dies hier zu posten.
Das Mono-Projekt arbeitet an einem SDK, um Android-Anwendungen mit CIL-Sprachen wie C # zu entwickeln. Der Nachteil ist, dass es sich um ein kommerzielles Produkt handelt. Monodroid
MonoDroid ist für die Vorschau verfügbar. Ich denke, das wird die Lücke schließen. MonoDroid könnte jedoch eine kostspielige Option für die Entwicklung sein. Die anderen Entwicklungstools kosten zwischen 199 und 4000 US-Dollar (das MonoTouch .. iPhone-Entwicklertool ... kostet zwischen 399 und 3999 US-Dollar). Wenn Benutzer Apps mit diesen Tools entwickeln, benötigen sie ein sehr starkes Geschäftsmodell, um einige Renditen zu erzielen.
Check this out xmlvm Ich denke, das ist möglich. Möglicherweise kann auch dieses Video überprüft werden
Ein modifizierter Hafen von Mono ist ebenfalls durchaus möglich.
Das .NET Compact Framework wurde auf Symbian OS ( http://www.redfivelabs.com/ ) portiert . Wenn .NET als "geschlossene" Plattform auf diese Plattform portiert werden kann, kann ich keinen Grund erkennen, warum dies für Android nicht möglich ist.
.NET und Mono sind großartige Umgebungen mit vielen Tools und einer hervorragenden Kompetenzbasis von Menschen, die wissen, wie man sie verwendet.
Ich denke, Mono hat die Möglichkeit, die mobile plattformübergreifende Entwicklungsumgebung der Wahl zu sein, da sie die einzige Alternative zu Objective-C auf dem iPhone darstellen und auf Android portierbar sein sollten und .NET bereits auf Windows Mobile läuft.
Ich hoffe wirklich auf eine solide Implementierung von Mono auf Android mit Wrappern für die Android-API wie bei Monotouch und wäre bereit, dafür zu zahlen, da ich nicht in der Lage bin, dies selbst zu tun.
Es ist wahrscheinlicher, dass Sie eine Android-Implementierung von Silverlight sehen. Microsoft-Mitarbeiter haben bestätigt, dass dies möglich ist, im Vergleich zum iPhone, auf dem der Mitarbeiter angegeben hat, dass dies problematisch ist.
Eine Version des .Net-Frameworks ist jedoch möglich. Brauche nur jemanden, der sich so sehr darum kümmert :)
Aber wirklich, der Wechsel von C # zu Java ist keine große Sache, und angesichts der drastischen Unterschiede zwischen den beiden Plattformen (PC vs. G1) ist es unwahrscheinlich, dass Sie mit einer Codebasis für eine App auskommen, die dies tut du wolltest auf beiden laufen.
Meiner Meinung nach wäre es technisch möglich, den CLI-Bytecode in Dalvik zu konvertieren und Wrapper-Klassen für einige Kernfunktionen wie Sammlungen, Dateizugriff usw. zu schreiben, selbst wenn dies harte Arbeit wäre.
Aber eine .NET-Desktopanwendung, die auf Android ausgeführt wird, würde sich fremd anfühlen, da sie eine klassische Windows-ähnliche Benutzeroberfläche hätte, die auf einem Touch-Gerät nicht sehr benutzerfreundlich ist. Wenn Sie andererseits eine Android-ähnliche Benutzeroberfläche in .NET codieren würden, würden Sie einen anderen Satz von Wrappern benötigen (beachten Sie, dass das Umschließen im Gegensatz zu den oben genannten Wrappern genau umgekehrt ist).
Ich bin mir nicht sicher, ob sich eine mobile .NET-Anwendung auf Android nativ anfühlt, aber ich würde vermuten, dass dies nicht der Fall ist.
Vielleicht interessieren Sie sich für einen anderen Ansatz: Sie können Ihre Anwendung in der Java-Sprache schreiben. Sie können es dann über Microsoft J # in .NET kompilieren (ich weiß, dass es nicht mehr angeboten wird, aber Sie können es trotzdem herunterladen und verwenden) und denselben Java-Code auf Android verwenden. Wieder ist das für die Kernklassen, auch bekannt als Geschäftslogik, und wieder müssten Sie zwei GUIs schreiben. Möglicherweise können Sie auch J2ME testen, was Sie mit .NET nicht tun können.
.NET für Android scheint mir eine echte Möglichkeit zu sein. Es gibt Neuigkeiten, dass Microsoft Silverlight für Android veröffentlichen wird. Unterschätzen Sie niemals die Vorteile, die Microsoft für den Start von Apple bietet. Ein Smartphone, das schneller und funktionsreicher ist, einen schnelleren Entwicklungslebenszyklus, beeindruckende Hardware, Flash & Silverlight als Standardinstallation.
Microsoft hat ein begründetes Interesse an der Verbesserung von Android. Gleichzeitig werden Anwendungen für Silverlight unter Android entwickelt, die auch unter Windows Phone 7 mit Multitouch, GPS usw. usw. funktionieren.