大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

谷歌推出 Sky 框架:使用 Dart 编写 120fps 的 Android 应用

  • 2015-05-07
  • 本文字数:1289 字

    阅读完需:约 4 分钟

通常,非游戏类的安卓应用都是由 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 读者交流群)。

2015-05-07 07:019451
用户头像

发布了 75 篇内容, 共 66.6 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

架构实战营 7 期「模块一」为何架构设计能力难以提升

Steve_bot

Redis「7」实现分布式锁

Samson

redis 学习笔记 5月月更

“学生管理系统”毕设架构设计

Pengfei

架构设计原则

Tomcat安全优化

jiangxl

tomcat Java web

⭐万字长篇超详细的图解Tomcat中间件方方面面储备知识⭐

jiangxl

tomcat Java web

架构训练营 模块一作业

小马

「架构实战营」

【架构训练营】模块一作业

知北游

druid 源码阅读 8——过一下流程图的init

张大彪

极客训练营模块一作业

Geek__猫猫头

Cocos creatorの摇杆操控运动

空城机

Cocos 5月月更

linux之grep使用技巧

入门小站

Linux

在线文本列表差集计算工具

入门小站

工具

Linux环境下部署Jpress大型博客网站

jiangxl

基于Redis6.2.6版本部署Redis Cluster集群

jiangxl

Flutter 开源状态管理插件一览

岛上码农

flutter ios 安卓 移动端开发 5月月更

在线HTML转CSV工具

入门小站

工具

实现 LRU 缓存算法

Se7en

《卡片笔记写作法》:用卡片积累思考

郭明

正则表达式知识点梳理

真嗣

正则表达式

通过JConsoler监控Tomcat的JVM内存

jiangxl

Redis Cluster集群收缩主从节点详细教程

jiangxl

5月25日,阿里云开源 PolarDB-X 将迎来重磅升级发布

阿里云数据库开源

开源 开源数据库 国产数据库 PolarDB-X 数据库·

微信业务架构&学生管理系统架构

intelamd

架构实战营 模块一作业

Gor

开启Tomcat管理注主页功能

jiangxl

tomcat

JAVA程序对应不同的部署环境针对配置文件如何管理

jiangxl

Java tomcat

学生管理系统架构设计

Justin1024

架构实战营-模块1作业

Gavin.Yang

数据库连接池 -Druid 源码学习(八)

wjchenge

Druid 数据库连接池

【LeetCode】链表的中间结点Java题解

Albert

LeetCode 5月月更

五、浅谈容器逃逸

穿过生命散发芬芳

5月月更 容器逃逸

谷歌推出Sky框架:使用Dart编写120fps的Android应用_Google_丛一_InfoQ精选文章