当前位置: 首页 > 科技观察

鸿蒙鸿蒙HarmonyOS应用框架揭秘【带学习福利】

时间:2023-03-22 16:38:45 科技观察

更多信息请访问:https://harmonyos.51cto.com,与华为官方共同打造的鸿蒙技术社区在鸿蒙分布式开发中,应用框架是应用程序开发的基础设施。随着越来越多的设备变得智能化,应用开发在多设备场景下面临以下挑战:1.多设备的不同形态。多样化的屏幕适配——包括不同尺寸、不同分辨率、不同形状、横屏、竖屏、折叠屏等;多种交互方式——包括语音、触摸、旋钮、键盘、笔、3D手势等。2.多种设备的能力差异。内存从100KB到GB,主频从100M到G。开发范式,加上可扩展的运行时设计,简化了应用程序在不同设备上的部署。如下图:一个典型的HarmonyOS应用部署的整体视图如下:一个HarmonyOS应用包以APPPack(应用程序包)的形式发布,由一个或多个HAP(HarmonyOSAbilityPackage)组成。通过云端部署,根据设备的形态,在终端侧下载并执行相应的HAP。应用框架主要由三部分组成:1.能力——应用的基本单元。无需安装即可安装,跨设备调用2.用户程序框架-包管理/能力管理/分布式管理3.UI编程框架-应用用户界面注:从应用开发的角度来看,各种Kit能力(如网络/数据等设备访问能力),这块这里不展开。与传统的单设备场景不同,在HarmonyOS中,应用框架深度结合了跨设备能力。能力作为基本运行单元,结合底层分布式基础设施,无需安装即可跨设备调度运行。Ability的定义如下:Ability的分布式调用、状态迁移/同步示例如下。通过相应的分布式API设计,简化跨设备应用开发。用户程序框架的架构视图和执行视图如下。这里的Ability/Package管理机制会结合DMS(DistributedManagementService),可以发现和管理连接设备中的Ability,并进行相应的统一调度,方便不同应用在不同设备上的运行。除了上述的Ablilty/用户程序管理,另一个重要的部分就是UI编程框架——ACE(AbilityCross-platformEnvironment),支持主流语言生态——Java&JS(JavaScript)。其中,ACEJava提供了相对细粒度的UI编程接口,并以命令式方式驱动;ACEJS是比较高级的UI描述,以声明方式驱动。如下图所示:ACEJS提供了统一的跨平台解决方案。核心设计思路:1.在开发范式上,借鉴主流的Web前端框架设计,降低开发成本2.在运行效率上,在C++层设计上实现统一的声明式UI后端,结合并行渲染、预编译等高性能渲染机制。在富设备(如大屏/手机等)上,一些典型场景(如长列表渲染等)可以实现秒开应用、全帧滑动的体验。3、在跨平台方面,实现了独立的自绘引擎。可轻松移植到不同平台,结合自适应布局和多态UI组件能力,实现实时跨终端一致渲染体验(PC端UI渲染路径与设备端一致),并且可以在PC上同时执行多个渲染。设备呈现不同。ACEJS中的主要模块(前端框架、JS引擎、渲染后端实现等)都是可扩展的,同时也具备运行在极小设备(比如100K级别内存的设备)上的能力),基于统一的开发范式。如下图:HarmonyOS的应用框架主要围绕多设备、跨设备场景进行设计和实现。设备/跨设备场景中的应用程序开发。更多信息请访问:Harmonyos.51cto.com,与华为官方合作打造的鸿蒙技术社区