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 libpub 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常量. 执行时刻:宏是预编 ...
随机推荐
- CentOS7安装问题及解决方案记录
CentOS7系统已安装好: 一.我想要实现系统桌面化. 需要运行 yum 命令. 出现第一个error: 1.提示错误:can not find a valid baseurl 86_X64.... ...
- 关于prototype和__proto__ 以及 constructor的文字总结
//函数的construct 指向了 function Function(){} undefined //实例化的对象 constructor 指向 函数本身 undefined //每个函数都有pr ...
- Android Studio新建一个HelloWorld 程序(App)
Android Studio新建一个HelloWorld程序(App) 新建 或者直接启动程序(注:如果已有程序,此方法会直接打开最近一次关闭从程序) 更改App名 选择App运行平台 选择模板 更改 ...
- IE6 7下常见CSS兼容性处理
以下是一些比较常见的IE6 7下的兼容性问题. 在当下这个时代,其实我们几乎可以不用再去针对IE6做兼容性的处理,除非你的公司还是诡异的要求你兼容到IE6.但是了解一些常见的兼容性问题还是可以帮助我们 ...
- spark streaming 对接kafka记录
spark streaming 对接kafka 有两种方式: 参考: http://group.jobbole.com/15559/ http://blog.csdn.net/kwu_ganymede ...
- Nginx的启动、停止与重启
启动 启动代码格式:nginx安装目录地址 -c nginx配置文件地址 例如: [root@LinuxServer sbin]# /usr/local/nginx/sbin/nginx -c / ...
- button点击ajax异步无效的处理办法,以及实现“关注”“已关注”切换
button并不是在只等于submit时草有提交功能,如果你用它触发ajax事件,你的ajax会失去他最大的优势:刷新局部数据! 但是你如果设置了他的return false;属性小伙伴你的ajax才 ...
- Failed opening .rdb for saving: Permission denied
启动redis的账号权限不够.一般用root起. 参考:http://www.blogjava.net/liuyf8688/articles/403801.html
- VoLTE 注册流程
1.开关按钮位置: 设置--> 更多--> 移动网络--> 增强型4G LTE模式 2.该设置开关使用了SwitchPreference控件,addEnhanced4GLteSw ...
- Jquery当中当data为json串时,eval('(' +data+ ')')的解释
var dataObj = eval('(' +data+ ')') data是返回来的json. dataObj就是json对象了. 为什么要添加 '(' 与 ')' 作为开始于结尾呢? json是 ...