10

我对 C# 非常了解,并且喜欢将 Visual Studio 作为 IDE。:) 然而现在我想开始为 android 开发...

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

如果我理解正确的话,MonoDroid 部署/编译原生 android 应用程序并且不需要任何额外的类似 .net 的框架或任何东西?

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

4

6 回答 6

9

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

很容易列出利弊 -

优点(monodroid,用于 C# 开发人员)

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

缺点 -

  • 由于缺少 Google 的 api 文档,调试可能很困难。将不得不完全依赖 monodroid 文档。
  • 最新的尖端功能可能会有延迟 - 可以肯定的是,每次发布新的操作系统时,monodroid 团队都需要一些时间来总结最新的 android 功能
  • 库的可用性 - 我不确定如何使用围绕 android 平台发展的开源库,这可能会缩短开发时间
于 2011-09-17T11:55:54.900 回答
7

大部分可用的文档都是用 Java 编写的:因此,如果您在使用 MonoDroid 时遇到电话行为方面的困难,您将不会真正找到那么多帮助或调试信息,因此您可能希望坚持使用 Eclipse。

于 2011-05-10T14:58:50.633 回答
5

在 davlick 下运行的不仅仅是一组包装器,说实话,MonoDroid 和 Android 之间存在更多的横向关系;

在此处输入图像描述

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

于 2011-05-10T18:59:40.810 回答
3

如果你无论如何都要用c#编写,你将不得不将它包装成Java代码,那有什么意义呢?此外,在尝试理解为 Java 编程编写的 API 时,您可能会遇到一个非常困难的问题......

于 2011-05-10T15:07:21.760 回答
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 开发 - 最终也由您决定。

于 2012-05-25T05:42:19.540 回答
2

另请注意,任何使用 monodroid 的发布版本都会为 apk 文件大小增加 4mb,并将应用程序启动时间增加几秒钟。

对于简单的应用程序,这可能意味着文件大小增加 500-800%——这在我看来是相当糟糕的。

于 2012-06-20T13:35:12.450 回答