1. 快应用技术架构
快应用介绍及其特点
2018 年3月华为与小米,Oppo,Vivo 等9家手机厂商,联合发布快应用联盟标准。快应用是一种基于手机硬件平台的新型应用形态,无需安装,即点即用,又兼具原生应用体验(性能、系统整合、交互等)。同时,快应用在诞生之初就在开发规范、能力接入、开发者服务等层面实现了手机厂商间的标准化统一,极大的降低开发者的适配成本。
与传统应用相比,快应用具备如下特点:
Instant:即点即用,用户无需等待Everywhere:与手机的使用场景深度整合,入口无处不在(搜索,智能助手,智能推荐,应用市场,浏览器 ……)Efficient:准前端的开发方式,效率高
华为快应用引擎架构简介
上图是快应用的总体框架示意图。最上面是应用形态以及场景入口,中间是快应用引擎,底下是OS(操作系统) 的基础设施及其硬件。从执行路径层面,有标准的HTML5 方式支撑通用的Web 场景(一般通过系统的Webview 组件或定制的Webview), 以及 JS(JavaScript)+Native 的方式,支撑更轻量、更快速的体验。 下面将按3 个层面方面简要介绍快应用引擎的架构。
应用开发(前端框架 + 组件 & API 能力)
快应用的前端设计借鉴并整合了主流前端框架(Vue,React 等)的设计思路:以组件化的方式构建应用,以数据绑定为核心的MVVM 设计模式,以V-DOM 的方式提升性能,同时选择了简洁清晰的类Vue 的模板。同时对布局方面做了相应精简。从新的应用形态、映射原生UI、能力开放的角度,需要定义一套组件与API 规范,方便开发这快速开发应用。
系统整合(应用管理,卡片- 嵌入式SDK,安全机制等等)
快应用作为完整的应用形态,可以与系统深入整合,如同原生应用一样运行,以及和系统交互。快应用目前有两种形态:全屏方式的独立应用形态与嵌入方式的卡片形态。在独立应用的形态下,给用户的体验就像原生的应用程序,有完整的生命周期管理,页面管理,路由等。快应用可以寄生于安卓的Activity,页面寄生于Fragment,并通过独立的后台Service 进行实例的管控。卡片则是另外一种形态,通过嵌入式SDK 作为一个独立的局部控件嵌入到系统的各个角落,轻量化的展现动态内容。在安全隔离方面,可通过沙