sky简介
sky简介
sky是一种构建高性能、跨平台手机APP的新的途径。更值得关注的是,sky是一种渲染引擎、脚本引擎、一个框架和一系列的材料设计模式的窗体组件。sky是当前以及未来手机APP的一种优化手段。sky专注于解决在Android和IOS系统上的低延迟输入和高帧率。
Getting Started with Sky
sky app是用dart写的,我们首先得下载安装dart SDK
- 安装Dart SDK
- Mac:
brew tap dart-lang/dart && brew install dart
- Linux: 见 https://www.dartlang.org/downloads/linux.html
- 确认环境变量 DART_SDK 已经被设定为 Dart SDK 的路径,并且 dart 和 pub 这两个可执行文件在环境变量 PATH 中
安装 Dart SDK 完成后,创建一个新的目录并且添加一个新的文件 pubspec.yaml:
name: your_app_name
dependencies:
sky: any
sky_tools: any
然后,创建一个 lib 文件夹(放置dart代码)并用 pub 工具获取sky包和依赖关系
mkdir lib
pub update
sky假定你的程序入口是lib/main.dart
中的main
方法:
import 'package:sky/widgets.dart'; class HelloWorldApp extends App {
Widget build() {
return new Center(child: new Text('Hello, world!'));
}
} void main() {
runApp(new HelloWorldApp());
}
从main
开始执行,在这个例子中跑起来HelloWorldApp
实例。HelloWorldApp
构建了一个Text
组件,内部包含了一个传统的Hello, world!
字符串,使用一个Center
控件放置在屏幕中心位置。
Setting up your Android device
目前,sky需要运行在安卓L版本或者更高的版本上。
- 安装
adb
- 打开设备上的开发者模式,通过
Settings > About phone
,点击Build number
区域五次 - 打开开发者选项,通过
Settings > Developer options
- 使用USB线连接手机到电脑上。如果手机上有提示,授权将电脑连接上手机。
Running a Sky application
sky应用程序包中包含一个sky_tool
脚本,包含在SkyShell.apk
工具中协助sky应用运行。sky_tool
脚本从应用包的根目录开始运行(例如:同样的目录下包含了文件pubspec.yaml
)。运行APP时,请遵从如下建议:
- 第一次:
./packages/sky/sky_tool start --install --checked && adb logcat -s sky chromium
- 之后:
./packages/sky/sky_tool start --checked && adb logcat -s sky chromium
命令sky_tool start
启动设备服务并将应用加载到设备上。如果手机上没有已经安装了这个应用过,--install
标记会安装SkyShell.apk
。--checked
标记触发检查模式,此时类型会被检查,断言会开始运行,各种调试特性都会被打开。命令adb logcat
会打印出出错log,dart语句print()
会从app中打印出来。参数-s sky chromium
会将输出限制在sky dart 代码和sky引擎c++代码的输出,这个现象是处于历史的原因。
为了避免和旧的log信息引起的混淆,在运行sky_tool start
之前应该运行adb logcat -c
去清除两次运行之间的log。
Debugging
sky使用observation进行调试和性能分析。当你使用sky_tool
运行sky app时,可以使用浏览器加载http://localhost:8181
来使用observation。
Building a standalone APK
虽然在应用中构建了一个独立的APK是可能的,但是现在这么做是非常困难的。最后,我们计划将这些变得简单并且支持更多的平台而不只是Android平台,这些工作正在进行中。
跟本文相关的请见如下链接:
https://github.com/domokit/sky_engine
https://github.com/domokit/sky_engine/blob/master/sky/packages/sky/README.md
sky简介的更多相关文章
- 驱动开发--【字符设备、块设备简介】【sky原创】
驱动开发 字符设备,块设备,网络设备 字符设备 以字节流的方式访问, 不能随机访问 有例外,显卡.EEPROM可以随机访问 EEPROM可以擦写1亿次,是一种字符设备,可以随机访问 读写是 ...
- 全链路跟踪skywalking简介
该文章主要包括以下内容: skywalking的简介 skywalking的使用,支持多种调用中间件(httpclent,springmvc,dubbo,mysql等等) skywalking的tra ...
- Linux Kernel 0.12 启动简介,调试记录(Ubuntu1804, Bochs, gdb)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- ASP.NET Core 1.1 简介
ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- Cassandra简介
在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...
- REST简介
一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...
- Microservice架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...
- const,static,extern 简介
const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...
随机推荐
- zstuoj 4243 牛吃草 ——(二分+两圆交)
这题上次补了以后忘记写博客了,现在补一下. 有两个注意点,第一是两圆相交的模板.可以通过任意一种情况手推出来. 第二是,实数二分要注意不用ans记录为妙,因为可能因为eps过小,导致ans无法进入记录 ...
- 从零构建一个简单的 Python Web框架
为什么你想要自己构建一个 web 框架呢?我想,原因有以下几点: 你有一个新奇的想法,觉得将会取代其他的框架 你想要获得一些名气 你遇到的问题很独特,以至于现有的框架不太合适 你对 web 框架是如何 ...
- Js文件中文乱码
aspx页面引用的js文件中如果包括中文,中文显示乱码或者引起脚本错误.提示是'未结束的字符串' 原因:aspx页面的默认编码是utf-8,而js文件的默认编码是gb2312,两者之间不一致引起了中文 ...
- linux命令(7):mv命令
mv命令 mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] ...
- poj 1384 Piggy-Bank(完全背包)
Piggy-Bank Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 10830 Accepted: 5275 Descr ...
- Git学习(四)——分支管理
一.创建与合并分支 1.创建分支 一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点.每次提交 ,mast ...
- flash拖动条移出flash无法拖动
原因:flash拖动条的拖动事件被嵌入flash的div的鼠标事件给截获了!
- Eclipse:Dubug快捷键
Debug快捷键 F5单步调试进入函数内部. F6单步调试不进入函数内部,如果装了金山词霸2006则要把"取词开关"的快捷键改成其他的. F7由函数内部返回到调用处. ...
- Frameset 框架集 导航栏 的使用
在index.jsp中 使用jsp标签转发到制定页面 <body> <jsp:forward page="/admin/frame.jsp"></js ...
- Java使用正则表达式取网页中的一段内容(以取Js方法为例)
关于正则表达式: 表1.常用的元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串 ...