既然搭载 Google Android 操作系统的 G1 现已上市(很快),那么 Android 平台是否会支持 .Net?

有帮助吗?

解决方案

更新:自从我两年前写下这个答案以来,我们将 Mono 产品化以在 Android 上运行。这项工作包括几个步骤:将 Mono 移植到 Android,将其与 Visual Studio 集成,在 Mac 和 Windows 上构建 MonoDevelop 插件,并将 Java Android API 公开给 .NET 语言。现在可以在 http://monodroid.net

Android 上的 Mono 基于 Mono 2.10 运行时,默认为带有 C# 4.0 编译器的 4.0 配置文件,并使用 Mono 的新 SGen 垃圾收集引擎,以及我们新的跨 Java 和 Mono 执行 GC 的分布式垃圾收集系统。


下面的链接反映了截至 2009 年 1 月 Android 上的 Mono,我保留了它们作为历史背景

由于 Koushik Dutta 和 Marc Crichton 的工作,Mono 现在可以在 Android 上运行。

您可以在此处观看其运行的视频: http://www.koushikdutta.com/2009/01/mono-on-android-with-gratuitous-shaky.html

您可以在这里获取自行构建 Mono 的说明: http://www.koushikdutta.com/2009/01/building-mono-for-android.html

您可以在此处获得比较 Mono 的 JIT 与 Dalvik 的解释器的基准: http://www.koushikdutta.com/2009/01/dalvik-vs-mono.html

当然,您可以在此处使用 Mono 获取预配置的图像(有关使用该图像的详细信息,请转到帖子底部): http://www.koushikdutta.com/2009/01/building-mono-for-android.html

其他提示

是的,这是可能的,并不会那么困难。此时所需要的只是某种转换器将MSIL变为 Dalvik字节码 。由于这两种格式都是开源的并且有详细记录,因此不存在任何问题。

因此,用C#或VB.NET编写Android应用程序是可能的,问题是将支持多少.NET框架标准库。但这是另一个问题。

  

Oscar Reyes写道:

     

我很确定谷歌是否可以提供任何帮助   对.net感兴趣,他们会设计   Android中的东西   第一阶段,而不是现在他们在   生产阶段。我不是故意的   不可能,我说的是   他们不感兴趣。也许在mmm   嗯10年。

实际上他们已经设计的是与Java和.NET非常兼容

他们无法一次完成所有工作,但如果你研究Android SDK,就会有一个名为 dx 的工具。这个工具将Java字节码转换为Dalvik字节码,换句话说,你可以毫不费力地在Android上运行用Java编写的程序。现在.NET需要相同的工具。

考虑到.NET和Java有多相似,这真的是时间问题。

  

ddimitrov写道:

     

.Net-> Java-> Dalvik翻译可以   即使现在也要完成   ( http://dev.mainsoft.com/ ),但我   认为你低估了缺乏   .Net库。当然有人可以   港口单声道,但它绝对是一个   非平凡的努力。

无需移植Mono。 Android已经拥有VM和一些基本API。所需要的只是CIL-> Dalvik转换器和用于Android API的微型.NET包装器(也许是一些标准.NET类的一些基本实现)。就是这样。

更新: .NET已在Android上运行 - 您将需要名为Monodroid的产品( http:// monodroid .net )如上所述。

Miguel de Icaza于17日在他的博客上宣布了这一消息。 2010年2月,他们开始研究用于Android的单声道,这将被称为MonoDroid。

这类似于iPhone上的MonoTouch,而不是Android。

它将提供与Android UI的绑定,因此应用程序将外观和感觉实时原生Android应用程序。这将要求您编写特定于Android的UI。

但是,您可以重用现有的低级库,而无需重新编译。

有适用于Android的Mono,适用于Android的.NET框架。 MonoDroid是一个开发堆栈,用于使用C#和核心.NET API来开发基于Android的应用程序。 MonoDroid Preview 1几天前发布。

由于这是搜索Android和.net支持时谷歌上的第一个链接之一,因此只能在此处发布。

mono项目正在开发一个SDK,用于使用C#等CIL语言开发Android应用程序。不利的一面是它将是一种商业产品。 monodroid

MonoDroid可供预览使用。我认为这将填补这一空白。但是,MonoDroid可能是一个昂贵的开发选择。他们的其他开发工具售价在199美元到4000美元之间(MonoTouch .. iPhone开发工具......价格在399美元到3999美元之间)。如果人们使用这些工具开发应用程序,他们需要一个非常强大的商业模式来看到一些回报。

查看 xmlvm 我认为这是可能的。也可以查看这个视频

Mono 的修改端口也完全有可能。

.NET紧凑框架已移植到Symbian OS( http://www.redfivelabs.com/ )。如果.NET作为一个“封闭”平台可以移植到这个平台,我看不出为什么不能为Android做到这一点。

.NET和Mono是一个很好的环境,拥有许多工具和知识如何使用它们的优秀技能。

我认为Mono有机会成为首选的移动跨平台开发环境,因为它们是iPhone上Objective-C的唯一替代品,应该可以移植到Android上,.NET已经在Windows Mobile上

我真的希望在Android上看到一个坚实的Mono实现,与Monotouch一样使用Android API封装器,并准备支付它,因为我自己无法做到这一点。

您更有可能看到Silverlight的Android实现。微软代表已经证实,这可能与iPhone的代表说这是有问题的。

但是.Net框架的一个版本是可能的。只需要有人关心它:)

但实际上,从C#迁移到Java并不是什么大不了的事情,考虑到两个平台(PC与G1)之间的巨大差异,您似乎不太可能通过一个代码库来实现你想在两者上运行的任何应用程序。

在我看来,在技术上可以将CLI字节码转换为Dalvik,并为一些核心功能(如集合,文件访问等)编写包装类,即使这样做也很困难。

但在Android上运行的.NET桌面应用程序会感觉很陌生,因为它会有一个经典的Windows-like GUI,在触控设备上不是很常用。另一方面,如果您要在.NET中编写类似于android的GUI,则需要另一组包装器(请注意,换行是与上面提到的包装器相反的另一种方式)。

我不确定.NET移动应用程序是否会在android上感觉原生,但我猜它不会。

也许您正在尝试另一种方法:您可以使用Java语言编写应用程序。然后,您可以通过Microsoft J#将其编译为.NET(我知道它已经停止但您仍然可以下载并使用它)并在android上使用相同的Java代码。再次,这是核心类,即业务逻辑,再次你必须编写两个GUI。也许你也可以使用J2ME,如果使用.NET,你将无法做到这一点。

.NET for Android对我来说似乎是一种真正的可能性。有消息称微软将发布针对Android的适当Silverlight-永远不要低估微软将启动引入Apple的优势。智能手机,速度更快,功能更丰富,开发生命周期更快,令人印象深刻的硬件,Flash& Silverlight作为标准可安装。

微软在改进Android方面有着既得利益,与此同时,Android上的Silverlight应用程序也可用于具有多点触控,GPS等的Windows Phone 7操作系统。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top