Yanıtlar:
Güncelleme : Bu cevabı iki yıl önce yazdığımdan beri, Mono'yu Android'de çalıştırmak için ürettik. Çalışma birkaç adım içeriyordu: Mono'yu Android'e taşımak, Visual Studio ile entegre etmek, Mac ve Windows'ta MonoDevelop için eklentiler oluşturmak ve Java Android API'lerini .NET dillerine göstermek. Bu artık http://monodroid.net adresinde mevcuttur.
Android'de Mono, Mono 2.10 çalışma zamanını temel alır ve varsayılan olarak C # 4.0 derleyicisiyle 4.0 profilini kullanır ve Mono'nun yeni SGen çöp toplama motorunun yanı sıra Java ve Mono'da GC gerçekleştiren yeni dağıtılmış çöp toplama sistemimizi kullanır.
Aşağıdaki bağlantılar Ocak 2009 itibariyle Android'de Mono'yu yansıtıyor, onları tarihsel bağlam için sakladım
Mono artık Koushik Dutta ve Marc Crichton'un çalışmaları sayesinde Android'de çalışıyor.
Burada çalışan bir video görebilirsiniz: http://www.koushikdutta.com/2009/01/mono-on-android-with-gratuitous-shaky.html
Mono'yu kendiniz inşa etmek için talimatları buradan edinebilirsiniz: http://www.koushikdutta.com/2009/01/building-mono-for-android.html
Mono'nun JIT ve Dalvik yorumlayıcısını karşılaştıran bir karşılaştırma ölçütü burada bulabilirsiniz: http://www.koushikdutta.com/2009/01/dalvik-vs-mono.html
Ve elbette, burada Mono ile önceden yapılandırılmış bir görüntü elde edebilirsiniz (bununla ilgili ayrıntılar için yayının altına gidin): http://www.koushikdutta.com/2009/01/building-mono-for- android.html
Evet, mümkün olacak ve o kadar da zor olmayacak. Bu noktada başlamak için gereken tek şey, MSIL'i Dalvik bayt koduna dönüştürecek bir tür dönüştürücü . Her iki biçim de açık kaynaklı ve iyi belgelendirilmiş olduğundan, herhangi bir sorun olmayacaktır.
Bu nedenle, C # veya VB.NET'te Android uygulamaları yazmak mümkün olacak, soru ne kadar .NET framework standart kitaplıklarının destekleneceğidir. Ama bu başka bir mesele.
Oscar Reyes şunu yazdı:
Google elinin .net'e HERHANGİ bir ilgisi varsa, Android ilk aşamalarında iken, şimdi üretim aşamalarındayken bir şeyler tasarlayacaklarından eminim. Bu mümkün değil demek istemiyorum, söylediklerim ilgilenmiyorlar. Belki mmm hhhh 10 yıl.
Aslında zaten tasarladıkları şey Java ve .NET ile çok uyumlu
Her şeyi aynı anda yapamazlar, ancak Android SDK'ya bakarsanız, dx adlı bir araç var . Bu araç Java bayt kodunu Dalvik bayt koduna dönüştürür, yani başka bir deyişle, bugün Android'de Java ile yazılmış programları bugün hiç çaba harcamadan çalıştırabilirsiniz. Şimdi aynı araç .NET için gereklidir.
Ne kadar benzer .NET ve Java göz önüne alındığında, bu gerçekten bir zaman meselesi.
ddimitrov şunu yazdı:
.Net-> Java-> Dalvik çeviri şimdi bile yapılabilir ( http://dev.mainsoft.com/ ), ancak bence .Net kütüphanelerinin eksikliğini hafife alırsınız. Tabii ki birisi Mono'yu canlandırabilir, ama kesinlikle önemsiz bir çaba.
Mono limanına gerek yok. Android'in zaten VM'si ve bazı temel API'ları var. Gereken tek şey Android API için CIL-> Dalvik dönüştürücü ve küçük .NET sarmalayıcı (ve bazı standart .NET sınıflarının bazı temel uygulamaları). Bu kadar.
Güncelleme: .NET zaten Android'de çalışıyor - yukarıda belirtildiği gibi Monodroid ( http://monodroid.net ) adlı ürüne ihtiyacınız olacak .
Onun yaptığı duyuruda Miguel de Icaza en blogunda onlar MonoDroid çağrılacak olan android için mono üzerinde çalışmaya başlamadan olduğunu Feb 2010 17th.
Bu, iphone'daki MonoTouch'a benzer ancak bunun yerine android için.
Android UI'ye bağlanma sağlayacak, böylece uygulamalar canlı yerel android uygulamalarına bakacak ve hissedecek. Bu, android'e özel bir kullanıcı arayüzü yazmanızı gerektirir.
Ancak, yeniden derlemeye gerek kalmadan mevcut alt düzey kitaplıklarınızı yeniden kullanabilirsiniz.
Bu, Android ve .net desteğini ararken Google'daki ilk bağlantılardan biri olduğundan, bunu yalnızca buraya göndermek için uygundur.
Mono proje, C # gibi CIL dillerini kullanarak Android uygulamaları geliştirmek için bir SDK üzerinde çalışıyor. Aşağı tarafı ticari bir ürün olacak. monodroid
MonoDroid önizleme için hazırdır. Bence bu boşluğu dolduracak. Bununla birlikte, MonoDroid geliştirme için pahalı bir seçenek olabilir. Diğer geliştirme araçlarının maliyeti 199 ila 4000 $ arasındadır (MonoTouch .. iPhone dev aracı ... 399 ila 3999 $ arasında fiyatlandırılır). İnsanlar bu araçlarla uygulama geliştirirse, bazı getirileri görmek için çok güçlü bir iş modeline ihtiyaç duyarlar.
Modifiye edilmiş bir Mono limanı da tamamen mümkündür.
.NET kompakt çerçevesi Symbian işletim sistemine taşındı ( http://www.redfivelabs.com/ ). 'Kapalı' bir platform olarak .NET bu platforma taşınabiliyorsa, Android için neden yapılamayacağını hiçbir şekilde göremiyorum.
.NET ve Mono, birçok araç ve bunları nasıl kullanacağını bilen insanların mükemmel beceri tabanına sahip harika ortamlardır.
Bence Mono, mobil platformlar arası geliştirme ortamı olma fırsatına sahip, iPhone'daki Objective-C'ye tek alternatif olduklarını ve Android'e taşınabilir olmaları gerektiğini görüyor ve .NET zaten Windows Mobile'da.
Monotouch'ta olduğu gibi Android API'sı için sarmalayıcılarla Android'de Mono'nun sağlam bir uygulamasını görmeyi umuyorum ve bunu kendim yapacak bir pozisyonda olmadığım için ödeme yapmaya hazır olurum.
Silverlight'ın Android uygulamasını görmeniz daha olasıdır. Microsoft temsilcisi, temsilcinin sorunlu olduğunu söylediği iPhone'a kıyasla bunun mümkün olduğunu doğruladı.
Ancak .Net çerçevesinin bir sürümü mümkündür. Sadece bu kadar önemseyen birine ihtiyacım var :)
Ama gerçekten, C #'dan Java'ya geçmek o kadar da büyük bir şey değil ve iki platform arasındaki (PC'ye karşı G1) büyük farklılıkları göz önünde bulundurarak, ikisinde de koşmak istedin.
Bence CLI Bytecode'u Dalvik'e dönüştürmek ve Koleksiyonlar, Dosya erişimi, vb.Gibi bazı temel özellikler için sarıcı sınıflar yazmak teknik olarak mümkün olurdu.
Ancak Android'de çalışan bir .NET masaüstü uygulaması, bir dokunmatik cihazda çok kullanışlı olmayan klasik bir Windows Benzeri GUI'ye sahip olacağı için yabancı hissedecekti. Öte yandan, .NET'te android benzeri bir GUI'yi kodlayacak olsaydınız, başka bir sarmalayıcı setine ihtiyacınız olurdu (sarmalamanın, yukarıda belirtilen sarmalayıcıların aksine tam tersi olduğuna dikkat edin).
Bir .NET mobil uygulamasının android'de yerli olup olmayacağından emin değilim, ama sanmıyorum.
Belki başka bir yaklaşıma ilgi duyuyorsunuz: Başvurunuzu Java dilinde yazabilirsiniz. Daha sonra Microsoft J # ile .NET'e derleyebilirsiniz (kesildiğini biliyorum, ancak yine de indirip kullanabilirsiniz) ve aynı Java kodunu android'de kullanın. Yine, bu temel sınıflar, yani iş mantığı için ve yine yedek GUI'ler yazmak zorunda kalacaksınız. Belki .NET kullanırsanız yapamayacağınız J2ME'yi de etiketleyebilirsiniz.
Android için .NET benim için gerçek bir olasılık gibi görünüyor. Microsoft'un Android için uygun Silverlight yayınlayacağına dair haberler var - Önyüklemeyi Apple'a koymak için Microsoft'un avantajlarını asla küçümsemeyin. Daha hızlı, daha zengin özelliklere sahip, daha hızlı geliştirme yaşam döngüsü, etkileyici donanım, standart olarak yüklenebilir Flash ve Silverlight özellikli bir akıllı telefon.
Microsoft, Android'i geliştirmeye büyük bir ilgi duyuyor ve aynı zamanda Android'de Silverlight için uygulamalar geliştirilecek, çoklu dokunma, GPS vb.Ile Windows Phone 7 işletim sisteminde de çalışacak.