使用 C# 开发 Android 应用程序

Posted

技术标签:

【中文标题】使用 C# 开发 Android 应用程序【英文标题】:Develop Android app using C# 【发布时间】:2012-06-13 07:05:38 【问题描述】:

是否可以使用 C# 编写 android 应用程序?有 API 之类的吗?个人和商业开发是否免费?

我需要安装什么才能在我的 Visual Studio 中拥有 android 项目模板?

【问题讨论】:

不确定 C# 的任何使用方式,但您可以尝试 html5 .....(但有一些限制) C# 比 java 更类似于目标 C。 iPhone 使用前者,Android 使用后者,因此如果您已经了解 C#,尝试 iPhone 开发比 Android 开发更有意义。 @ToddDavies 我完全不同意并说 Java 和 C# 是最相似的语言。事实上,我会说 Objective C 根本不反映 C#。 好吧,每个人都有自己的看法,但我确信 Java 对于 Objective C 就像我对于我最讨厌的第五个被移除的堂兄:P +1 @DarrenDavies ios 的 Mono 绑定在某些地方(例如协议)难以代表其 Objective-C 等价物,但它们与 Android 直接是 1-1。 【参考方案1】:

使用过 Mono,我不推荐它。 Mono 运行时与您的应用程序捆绑在一起,因此您的 apk 最终会膨胀到超过 6MB。一个更好的 C# 编程解决方案是dot42。 Mono 和 dot42 都是授权产品。

就个人而言,我建议在IntelliJ IDEA 开发环境中使用Java。我这么说有 3 个原因:

    已经有很多适用于 Android 的 Java 代码;帮自己一个忙,不要重新发明***。 IDEA 与 Visual Studio 非常相似,可以轻松学习; JetBrains做的,智能比VS好。 IDEA 是免费的。

我从事 C# 程序员已有 12 年,并开始使用 C# 为 Android 开发,但最终跳槽并走 Java 路线。这些语言非常相似,您真的不会注意到太多的学习曲线。

附:如果你想使用 C# 原生的 LINQ、序列化和其他方便的特性,那么你只需要寻找等效的 java 库。

【讨论】:

谢谢,您的经验似乎很有用 不错的答案,但如果 android 应用程序有 C# 作为后端怎么办? 如果我想为使用 Web API 构建的 Web 应用程序创建应用程序怎么办? 谢谢,你的意思,如果我们使用 java 与 android 一起工作,那么我会从谷歌搜索中获得更多的博客和资料。只有启动才会听到以后一切都很好。谢谢,我是 C# 开发人员,但我将使用 java 启动我的应用程序。【参考方案2】:

你可以使用Mono for Android:

http://xamarin.com/monoforandroid

另一种选择是dot42

http://www.dot42.com/

dot42 提供免费的社区许可证和专业许可证,价格为 399 美元。

【讨论】:

请查看我添加到 Seva Alekseyev 回复中的评论。 @CoolArchTek - 您可以免费下载评估,但适用于 Android Professional 的 Mono 是 399 美元,而 Enterprise 是 999 美元。 store.xamarin.com 为自己和您的伙伴编写一些应用程序 399 美元是非常令人望而却步的。我希望有一些“介于两者之间”的东西。考虑到 Android+Eclipse 是免费的,Visual Studio Express 是免费的,xamarin 错过了很多,仅仅是因为它们的价格 @cmroanirgo Xamarin 现在支持基于订阅的模型并提供免费选项 - 您不再需要为 Android 购买 Mono。 http://www.dot42.com/ 于 2015 年 5 月 29 日在其网站 dot42 has been discontinued and is no longer supported. All sources are availabe on GitHub. The latest build is available as a binary setup. 上有此内容。他们确实有一个source download 和一个GitHub。【参考方案3】:

这是一个新的(注:在技术预览阶段): http://www.dot42.com

它基本上是一个 Visual Studio 插件,可让您将 C# 代码直接编译为 DEX 代码。这意味着没有像 Mono 这样的运行时要求。

披露:我在这家公司工作


更新:所有来源现在都在https://github.com/dot42

【讨论】:

我认为这里不适合讨论定价,但请确保比较正确的许可证。我确实想指出,dot42 附带免费的非商业用途社区许可证。 弗兰克,你说得很对,我必须承认我没有注意到社区许可证。 不错。如果你会考虑为 ios 创建 c 代码,有任何 cmets 吗? 这太棒了!是否有计划聘请 UI 设计师?或者我可以使用其他工具来执行此操作吗?干得好! 其实目前还没有这样的计划。您可以使用 Android Studio 来设计 UI。然后,您可以在 Visual Studio 中导入这些资源。【参考方案4】:

Mono Touch 就是答案。

http://xamarin.com/monotouch

【讨论】:

商业开发是否免费?我想为公司(他们的用户)开发一个应用程序。 他们有它,所以你可以免费使用很多。但是有某种iirc的许可费 单声道是唯一的方法吗?有没有可用的开源选项? Mono 是开源的 IIRC。此外,您是否意识到将整个 C# (CLR) 运行时移植到不同平台而几乎没有 Microsoft 支持的工作?甚至 Mono 存在也是一个奇迹。 Google 和 MSFT 是移动领域的直接竞争对手,C# 是 MSFT 支持的技术。去图吧。【参考方案5】:

我使用 Unity 3D 游戏引擎为 PC 和手机开发游戏。我们在此开发中使用 C#。

【讨论】:

提供一个指向您使用的 Unity 3D 游戏引擎版本的链接会很好。【参考方案6】:

您应该尝试运行 Mono(它与 .NET 兼容)。

对于游戏开发,我推荐unity:http://unity3d.com/

一般应用:http://xamarin.com/monoforandroid

【讨论】:

【参考方案7】:

确实有适用于 Android 的 C# 编译器。尽管我更喜欢用 Java 开发 Android 应用程序,但我还是推荐 MonoForAndroid。您可以在http://xamarin.com/monoforandroid 上找到更多信息

【讨论】:

以上是关于使用 C# 开发 Android 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

C#使用Xamarin开发Android应用程序 -- 系列文章

无法从使用 C# 开发的 Android 应用程序接收 json

在 Android 设备上开发 C#/.NET

如何在 C# Rest 服务中从 Android 应用程序读取 JSON 数据

C#:在 Android 上复制资产

如何使用 C# 在 android 中编写推送通知的代码?