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

原文地址:https://www.cnblogs.com/hackerkevin/p/4764782.html