转载

谷歌团队正在尝试用Dart应用运行框架实现去Java化

通常,非游戏类的安卓应用都是由Java语言编写的,不过 谷歌的一个团队正在尝试用内部的 Web开发语言Dart以一种全新的方式编写安卓应用。这种方式的重点是完全去Java化,专注于速度并且与Web深度整合。

Dart最初是由Chrome的V8 Javascript引擎团队成员所创建。最近该团队主办了Dart开发者峰会,并对外展示了名为Sky的Dart on Android项目。该项目目前已经基于Apache许可协议开源,源代码已经上传至 GitHub 。

Sky由两个组件组成:

  • Sky引擎。用C++编写的引擎是整个系统的核心。引擎提供了许多用于构建高质量应用的基础元素,包括软实时调度程序和分层次的保留模式图形系统。
  • Sky框架。名为Effen的Sky框架通过提供用户熟知的交互部件,如按钮、无限列表和动画,让使用Sky构建应用变得更加容易。这些可扩展的组件所遵循的函数式程序设计风格的灵感来自于 React 。

Sky项目最大的目标是快速响应。目前,绝大多数的应用和开发人员在应用平滑度方面的标准仍然是60FPS,而Dart团队计划将这一目标提升至120FPS。这一目标乍听起来不太可能,因为目前主流的智能手机显示屏的刷新频率也只有60Hz,根本无法有效显示120FPS的刷新频率。而对于安卓系统来说,绝大多数应用连60FPS的标准都达不到,更不要说120FPS了。

在Dart团队所展示的一个 示例应用 中,全部帧数渲染仅耗时1.2毫秒。尽管这个示例相当简单,一定程度上说明Sky仍有很大空间可以在更加复杂的应用中实现流畅的动画效果,这也表明120FPS的目标(8毫秒的渲染时间)并非痴人说梦。Dart团队将Sky称为“不会卡的设计”,API不会妨碍用户界面主进程的执行,也就是说即使应用的速度变慢,用户界面仍会保持流畅的响应速度。

Sky将其Web后端也带到了移动开发领域。Sky不依赖于平台,其代码可以运行在Android、iOS,或是任何包含Dart虚拟机的平台上。这类应用的运行类似于网站。应用的很大一部分是基于HTTP的,通过HTTP提供服务的方式可以让开发变得更加简单。无需编辑代码、编译、安装新的应用,只需要在HTTP服务器端编辑代码,然后关闭并再次打开应用就可以用最新的代码“刷新”应用。就像Web浏览器一样。Sky框架为安卓开发提供了一整套物化设计(Material Design)的组件,开发者可以很方便地添加工具栏、触摸效果、导航栏以及安卓应用中应有的所有其他组件。

与普通的应用类似,Sky应用可以获取到完整的安卓特权和API的访问权限。但这种权限与Web服务器自动更新相结合,可能会带来比较大的安全隐患。不过,目前为止Sky仍然只是一个实验性的项目,这类问题在Sky成为正式的安卓应用解决方案之前,务必需要得到解决。虽然目前Sky团队仍然在持续不断地进行项目迭代,Sky框架和底层引擎将来也可能会有多次不兼容的变动,不过Sky这种专注于速度和另辟蹊径的安卓开发方法仍值得我们密切关注其后续的发展动态。

感谢崔康对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群 谷歌团队正在尝试用Dart应用运行框架实现去Java化 )。

正文到此结束
Loading...