xamarin .net core(Xamarin发布XobotOS源码,C# 实现的Android系统 操作系统 ITeye资讯)
Android的核心代码由数百万行Java代码构成 ,而XobotOS项目还需要和Android的新版本保持同步(事实上 ,XobotOS的工作从Android 2.x已经开始) ,工作量之巨大 ,只能通过机器自动转换来实现 。
该团队利用了一个自动转换Java到C#的工具——Sharpen ,并进行了许多改进 ,使该工具更加成熟 ,目前Sharpen的源码已随XobotOS发布 。
性能对比
运行于Mono上的Android ,与Dalvik相比 ,性能究竟如何?Xamarin团队称:
在泛型实现上 ,Java和C#分道扬镳,Java采用了完全向后兼容 ,而C#在运行时上提供了支持 ,C#的做法更简单易用 、高效和完善 。
再则 ,Java和C#在语法和执行环境上都在不断改进 ,增加了大量的新特性 ,如动态编程 、异步支持 、迭代器 、函数式编程组件 、并行化等 ,而其中大量的特性来自于Don Syme(微软F#项目负责人)的研究 。
另外 ,在过去10年时间中 ,Mono作为一个虚拟机已经逐渐成熟 ,现在已经是第8代产品了 。
以上这些都是影响性能的因素 。下图通过一个简单的二叉树实现 ,来对比Java/Dalvik和C#/Mono在结构体和泛型影响下的性能差别 。
未来计划
Xamarin称 ,公司的目标是提供最好的移动应用开发平台 ,因此XobotOS不会是工作重心,不过这是一项非常有趣的实验 ,其中一些技术也可以用于未来的产品中 。这些技术包括:
直接访问Skia图形库:目前Mono for Android通过Java访问底层图形库 ,通过XobotOS中的代码,可以使用Mono的P/Invoke直接访问Skia的原生渲染代码 。 Java/C#转换工具:新版Sharpen已经作为XobotOS的一部分发布。 使用C#代码替换Java代码:对于一些性能瓶颈的地方 ,可以使用C#来代替Java 。源代码
Xamarin团队已经将XobotOS的源代码发布在Github上 。
XobotOS中各组件的源码基于这些组件上游供应商规定的许可协议 ,C#版本的Android基于Apache 2许可协议。XobotOS中还包含了Java/C#转换工具Sharpen的源代码 ,基于GPL许可协议 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!