Android开发中的MonoDroid VS Java?

时间:2011-05-10 14:32:09

标签: android xamarin.android

我非常了解C#,只是喜欢Visual Studio作为IDE。 :)但是现在我想开始为Android开发......

我发现了MonoDroid,并想询问它是否有任何缺点会使Java更受欢迎,或者我应该卸载Eclipse并直接进入MonoDroid?

如果我理解正确,MonoDroid会部署/编译本机Android应用程序,不需要任何额外的类似.net的框架或什么?

使用MonoDroid可以做些什么有明显的限制吗?例如,让应用程序在后台运行或使用一些外部.net库进行图像编辑等?

6 个答案:

答案 0 :(得分:9)

我一直在担心同样的事情 - 使用C#的生产力,而不是使用不熟悉的语言,而不是开发操作系统开发人员的预期。

很容易列出专业与缺点 -

pros(monodroid,对于C#开发人员)

  • 熟悉的开发环境,可以使用Visual Studio开发
  • C#而不是Java
  • 可重复使用的代码资产 - 您可以使用monotouch和WP7 SDK在iphone项目或Windows phone 7项目中使用大量代码。

缺点 -

    由于缺乏来自Google的api文档,
  • 调试可能很困难。将不得不完全依赖于monodroid文档。
  • 在最新的尖端功能方面可能存在滞后 - 可以安全地假设monodroid团队每次有新的操作系统发布时都需要一些时间来包装最新的Android功能
  • 库的可用性 - 我不确定如何使用可以在android平台上进化的开源库,这可以减少开发时间

答案 1 :(得分:7)

许多可用的文档都是用Java编写的:所以如果你在使用MonoDroid时遇到手机行为的困难,你就不会真正找到那么多的帮助或调试信息,所以你可能想要坚持使用Eclipse。

答案 2 :(得分:5)

除了在davlick下运行的一组包装器之外还有很多东西,要说明的是,MonoDroid和Android之间存在更多的横向关系;

enter image description here

何时使用与操作系统开发人员相同的语言成为一个大问题?有很多C ++程序员想知道如何使用BSD或SVR5以及许多希望知道在Windows ++上做什么的C程序员......

答案 3 :(得分:3)

如果你要用c#编写,你将不得不将它包装成Java代码,那么重点是什么?另外,在尝试理解为Java编程编写的API时,您可能会遇到一些非常棘手的问题......

答案 4 :(得分: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开发堆栈。

  6. 我认为两者都有某些原因。很难说哪一个更适合Android开发 - 最终由你决定。

答案 5 :(得分:2)

另请注意,使用monodroid的任何版本构建都会为apk文件大小添加额外的4mb,并且会在几秒钟内增加应用启动时间。

对于简单的应用程序,这可能意味着文件大小增加了500-800% - 这在我的书中非常糟糕。