写点什么

谷歌推出 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:019462
用户头像

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

关注

评论

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

web简易视频聊天室+媒体流插入

anyRTC开发者

大前端 音视频 WebRTC RTC

5分钟教你学会GaussDB数据分布策略设计

华为云开发者联盟

数据库 分布式数据库 GaussDB GaussDB(for openGauss) 数据分布

在有道 | L同学:一位十五年有道人的成长故事

有道技术团队

分享 访谈录 阅读 网易有道

合约跟单系统开发|合约跟单APP软件开发

拍乐云入选 2021 爱分析·产业数字化厂商全景报告

拍乐云Pano

RTC

Linux df 命令

一个大红包

linux命令 4月日更

HTTPS双向认证

上海派拉基础研发

https HTTP ssl SSL 连接

Python基础之:struct和格式化字符

程序那些事

Python 数据分析 程序那些事

借助 Serverless 容器服务Cube,筷子科技轻松打造 10 万+ 爆款短视频

UCloud技术

13年Java开发经验精华总结!29大核心知识模块,带你直达架构师!

Java架构追梦

Java 阿里巴巴 架构 全栈知识点

合约量化交易机器人系统开发|合约量化交易机器人APP软件开发

磁盘快照服务USnap:公有云连续数据保护(CDP)系统升级改造实践

UCloud技术

很坑的Could not transfer artifact报错

01Running

maven Mac IDEA

我们真的可以使世界成为无密码的地方吗?

龙归科技

网络 安全性

Java 常见 bean mapper 的性能及原理分析

Java小咖秀

Java bean Copier

中国SaaS的终局:神仙打架,小鬼遭殃

ToB行业头条

聪明人的训练(十六)

Changing Lin

4月日更

vue2的$refs在vue3组合式API中的替代方法

devpoint

Vue3 $refs vue2 this.$refs

量化合约机器人APP开发|量化合约机器人软件系统开发

系统开发

合约量化交易APP开发|合约量化交易系统软件开发

系统开发

使用Python映射,过滤和缩减函数:所有您需要知道的

华为云开发者联盟

Python 函数 映射 内置函数

维度数据模型建模过程(Kimball)

大数据技术指南

数据仓库 维度建模 4月日更

征服耶鲁教授的算法大神程序媛,是如何践行“以人为本”开发智慧社区大脑的?

华为云开发者联盟

算法 音视频 智慧社区 华为智慧园区数字平台 数字平台

使用transform制作书本翻页效果

空城机

JavaScript 大前端 4月日更 书本翻页

深入浅出带你掌握线程、多线程和线程池

华为云开发者联盟

Java 线程 多线程 线程池 操作系统

合约量化机器人系统开发|合约量化机器人软件APP开发

系统开发

构建智慧金融新引擎|DataPipeline与巨杉数据库完成产品兼容互认证

DataPipeline数见科技

【有奖征文】WEB前端大作战,走在技术最前端!

华为云开发者联盟

node.js Vue 大前端 Web Web框架

如何利用ipad随时随地开发代码

程序员石磊

ipad 编程 远程

一周信创舆情观察(4.5~4.11)

统小信uos

MySQL性能监控与调优

Sakura

4月日更

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