Jawaban:
Pembaruan : Karena saya menulis jawaban ini dua tahun lalu, kami membuat Mono dijalankan di Android. Pekerjaan tersebut mencakup beberapa langkah: porting Mono ke Android, mengintegrasikannya dengan Visual Studio, membangun plugin untuk MonoDevelop di Mac dan Windows dan mengekspos Java Android APIs ke bahasa .NET. Ini sekarang tersedia di http://monodroid.net
Mono di Android didasarkan pada runtime Mono 2.10, dan default ke profil 4.0 dengan kompiler C # 4.0 dan menggunakan mesin pengumpulan sampah SGen baru Mono, serta sistem pengumpulan sampah terdistribusi baru kami yang menjalankan GC di seluruh Jawa dan Mono.
Tautan di bawah ini mencerminkan Mono di Android pada Januari 2009, saya menyimpannya untuk konteks sejarah
Mono sekarang bekerja di Android berkat karya Koushik Dutta dan Marc Crichton.
Anda dapat melihat videonya sedang diputar di sini: http://www.koushikdutta.com/2009/01/mono-on-android-with-gratuitous-shaky.html
Dan Anda bisa mendapatkan instruksi untuk membangun Mono sendiri di sini: http://www.koushikdutta.com/2009/01/building-mono-for-android.html
Anda bisa mendapatkan patokan membandingkan JIT Mono vs juru bahasa Dalvik di sini: http://www.koushikdutta.com/2009/01/dalvik-vs-mono.html
Dan tentu saja, Anda bisa mendapatkan gambar pra-konfigurasi dengan Mono di sini (buka bagian bawah pos untuk detail tentang penggunaannya): http://www.koushikdutta.com/2009/01/building-mono-for- android.html
Ya, itu akan mungkin dan itu tidak akan sulit. Semua yang diperlukan pada saat ini untuk memulai adalah semacam konverter yang akan mengubah MSIL menjadi bytecode Dalvik . Karena kedua format bersumber terbuka dan didokumentasikan dengan baik, tidak akan ada masalah dengannya.
Jadi, menulis aplikasi Android dalam C # atau VB.NET akan dimungkinkan, pertanyaannya adalah seberapa banyak perpustakaan standar .NET framework akan didukung. Tapi itu masalah lain.
Oscar Reyes menulis:
Saya cukup yakin jika Google memberikan minat pada .net, mereka akan mendesain sesuatu ketika Android berada di tahap pertama, tidak sekarang ketika mereka berada dalam tahap produksi. Maksud saya itu tidak mungkin, yang saya katakan adalah mereka tidak tertarik. Mungkin dalam mmm hhhh 10 thn.
Sebenarnya apa yang telah mereka rancang sangat kompatibel dengan Java dan .NET
Mereka tidak dapat melakukan semuanya sekaligus, tetapi jika Anda melihat ke Android SDK, ada alat yang disebut dx . Alat ini mengubah bytecode Java menjadi bytecode Dalvik, jadi dengan kata lain, Anda dapat menjalankan program yang ditulis dalam Java di Android tanpa usaha hari ini. Sekarang alat yang sama diperlukan untuk .NET.
Mempertimbangkan betapa miripnya. NET dan Java, itu benar-benar masalah waktu.
ddimitrov menulis:
Terjemahan .Net-> Java-> Dalvik dapat dilakukan bahkan sekarang ( http://dev.mainsoft.com/ ), tapi saya pikir Anda meremehkan kurangnya perpustakaan .Net. Tentu saja seseorang dapat mem-porting Mono, tetapi ini jelas bukan upaya sepele.
Tidak perlu porto Mono. Android sudah memiliki VM dan beberapa API dasar. Semua yang dibutuhkan adalah CIL-> Dalvik converter dan .NET wrapper kecil untuk Android API (dan mungkin beberapa implementasi dasar dari beberapa kelas .NET standar). Itu dia.
Pembaruan: .NET sudah berfungsi di Android - Anda memerlukan produk yang disebut Monodroid ( http://monodroid.net ) seperti yang dinyatakan di atas.
Miguel de Icaza mengumumkan di blog - nya pada 17 Februari 2010 bahwa mereka mulai bekerja pada mono untuk android yang akan disebut MonoDroid.
Ini akan mirip dengan MonoTouch di iphone tetapi untuk android sebagai gantinya.
Ini akan memberikan pengikatan ke UI Android, sehingga aplikasi akan terlihat dan terasa aplikasi Android asli hidup. Ini akan mengharuskan Anda untuk menulis UI khusus android.
Namun Anda akan dapat menggunakan kembali perpustakaan tingkat bawah yang ada tanpa perlu melakukan kompilasi ulang.
Karena ini adalah salah satu tautan pertama di Google ketika mencari dukungan Android dan .net, cukup pas untuk memposting ini di sini.
Proyek mono bekerja pada SDK untuk mengembangkan aplikasi Android menggunakan bahasa CIL seperti C #. Sisi buruknya adalah itu akan menjadi produk komersial. monodroid
MonoDroid tersedia untuk pratinjau. Saya pikir itu akan menjembatani kesenjangan. Namun, MonoDroid bisa menjadi pilihan yang mahal untuk pengembangan. Alat pengembangan mereka lainnya harganya antara $ 199 dan $ 4000 (The MonoTouch .. Alat pengembang iPhone ... dihargai antara $ 399 dan $ 3999). Jika orang mengembangkan aplikasi dengan alat ini, mereka membutuhkan model bisnis yang sangat kuat untuk melihat beberapa pengembalian.
Pelabuhan Mono yang dimodifikasi juga sepenuhnya memungkinkan.
Framework .NET compact telah diangkut ke Symbian OS ( http://www.redfivelabs.com/ ). Jika .NET sebagai platform 'tertutup' dapat porting ke platform ini, saya tidak dapat melihat alasan mengapa itu tidak dapat dilakukan untuk Android.
.NET dan Mono adalah lingkungan yang hebat, dengan banyak alat dan dan basis keterampilan yang sangat baik dari orang-orang yang tahu cara menggunakannya.
Saya pikir Mono memiliki kesempatan untuk menjadi lingkungan pengembangan lintas platform mobile pilihan, mengingat mereka adalah satu-satunya alternatif untuk Objective-C pada iPhone dan harus portabel untuk Android, dan .NET sudah ada di Windows Mobile.
Saya benar-benar berharap untuk melihat implementasi yang solid dari Mono di Android, dengan pembungkus untuk API Android seperti dengan Monotouch, dan akan siap untuk membayarnya karena saya tidak dalam posisi untuk melakukannya sendiri.
Anda lebih cenderung melihat implementasi Android dari Silverlight. Microsoft rep telah mengkonfirmasi bahwa itu mungkin, vs iPhone di mana perwakilan mengatakan itu bermasalah.
Tetapi versi kerangka kerja Net adalah mungkin. Hanya butuh seseorang yang begitu peduli :)
Tapi sungguh, pindah dari C # ke Java bukan masalah besar dan mempertimbangkan perbedaan drastis antara kedua platform (PC vs G1), sepertinya tidak mungkin Anda bisa bertahan dengan satu basis kode untuk aplikasi apa pun yang Anda ingin menjalankan keduanya.
Menurut pendapat saya, secara teknis dimungkinkan untuk mengkonversi Bytecode CLI ke Dalvik, dan menulis kelas wrapper untuk beberapa fitur inti seperti Koleksi, akses File, dll., Bahkan itu akan menjadi kerja keras.
Tetapi aplikasi .NET desktop yang dijalankan pada android akan terasa asing, karena akan memiliki GUI Windows-Like klasik yang tidak dapat digunakan pada perangkat sentuh. Jika, di sisi lain, Anda membuat kode GUI seperti Android di .NET, Anda akan membutuhkan satu set pembungkus (perhatikan bahwa pembungkus hanyalah sebaliknya terhadap pembungkus yang disebutkan di atas).
Saya tidak yakin apakah aplikasi mobile .NET akan terasa asli di Android, tapi saya rasa tidak.
Mungkin Anda tertarik pada pendekatan lain: Anda dapat menulis aplikasi Anda dalam bahasa Java. Anda kemudian dapat mengkompilasinya ke .NET melalui Microsoft J # (saya tahu itu dihentikan tetapi Anda masih dapat mengunduh dan menggunakannya) dan menggunakan kode Java yang sama di android. Sekali lagi, itu untuk kelas inti alias logika bisnis dan lagi Anda harus menulis GUI belakang. Mungkin Anda juga dapat menggunakan J2ME, yang tidak akan dapat Anda lakukan jika menggunakan .NET.
NET untuk Android. Tampaknya seperti kemungkinan nyata bagi saya. Ada berita bahwa Microsoft akan merilis Silverlight yang tepat untuk Android - Jangan pernah meremehkan keuntungan bagi Microsoft untuk memasukkan boot ke Apple. Sebuah smartphone yang lebih cepat, lebih kaya fitur, siklus hidup pengembangan lebih cepat, perangkat keras yang mengesankan, Flash & Silverlight sebagai standar yang dapat dipasang.
Microsoft memiliki kepentingan dalam meningkatkan Android, dan pada saat yang sama, aplikasi akan digunakan untuk Silverlight di Android juga akan bekerja pada OS Windows Phone 7 dengan multi-touch, GPS, dll., Dll.