无论你是否听说过,Google和Oracle苦陷于Android系统中的Java代码版权争夺,这个争拗或许是移动操作系统业界最为强烈的反响。
随着Xamarin的实现,开源和跨平台移动.NET应用程序开发平台Mono的创始人们,早已于一年前开始研究怎样提升Android系统的电池寿命和应用性能。最终,他们却认为相比起Java,C#能为Android建立更为强大的基石,更少的代码限制,更高速的性能表现。据他们所称:
一遍又一遍地,我们回归至最基础部分:Dalvik是一个年轻的虚拟机,它没有Mono的高性能,却承受着许多Java的性能限制,并没有从Oracle热点的高端优化中受益。茶余饭后,我们团队想出了一个疯狂的想法——将Android的源代码翻译成C#!Android将从C#的性能特点中受益,例如它的结构体系、P/Invoke、实际泛型和更成熟的运行环境等。
虽然直到去年7月还什么也没发生,这个想法也只一直藏在我们的脑海。
近几个月,一切像按下了快进——Mono有了较快的发展,我们开始重新考虑提升我们的产品在Android上的性能。如果在这个过程中,我们将Java替换为更快的C#,避免了众多的Dalvik限制,将会怎样呢?是否意味著,我们能创造一款Android手机,完全摆脱Java、摆脱Dalvik虚拟机的限制?
这个想法足够疯狂去尝试。所以,我们决定先从建造一个翻译机器开始,将Android从Java翻译为C#。我们将此项目称为XobotOS。
于是,Xamarin着手开展XobotOS项目,借助他们的开源工具Sharpen,利用C#编译Android 4.0。当他们不再聚焦于XobotOS,他们开放了GitHub项目的源代码。这是否可以解决Google最近的法律纠纷吗?考虑到生态系统的深度改变,这貌似不可能。话虽如此,这一想法为开源工程提供了一条有趣的思路。