2011-05-10 86 views
10

我很熟悉C#,只是喜歡Visual Studio作爲IDE。 :)然而,現在我想開始開發Android ...Android開發中的MonoDroid VS Java?

我發現了關於MonoDroid,並想問它是否有任何缺點,它會使Java更優選,或者我應該卸載Eclipse並直接潛入MonoDroid的?

如果我理解正確,MonoDroid部署/編譯原生android應用程序,並且不需要任何額外的類似.net的框架或任何東西?

我能用MonoDroid做什麼有什麼重大的限制嗎?例如,讓應用程序在後臺運行或使用一些外部.net庫進行圖像編輯等?

回答

5

在davlick下運行的包裝有很多,事實上有很多,有很多MonoDroid和Android之間的水平關係;

enter image description here

當使用同一種語言OS開發商成爲一個大問題沒有?有很多C++程序員想知道如何使用BSD或SVR5以及許多希望知道在Windows ++上做什麼的C程序員......

+2

好的......但通俗地說,所以MonoDroid rulz或MonoDroid sux? :) – Roger 2011-05-10 20:07:49

+0

如果你知道.net或linux單聲道,這是值得關注的Android開發。能夠使用家族代碼編輯器和家族API是我想要的,而不必擔心隱式傳遞給某些內部類的委託參數! =)它rulz! – RandomNickName42 2011-05-10 22:43:46

+2

只是一個簡單的參考,.NET運行時與Mono Android上的Java運行時一起運行。您將運行兩個垃圾收集器,以及兩個框架。這可能會影響電池壽命,內存佔用等。對我來說,犧牲是可以接受的,但你必須自己決定。 – emalamisura 2012-02-22 21:20:25

7

許多可用的文檔都是用Java編寫的:所以如果在使用MonoDroid時遇到手機行爲困難,您不會真正發現那麼多幫助或調試信息,因此您可能想要堅持使用Eclipse。

3

如果你要用c#編寫,你將不得不將它包裝到一個Java代碼中,所以有什麼意義?在嘗試瞭解編寫用於Java編程的API時,您也可能會遇到一個非常困難的問題...

+1

我認爲關鍵是他在C#上比在Java上強大。我認爲對於大多數C#開發人員來說,MonoDroid非常有意義。哦,以及他應該能夠與現有應用程序共享相同的代碼庫的事實(如果他有的話)。這對我來說是一個很大的賣點。 – Andy 2011-05-10 19:51:06

9

我一直在擔心同樣的事情 - C#中的生產力而不是玩用一種不熟悉的語言來開發操作系統開發人員的意圖。

它很容易名單優點VS缺點 -

利弊(MonoDroid的的,爲C#開發人員)

  • 熟悉的開發環境,可以開發使用Visual Studio
  • C#,而不是Java的
  • 可重複使用的代碼資產 - 您可以使用monotouch和WP7 SDK在iphone項目或Windows phone 7項目中使用大量代碼。

缺點 -

  • 調試可能是困難的,因爲缺乏谷歌的API文檔。將不得不完全依賴monodroid文檔。
  • 當涉及到最新的尖端功能時,可能會有滯後 - 安全地假設monodroid團隊每次發佈新操作系統時都需要一些時間來包裝最新的android功能
  • 庫的可用性 - 我不知道你如何使用,將有圍繞着Android平臺發展而來的開源庫,這可能削減開發時間
+2

從現實世界的經驗中,我發現我可以重用大約50-60%的代碼庫,這是使用MVC和Repoistory模式的絕對抽象。另外40-50%是純粹的UI代碼,Android在做簡單的事情時尤其糟糕而且非常冗長,比如使用Tabs,Inflating Views等等。iOS的比例上升到70/30,在Windows Phone上約爲80/20。 – emalamisura 2012-02-22 21:24:07

3

這裏有幾點,你可以仔細考慮:

  1. Android應用主要是用Java編寫的。 Android SDK本身是用Java編寫的。

  2. Mono中的工作可能無法提供Java SDK中提供的所有功能。

  3. 如果您是C#開發人員,您將無法在Java中找到C#中可用的一些(酷)功能(如Property Delegates等)。

  4. 用.NET編寫的代碼可以重新用於其他環境 - 這樣可以節省很多時間,而這些時間本來可以花費很多時間學習一門新的語言/環境(如Objective C)並對其進行編碼。

  5. .NET通過它的現有庫和API擴展了Android開發堆棧。

我覺得兩者都是有利的,因爲某些原因。很難說哪一個更適合Android開發 - 最終由您決定。

2

另請注意,任何使用monodroid的發佈版本都會爲apk文件大小增加一個4mb,並增加幾秒鐘的應用啓動時間。

對於簡單的應用程序,這可能意味着文件大小增加500-800% - 這在我的書中很糟糕。