HaaS UI - 轻量级IoT小程序解决方案

简介: HaaS UI是一套应用在HaaS硬件上的轻量级IoT小程序解决方案,支持AliOS Things内核,支持用JS开发UI应用,同时也支持Native App(不做主要推荐)。
来源 | HaaS技术社区

1、背景

2002年日本东芝生产的采用Linux QT方案的广告机经由香港第一次进入到深圳特区安装到大巴之上,首次取代了传统的广告海报及灯箱。2010年~2011年期间安卓出现,且随着多年安卓生态的发展,安卓也被广泛应用到商显行业,同时3G、4G等通信技术的发展,使得设备联网更加便捷。物联网和5G的高速发展,使得智能终端带屏、上云成为可能。智慧城市建设,仍是“十三五”工作重点,预计到2021年市场规模达到18.7万亿,为带屏终端带来发展机遇。HaaS要解决的不仅是万物互联,更是万屏互联。IoT终端设备向网络化、带屏化发展,真正实现万屏互联,需要一个轻量的应用框架来支撑,HaaS UI应运而生。

2、什么是HaaS UI

HaaS UI是一套应用在HaaS硬件上的轻量级IoT小程序解决方案,支持AliOS Things内核,支持用JS开发UI应用,同时也支持Native App(不做主要推荐)。HaaS UI的框架如下:

image.png

自底向上分为4个基础模块:

1. 内核:支持AliOS Things内核系统,基于AliOS Things系统图形框架。详见AliOS Things相关文章。

2. UI渲染框架:通过Canvas API及关联模块实现一层接口层隔离,在不同系统能力上使用不同的图形渲染框架,对接Skia不同版本。将渲染、组件、页面进行分开,减少应用框架层对图形渲染的依赖,达到解耦的目的。

3. 应用管理和生命周期管理:有自己完整的应用 & 页面生命周期,类似Android应用生命周期。

4. JS应用框架:采用的JS前端框架是基于Vue.js前端框架,基于当前容器所支持的标签和样式子集实现的Vue组件都可直接使用。如下图所示:


image.png

3、名词解释

AliOS Things: 阿里云智能IoT团队自研的物联网操作系统

HaaS:全称是Hardware as a Service,阿里云智能IoT团队基于AliOS Things系统推出的硬件即服务

HaaS UI:全称是Hardware as a Service User Interface,是源自AliOS Things操作系统上的一套应用&图形解决方案,支持C/C++和 JS两种开发语言

4、为什么选用JS

三点主要原因:

1. 三个“热”的特性:热部署、热更新、热加载。应用热更新,让设备应用的升级不依赖OTA,可以针对应用&单页独立升级。

2. 开发者生态:基于JS语言,降低开发门槛,引入前端的开发者,提升开发效率。

3. 开源方案:JS引擎 + 图形框架 + 开源前端框架,聚集社区开发者力量。

5、为什么选择Vue.js

Vue.js作者为尤雨溪,一套构建用户界面的渐进式框架,采用自底向上增量开发的设计,对JS开发者比较友好

Vue.js 的核心库只关注视图层,并且非常容易学习,不断繁荣的生态系统,可以在一个库和一套完整框架之间自如伸缩

版本:V2.6版本

官网:https://cn.vuejs.org/

入门:https://www.runoob.com/vue2/vue-tutorial.html

6、HaaS UI JS应用

1. 每个应用都有app.js,包含全局应用生命周期监听。该js为应用入口,启动时执行,并导出一个继承自$falcon.App的子类承载应用生命周期。

2. 每个页面对应一个page.js文件(可选,也可直接对应一个.vue文件。此情况框架会自动创建一个对应的Page实例)。

3. Page包含一个Falcon(动态卡片)实例,每个Falcon实例对应一个Vue根实例。

4. 每个Vue根实例可由多个组件组成。

7、演示效果

HaaS UI 可以满足各种场景下的UI页面开发,后续会有相关网站介绍各种组件的用法和演示效果,下面为设备上的演示效果

表盘

10.jpeg

天气预报

9.jpeg

8、基础技术指标&能力

指标 & 能力

内存

< 3MB

Flash

< 1.2MB(进包含英文符号等,支持自己增加中文字库)

基础组件

10+

高级组件

15+

启动速度

< 600ms

Canvas API

10+, 支持matrix矩阵变换

Key/Input事件

完整的事件机制,支持焦点

组件 Layout 机制

完整的layout布局排版能力,支持扩展

JSAPI扩展

支持三方自己扩展系统&前端能力(类似jni)

图片解码能力

支持jpeg,png,gif等

字体能力

默认支持矢量字体

多窗口能力

支持多窗口overlay机制

9、开源计划

HaaS UI将配合AliOS Things最新版本一同开源,开发者可以在HaaS硬件开发板体验用最高效的方法搭建IoT设备上的屏幕显示能力和带屏应用。请关注我们关于开源计划的最新公告。

10、开发者技术支持

如需更多技术支持,可加入钉钉开发者群,或者关注微信公众号

更多技术与解决方案介绍,请访问阿里云AIoT首页https://iot.aliyun.com/

相关文章
|
29天前
|
小程序 前端开发 安全
小程序全栈开发中的跨域问题及其解决方案
【4月更文挑战第12天】本文探讨了小程序全栈开发中的跨域问题及其解决方案。跨域问题源于浏览器安全策略,主要体现在前后端分离、第三方服务集成和数据共享上。为解决此问题,开发者可采用CORS、JSONP、代理服务器、数据交换格式和域名策略等方法。实践中需注意安全性、兼容性和性能。通过掌握这些解决方案,开发者能更好地处理小程序的跨域问题,提升用户体验。
|
2月前
|
移动开发 小程序 API
微信外部浏览器或短信链接唤起微信小程序的解决方案
微信外部浏览器或短信链接唤起微信小程序的解决方案
167 1
|
3月前
|
小程序
小程序一直未提审的原因及解决方案
小程序一直未提审的原因及解决方案
29 0
|
3月前
|
移动开发 小程序 API
【小程序质量提优解决方案】(三)内嵌H5页面访问受限
【小程序质量提优解决方案】(三)内嵌H5页面访问受限
99 0
|
3月前
|
移动开发 小程序 JavaScript
【小程序质量提优解决方案】(二)内嵌H5加载异常(404)
【小程序质量提优解决方案】(二)内嵌H5加载异常(404)
44 0
|
3月前
|
资源调度 JavaScript
Vue + Element-ui组件上传图片报错问题解决方案
Vue + Element-ui组件上传图片报错问题解决方案
|
1月前
|
小程序
【微信小程序6】引入第三方UI的方法(ColorUi)
【微信小程序6】引入第三方UI的方法(ColorUi)
19 0
|
6月前
|
JavaScript
uview-ui组件swipeAction关闭无法生效解决方案
uview-ui组件swipeAction关闭无法生效解决方案
|
7月前
|
小程序 JavaScript 开发者
uniapp小程序订单页面UI
uniapp小程序订单页面UI
292 0
|
3月前
|
小程序 定位技术 Android开发
小程序质量提升丨定位问题解决方案(错误码11)
小程序质量提升丨定位问题解决方案(错误码11)
31 0