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常量. 执行时刻:宏是预编 ...
随机推荐
- MonoDev 冷门而好用的功能
[MonoDev 冷门而好用的功能] 1.Ctrl + B.跳转到对应的{}.(). 2.View -> Editor Layout -> 2 Columns.双屏工作. 3.Editr ...
- eclipse 3.6 + tomcat 6.0 开发SSH框架学习
1. 下载JDK 1.6.0.35 http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 下载之后 ...
- delphi安装 Tclientsocket, Tserversocket控件
菜单component->Install Packets按Add按钮,选择delphi目录里的bin目录下的dclsockets70.bpl(delphi2010是 dclsockets140. ...
- FusionCharts制作报表使用XML导入数据时出现的中文乱码问题
今天在使用FusionCharts制作报表时用XML导入数据,总是出现乱码问题,下面是我的解决方案. 让FusionCharts支持中文 刚刚将XML导入到html中后,在火狐浏览器一直报Invali ...
- Android环境配置及运行helloWord案例
Android的环境搭建步骤,以及输出一个helloWorder 1:下载Android开发环境 及是: SDK adt-bundle-windows-x86_64-20140702 此时的版 ...
- laravel之缓存配置文件
清除之前配置文件缓存,并生成新的配置文件缓存, get bash: php artisan config:cache 如下图,以上命令会将config文件夹下所有的文件内容缓存到bootstrap/c ...
- Android进程间的通信之Messenger
Android进程间的通信方式可以通过以下两种方式完成: Android接口定义语言(AIDL) 使用Messenger绑定服务 本文我们将学习使用Messenger绑定服务的方式进行进程间的通信. ...
- svchost占用cpu
发现有一个svchost始终占用cpu. 查看任务管理器PID列,在tasklist /svc中查找相关列,对应若干服务. 一个一个检查这些服务,确认是windows update服务引起,停止win ...
- Codeforces 586D. Phillip and Trains 搜索
D. Phillip and Trains time limit per test: 1 second memory limit per test :256 megabytes input: stan ...
- 深入理解Java虚拟机(二)、Java对象的创建,内存布局和访问定位
对象的创建: Object obj = new Object(); 常量池中是否有Ljava.lang.Object