在 HarmonyOS分布式开发中,应用程序框架是基础设施。随着越来越多设备的智能化,在多设备场景下,应用开发面临以下挑战。
图片来自 Pexels
多样化的屏幕适配:包括不同大小,不同分辨率,不同形状,横屏、竖屏、折叠屏等;多样化的交互方式 – 包括语音、触摸、旋钮、键盘、笔、3D 手势等。
内存从百 KB级到 GB级,主频从百 M级到 G级等 HarmonyOS 的解决策略主要是通过 UI 信息结构抽象以及交互事件归一来简化多设备的形态差异下应用开发。
同时通过统一的开发范式,协同可伸缩的运行时设计,简化应用在不同设备上部署。
如下所示:
典型的 HarmonyOS应用部署运行总体视图如下:
一个 HarmonyOS应用包以 APP Pack(Application Package)形式发布,它是由一个或多个 HAP(HarmonyOS Ability Package)。通过云侧部署,最终根据设备的形态会下载相应的 HAP 在端侧执行。
应用程序框架主要包含三个部分:
注:从应用开发角度,还需要各种 Kit 的能力(比如网络/数据等设备访问能力),这块不在这里展开。
和传统的单设备场景下不同,HarmonyOS 中,应用程序框架深度结合了跨设备的能力。
Ability 作为基础的运行单元, 结合底层分布式的基础设施,可以跨设备免安装调度和运行。
Ability 的分布式调用, 状态迁移/同步示例如下。通过相应的分布式 API 设计,简化跨设备的应用开发。
用户程序框架的架构视图和运行视图如下。这里的 Ability/包管理机制中会结合 DMS(分布式管理服务
)
,相连设备中 Ability 可以被发现和管理,进行相应的统一调度,方便不同应用在不同设备上运行。
其中 ACE JS 提供了一种统一的跨平台解决方案。核心设计思路:
-
开发范式方面,
借鉴主流的 Web 前端框架设计,降低开发成本。
-
在运行效率方面,
在 C++ 层设计实现了统一的声明式UI后端,结合并行化渲染,预编译等机制实现了高性能渲染。在富设备上(比如大屏/手机等),一些典型场景(比如长列表渲染等)可以达到应用秒开,以及滑动满帧的体验。
-
在跨平台方面,
实现了独立的自绘制引擎,能够方便的移植到不同平台,结合自适应布局以及多态 UI 组件能力,实现了实时的跨端的一致性渲染体验 (PC 上的 UI 渲染路径和设备上一致),并能够在 PC 上同时进行多设备以不同方式渲染。
在 ACE JS 中,主要模块(前端框架,JS 引擎,以及渲染后端实现等)是可伸缩设计的,它也具备运行在极小的设备上的能力(比如百 K级内存的设备),并基于统一的开发范式。
HarmonyOS 的应用程序框架主要围绕多设备,跨设备的场景重点设计和实现了应用的基础单元,应用和包管理,UI 编程框架,并结合相应的底层分布式基础设施进一步简化了多设备/跨设备场景下的应用开发。
10 月 22 日(本周四)晚 7 点,
关于 HarmonyOS分布式应用开发,我们邀请到 HarmonyOS应用开发平台架构师
Stanley 老师
和 HarmonyOS应用开发平台技术专家
Kyle 老师
为我们带来主题直播
《如何快速上手HarmonyOS分布式应用开发》
,来为大家讲解 HUAWEI DevEco 简介、HarmonyOS应用开发平台介绍及分布式应用开发实例演示等内容,直播过程中更有机会获得
官方T恤
和
鸿蒙开发板
等礼品。
10 月 28 日晚 8 点
,唐佐林老师将给我们带来
《轻松掌握鸿蒙开发板外设控制》
直播公开课。