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. Web 项目中分享到微博、QQ空间等分享功能

    Web 项目中分享到微博.QQ空间等分享功能 网上有很多的模板以及代码,但是有很多都不能分享内容,简单的测试了下: 以新浪微博为例,文本框中的内容是title属性,下面的链接是url属性,如果你的链接 ...

  2. fedora25 下配置samba

    本例是在 / 目录下建立share 文件夹为例 Sudo dnf install samba samba-common samba-clientsudo mkdir /share sudo chmod ...

  3. text()和html()的区别,以及val()

    text():设置或返回所选元素的文本内容: html():设置或返回所选元素的内容(包括 HTML 标记): val():设置或返回表单字段的值 例如: <!DOCTYPE html>& ...

  4. C#获取本机公网IP

    /// <summary> /// 获取本机公网IP /// </summary> /// <returns></returns> public sta ...

  5. vs快捷方式

    项目相关的快捷键 Ctrl + Shift + B = 生成项目 Ctrl + Alt + L = 显示Solution Explorer(解决方案资源管理器) Shift + Alt+ C = 添加 ...

  6. [原创][LaTex]汇总博文

    0. 简介 为了查找方便,当当当当,灵机一动的设计了这个博文,有了他就能快速的查找一些该话题相关方面的一些博文了,不管是原创.转载.整理,只要是属于我自己整理的LaTex知识,应该都可以在这里找到的. ...

  7. 转载 --ios 模型-setValuesForKeysWithDictionary

    应用场景:app请求后端数据,返回的数据是JSON形式,如: { "is_favor" = 0; "is_follow" = 0; "is_prais ...

  8. Jquery遍历选中的input标签

    $("input[name='chkAgent']:[checked]").each(function () { alert($(this).attr("value&qu ...

  9. 第十二章 redis-cluster搭建(redis-3.2.5)

    redis集群技术 redis2.x使用客户端分片技术 redis3.x使用cluster集群技术 一.环境 os:centos7 ip:10.211.55.4 redis:3.2.5 gem-red ...

  10. VS2010+C#+AutoCAD2008时断点调试功能无效的处理方法

    把acad.exe.config文件修改为:------------------------------------------------------------------------------ ...