在基于 Stage 模型开发应用之前,开发者需要了解应用的设计机制、应用程序包结构等基础知识。
应用与应用程序包#
用户应用程序泛指运行在设备的操作系统之上,为用户提供特定服务的程序,简称 “应用”。一个应用所对应的软件包文件,称为 “应用程序包”。
当前系统提供了应用程序包开发、安装、查询、更新、卸载的管理机制,便于开发者开发和管理应用。同时,系统还屏蔽了不同的芯片平台的差异(包括 x86/ARM,32 位 / 64 位等),应用程序包在不同的芯片平台都能够安装运行,这使得开发者可以聚焦于应用的功能实现。
应用的多 Module 设计机制#
-
支持模块化开发: 一个应用通常会包含多种功能,将不同的功能特性按模块来划分和管理是一种良好的设计方式。在开发过程中,我们可以将每个功能模块作为一个独立的 Module 进行开发,Module 中可以包含源代码、资源文件、第三方库、配置文件等,每一个 Module 可以独立编译,实现特定的功能。这种模块化、松耦合的应用管理方式有助于应用的开发、维护与扩展。
-
支持多设备适配: 一个应用往往需要适配多种设备类型,在采用多 Module 设计的应用中,每个 Module 都会标注所支持的设备类型。有些 Module 支持全部类型的设备,有些 Module 只支持某一种或几种型的设备(比如平板),那么在应用市场分发应用包时,也能够根据设备类型做精准的筛选和匹配,从而将不同的包合理的组合和部署到对应的设备上。
Module 类型#
Module 按照使用场景可以分为两种类型:
-
Ability 类型的 Module: 用于实现应用的功能和特性。每一个 Ability 类型的 Module 编译后,会生成一个以.hap 为后缀的文件,我们称其为 HAP(Harmony Ability Package)包。HAP 包可以独立安装和运行,是应用安装的基本单位,一个应用中可以包含一个或多个 HAP 包,具体包含如下两种类型。
- entry 类型的 Module:应用的主模块,包含应用的入口界面、入口图标和主功能特性,编译后生成 entry 类型的 HAP。每一个应用分发到同一类型的设备上的应用程序包,只能包含唯一一个 entry 类型的 HAP。
- feature 类型的 Module:应用的动态特性模块,编译后生成 feature 类型的 HAP。一个应用中可以包含一个或多个 feature 类型的 HAP,也可以不包含。
-
Library 类型的 Module: 用于实现代码和资源的共享。同一个 Library 类型的 Module 可以被其他的 Module 多次引用,合理地使用该类型的 Module,能够降低开发和维护成本。Library 类型的 Module 分为 Static 和 Shared 两种类型,编译后会生成共享包。
- Static Library:静态共享库。编译后会生成一个以.har 为后缀的文件,即静态共享包 HAR(Harmony Archive)。
- Shared Library:动态共享库。编译后会生成一个以.hsp 为后缀的文件,即动态共享包 HSP(Harmony Shared Package)。
ArkUI 方舟 ui#
ArkUI(方舟 UI 框架)为应用的 UI 开发提供了完整的基础设施,包括简洁的 UI 语法、丰富的 UI 功能(组件、布局、动画以及交互事件),以及实时界面预览工具等,可以支持开发者进行可视化界面开发。
基本概念#
-
UI: 即用户界面。开发者可以将应用的用户界面设计为多个功能页面,每个页面进行单独的文件管理,并通过页面路由 API 完成页面间的调度管理如跳转、回退等操作,以实现应用内的功能解耦。
-
组件: UI 构建与显示的最小单位,如列表、网格、按钮、单选框、进度条、文本等。开发者通过多种组件的组合,构建出满足自身应用诉求的完整界面。
两种开发范式#
-
声明式开发范式:采用基于 TypeScript 声明式 UI 语法扩展而来的 ArkTS 语言,从组件、动画和状态管理三个维度提供 UI 绘制能力。
-
类 Web 开发范式:采用经典的 HML、CSS、JavaScript 三段式开发方式,即使用 HML 标签文件搭建布局、使用 CSS 文件描述样式、使用 JavaScript 文件处理逻辑。该范式更符合于 Web 前端开发者的使用习惯,便于快速将已有的 Web 应用改造成方舟 UI 框架应用。
基于 ArkTS 的声明式开发范式的方舟开发框架是一套开发极简、高性能、支持跨设备的 UI 开发框架,提供了构建应用 UI 所必需的能力,主要包括:
此文由 Mix Space 同步更新至 xLog
原始链接为 http://www.sroxck.top/posts/harmony/arkui