Google Sky 开源项目:不使用 JAVA 开发 120 FPS 的安卓应用

简介: 作为移动操作系统市场占有率最高的系统,Android 经常因不流畅和卡顿而遭人诟病。甚至很多Android 应用都达不到称得上“流畅”的 60 FPS。

image.png

作为移动操作系统市场占有率最高的系统,Android 经常因不流畅和卡顿而遭人诟病。甚至很多Android 应用都达不到称得上“流畅”的 60 FPS。

不过,好消息是,最近 Google 内部正在悄悄地测试另一种高性能的编程方式,那就 Google 的 Sky 项目。视频 Sky: An Experiment Writing Dart for Mobile 便是谷歌官方的演示视频。(请自带梯子)

除了游戏之外,Android 应用几乎全部是使用 Java 编写的,但是最近 Google 内部正在悄悄地测试另一种高性能的 Android 编程方式,那就 Google 的 Sky 项目。Sky 项目使用网页开发语言 Dart 开发原生 Android 应用,强调应用的运行速度和与 Web 的高度集成。

Javascript 已经有 20 年的历史,有很多理念已经跟不上时代,编程体验也很差,因此 Chrome V8 引擎团队开发了 Dart 语言。最近 Google 的技术发布会展示了 Dart on Android 项目。它有另一个好记的名字,叫做 Sky。

现在 Sky 是一个开源项目,但是和普通的个人开源项目相比,Sky 项目有着来自 Google 官方雄厚的支持。

快速响应是 Sky 最大的目标之一。60 FPS 普遍意义上应用流畅的标准,即需要每 16 ms 绘制一帧,但是却也是很多 Android 开发者始终无法达到的目标。但是 Sky 不一样:Sky 官方的 demo 已经达到了 60 FPS,而 Sky 官方则是要致力于带来 120 FPS 的应用体验。

Sky 团队提供了一个简单的 demo,并且已经达到了 1.2 ms 绘制一帧的惊人速度。虽然这个界面很简单,但是至少也能证明 Sky 达到 120 FPS 的目标(8 ms 一帧)不仅仅是一句空话。并且Dart 团队表示,Sky 的界面渲染和内部执行并不会互相干扰。即便可能因为网络问题或者其他问题导致内部运行速度很慢,界面仍然流畅灵敏。

Sky 项目的 Web 背景使得任何 Sky 的可移植性大大提高。只要装上 Dart 虚拟机,那么任何平台都可以执行 Sky 应用,包括 iOS。

虽然 Sky 应用的格式是 APK,但是实际上 Sky 是基于 HTTP 协议的,当然也通过浏览器的兼容性实现了自己的兼容性部署,是的任何人都能运行最新版的应用。除此之外,URLs 也是 Dart 的基础层之一。因此有人认为,Sky 应用完全依赖网络,没有网络的情况下应用便不能运行,并且启动应用的时候都需要先用一两秒下载数据。但是实际上,这些都可以通过缓存解决。

通过 HTTP 协议提供服务可以大大缩短开发时间。和普通的“编写、编译、安装”三部曲不同的是,Sky 应用可以完全在 HTTP 上编辑代码,客户端只需要关闭,然后打开,“刷新”一下,便可以不更新而直接使用最新版的应用。

除此之外,Sky 还为 Android 开发者提供一系列的设计工具,例如 action bar,出没效果、导航面板、以及其他各种你所想得到想不到的组件。

当然,Sky 也有许多安全问题有待解决。Sky 应用具备 Android 应用的所有特点,和普通的 Android 应用一样,是有权限访问所有的 Android API 的。但是考虑到 Sky 会从网页上更新应用和数据,那么安全性便不容忽视。

Sky 团队的 Github Pages 上写着“我们正在频繁地更新 Sky,因此 Sky 框架还没有完全定型,不同版本的框架和底层也可能会产生兼容性问题”。

Sky 已经为 Android 开发提供了另一种途径,至于 Sky 会不会成为以后 Android 开发的主流,你认为呢?

相关文章
|
3天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
4天前
|
安全 算法 Java
Java CAS原理和应用场景大揭秘:你掌握了吗?
CAS(Compare and Swap)是一种乐观锁机制,通过硬件指令实现原子操作,确保多线程环境下对共享变量的安全访问。它避免了传统互斥锁的性能开销和线程阻塞问题。CAS操作包含三个步骤:获取期望值、比较当前值与期望值是否相等、若相等则更新为新值。CAS广泛应用于高并发场景,如数据库事务、分布式锁、无锁数据结构等,但需注意ABA问题。Java中常用`java.util.concurrent.atomic`包下的类支持CAS操作。
23 2
|
13天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
77 13
|
18天前
|
算法 Java API
如何使用Java开发获得淘宝商品描述API接口?
本文详细介绍如何使用Java开发调用淘宝商品描述API接口,涵盖从注册淘宝开放平台账号、阅读平台规则、创建应用并申请接口权限,到安装开发工具、配置开发环境、获取访问令牌,以及具体的Java代码实现和注意事项。通过遵循这些步骤,开发者可以高效地获取商品详情、描述及图片等信息,为项目和业务增添价值。
52 10
|
11天前
|
前端开发 Java 测试技术
java日常开发中如何写出优雅的好维护的代码
代码可读性太差,实际是给团队后续开发中埋坑,优化在平时,没有那个团队会说我专门给你一个月来优化之前的代码,所以在日常开发中就要多注意可读性问题,不要写出几天之后自己都看不懂的代码。
49 2
|
弹性计算 数据可视化 关系型数据库
阿里云服务器部署Java Web项目和连接MySQL数据库全流程
阿里云服务器部署Java Web项目和连接MySQL数据库全流程
6048 0
阿里云服务器部署Java Web项目和连接MySQL数据库全流程
|
17天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
94 26
|
4月前
|
Java 应用服务中间件 Windows
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
【应用服务 App Service】App Service 中部署Java项目,查看Tomcat配置及上传自定义版本
|
7月前
|
存储 Java Maven
使用 nohup 部署和后台运行Java 项目
使用 nohup 部署和后台运行Java 项目
446 1
使用 nohup 部署和后台运行Java 项目
|
4月前
|
Java 开发工具 git
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因