写点什么

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

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

关注

评论

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

云边协同下的统一应用管理: 基于 OpenYurt 和 KubeVela 的解决方案

阿里巴巴云原生

阿里云 开源 云原生 KubeVela openyurt

前端面试指南之JS面试题总结

loveX001

JavaScript

面试官:MySQL 中 varchar(n) 中 n 最大取值为多少?

架构师之道

MySQL 编程 计算机

Idea居然还有比Navicat、Datagrid工具还好用、还快的插件,效率又可提升一倍了

非喵鱼

Java MySQL redis IDEA 12 月 PK 榜

设备管理|锂电材料工厂混合设备的维护与保养

PreMaint

设备管理 新能源行业 锂电材料工厂

LiteOS-A内核中的procfs文件系统分析

OpenHarmony开发者

OpenHarmony

基于阿里云IoT平台OTA进行APP确认升级的方案——业务架构类

阿里云AIoT

物联网 UED 数据格式

软件测试 | 版本控制神器GitHub的基本使用与踩坑

测试人

GitHub 软件测试 自动化测试 测试开发

MYSQL-INNODB索引构成详解

京东科技开发者

MySQL innodb 索引 B+树 InnoDB存储引擎

教你如何进行数仓字符串、二进制、十六进制互转

华为云开发者联盟

数据库 后端 字符串 华为云 12 月 PK 榜

2 小时开发《点球射门游戏》,动画演示思路(下),代码已开源

非喵鱼

Java 开源 游戏 12 月 PK 榜 世界杯足球游戏

我把Idea给改了,看看有没有你常用的功能,没有,你告诉我,我给你造了

非喵鱼

Java 开源 IDEA springboot 12 月 PK 榜

CTPN+CRNN算法端到端实现文字识别的实战开发

华为云开发者联盟

人工智能 华为云 文字识别 12 月 PK 榜

容量测试解决了什么问题?

老张

性能测试 容量测试 容量保障

Linux平台用什么HA软件好?咨询电话多少?

行云管家

高可用 HA软件

NineData核心技术揭秘

NineData

数据库 备份恢复 备份策略 数据源 备份 & 恢复

阿里国际站-唤端技术的探索与演进

阿里技术

前端 用户增长

做了一份前端面试复习计划,保熟~

loveX001

JavaScript

百度 Android 直播秒开体验优化

百度Geek说

android 百度app 12 月 PK 榜 直播优化

2小时开发《点球射门游戏》,动画演示思路(上),代码已开源

非喵鱼

Java 开源 游戏 12 月 PK 榜 世界杯足球游戏

得物云原生全链路追踪Trace2.0-采集篇

得物技术

架构 云原生 APM Trace OpenTelemetry

KAFKA EAGLE 监控MRS kafka之操作实践

华为云开发者联盟

开发 华为云 12 月 PK 榜

区块链“入局”证券市场,未来前景有多大?

旺链科技

区块链 产业区块链 证券行业 12 月 PK 榜

借用FinClip把小程序游戏运行到自有App中

Onegun

小游戏 小游戏开发 微信小游戏

IPQ8074 Qualcomm Embedded Board Offers MU-MIMO 802.11ax WiFI 6//industrial wifi6 moudle

wallysSK

IPQ8074 ip8072

大幅优化《英雄联盟》游戏体验,英特尔显卡驱动更新

科技之家

免费试用的云管平台哪里有?可以试用多久?

行云管家

云计算 云管平台 云管理 自动化运维

前端面试题(附答案)

loveX001

JavaScript

跨机房ES同步实战

京东科技开发者

迁移 迁移数据 异步多活 Elastic Search 数据库·

ZBC登录iZUMi Finance双挖池APY高达189%,极致通缩的典范

西柚子

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