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简介的更多相关文章

  1. 驱动开发--【字符设备、块设备简介】【sky原创】

    驱动开发   字符设备,块设备,网络设备   字符设备 以字节流的方式访问, 不能随机访问 有例外,显卡.EEPROM可以随机访问   EEPROM可以擦写1亿次,是一种字符设备,可以随机访问 读写是 ...

  2. 全链路跟踪skywalking简介

    该文章主要包括以下内容: skywalking的简介 skywalking的使用,支持多种调用中间件(httpclent,springmvc,dubbo,mysql等等) skywalking的tra ...

  3. Linux Kernel 0.12 启动简介,调试记录(Ubuntu1804, Bochs, gdb)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  4. ASP.NET Core 1.1 简介

    ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...

  5. MVVM模式和在WPF中的实现(一)MVVM模式简介

    MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...

  6. Cassandra简介

    在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...

  7. REST简介

    一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...

  8. Microservice架构模式简介

    在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...

  9. const,static,extern 简介

    const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...

随机推荐

  1. CentOS7安装问题及解决方案记录

    CentOS7系统已安装好: 一.我想要实现系统桌面化. 需要运行 yum 命令. 出现第一个error: 1.提示错误:can not find a valid baseurl 86_X64.... ...

  2. 关于prototype和__proto__ 以及 constructor的文字总结

    //函数的construct 指向了 function Function(){} undefined //实例化的对象 constructor 指向 函数本身 undefined //每个函数都有pr ...

  3. Android Studio新建一个HelloWorld 程序(App)

    Android Studio新建一个HelloWorld程序(App) 新建 或者直接启动程序(注:如果已有程序,此方法会直接打开最近一次关闭从程序) 更改App名 选择App运行平台 选择模板 更改 ...

  4. IE6 7下常见CSS兼容性处理

    以下是一些比较常见的IE6 7下的兼容性问题. 在当下这个时代,其实我们几乎可以不用再去针对IE6做兼容性的处理,除非你的公司还是诡异的要求你兼容到IE6.但是了解一些常见的兼容性问题还是可以帮助我们 ...

  5. spark streaming 对接kafka记录

    spark streaming 对接kafka 有两种方式: 参考: http://group.jobbole.com/15559/ http://blog.csdn.net/kwu_ganymede ...

  6. Nginx的启动、停止与重启

      启动 启动代码格式:nginx安装目录地址 -c nginx配置文件地址 例如: [root@LinuxServer sbin]# /usr/local/nginx/sbin/nginx -c / ...

  7. button点击ajax异步无效的处理办法,以及实现“关注”“已关注”切换

    button并不是在只等于submit时草有提交功能,如果你用它触发ajax事件,你的ajax会失去他最大的优势:刷新局部数据! 但是你如果设置了他的return false;属性小伙伴你的ajax才 ...

  8. Failed opening .rdb for saving: Permission denied

    启动redis的账号权限不够.一般用root起. 参考:http://www.blogjava.net/liuyf8688/articles/403801.html

  9. VoLTE 注册流程

    1.开关按钮位置:   设置--> 更多--> 移动网络--> 增强型4G LTE模式 2.该设置开关使用了SwitchPreference控件,addEnhanced4GLteSw ...

  10. Jquery当中当data为json串时,eval('(' +data+ ')')的解释

    var dataObj = eval('(' +data+ ')') data是返回来的json. dataObj就是json对象了. 为什么要添加 '(' 与 ')' 作为开始于结尾呢? json是 ...