使用Xamarin Vs开发android应用程序Native android

有没有人知道在Xamarin Versus Android java本地代码中通过C#进行编程的优缺点比较?

通过Xamarin开发的方式比原生的Android更有限,或者差距不是那么大。 我想听听有两种技术开发经验的人的意见。
谢谢

更新 20160822:此build议仍然成立。 我不断被问到这一点。 我所知道的一家公司只和Xamarin一起,发现它没有解决他们的Android问题,因为他们不得不学习两种语言/实现来解决他们的问题。

更新 20150513:迄今为止,这是我从初创公司获得的最多问题之一。 他们应该走哪条路 我不可避免地最终把他们指向这个职位。 这仍然是可靠的build议。

我已经开发了两个。 你可以在Xamarin中做任何你想做的事情。 你将遇到的几个困难的领域是:

  • find好的工作示例代码。 边缘情况在这里真的很糟糕。
  • 你会发现,你最终通过Xamarin学习Java,因为你必须阅读这么多的Java代码。

另一个问题是,虽然Xamarin做得不错,而且正在获得牵引力,但社区还是比较小的。 当你释放Xamarin应用程序时,这会造成问题。 如果你需要引入其他人来维护它,他们必须知道.NET,C#和Android。 发现组合是相当困难的,我发现我需要更新我的应用程序的所有承包商或顾问是非常昂贵的。

这是隐藏的陷阱。 它会帮助你更快地走出门外,但是如果你不是那个做更新的人,那么保留和新的function开发将会让你付出代价。

为什么我知道这个? 我已经写了Xamarin两个应用程序,我最终想要更新。 我不得不联系一个承包商来做,因为我没有时间。 与Android或iOS开发者相比,它已经相当昂贵了。 我最终将这些应用程序从Xamarin移动到本机Android和iOS。

那边。 它是一个惊人的真棒平台。 如果你打算总是处理它,然后使用它。 能够使用C#的力量是伟大的。 在使用C#多年之后,我对Java的真正鄙视。 这是个人喜好,但它是什么。

其全部是关于权衡。