简介
用户应用程序泛指运行在设备的操作系统之上,为用户提供特定服务的程序,简称“应用”。一个应用所对应的软件包文件,称为“应用程序包”。
OpenHarmony 提供了应用程序包开发、安装、查询、更新、卸载的管理机制,方便开发者开发和管理 OpenHarmony 应用,具体如下:
- 应用软件所涉及的文件多种多样,开发者可通过 OpenHarmony 提供的集成开发工具将其开发的可执行代码、资源、三方库等文件整合到一起制作成 OpenHarmony 应用程序包,便于开发者对应用程序的部署。
- 应用软件所涉及的设备类型多种多样,开发者可通过 OpenHarmony 提供的应用程序包配置文件指定其应用程序包的分发设备类型,便于应用市场对应用程序包的分发管理。
- 应用软件所包含的功能多种多样,将不同的功能特性按模块来划分和管理是一种良好的设计方式。OpenHarmony 提供了同一应用程序的多包管理的机制,开发者可以将不同的功能特性聚合到不同的包中,方便后续的维护与扩展。
- 应用软件涉及的芯片平台多种多样,有 x86、ARM 等,还有 32 位、64 位之分,OpenHarmony 为应用程序包屏蔽了芯片平台的差异,使应用程序包在不同的芯片平台都能够安装运行。
- 应用软件涉及的软件信息多种多样,有应用版本、应用名称、组件、申请权限等的信息,OpenHarmony 包管理为开发者提供了这些信息的查询接口,方便开发者在程序中查询所需要的包信息。
- 应用软件涉及的资源多种多样,有媒体资源、原生资源、字符资源以及国际化的资源等,OpenHarmony 包管理将不同的资源归档到不同的目录中,并集成资源索引文件,方便应用对资源的查找和使用。
hap 包的概念
HAP(Harmony Ability Package)是 OpenHarmony 应用安装的基本单位,包含了编译后的代码、资源、三方库及配置文件。HAP 可分为 Entry 和 Feature 两种类型:
- Entry 类型的 HAP:是应用的主模块,在 module.json5 配置文件中的 type 标签配置为“entry”类型。在同一个应用中,同一设备类型只支持一个 Entry 类型的 HAP,通常用于实现应用的入口界面、入口图标、主特性功能等。
- Feature 类型的 HAP:是应用的动态特性模块,在 module.json5 配置文件中的 type 标签配置为“feature”类型。一个应用程序包可以包含一个或多个 Feature 类型的 HAP,也可以不包含;Feature 类型的 HAP 通常用于实现应用的特性功能,可以配置成按需下载安装,也可以配置成随 Entry 类型的 HAP 一起下载安装(请参见 module 对象内部结构中的“deliveryWithInstall”)。
每个 OpenHarmony 应用可以包含多个.hap 文件,一个应用中的.hap 文件合在一起称为一个 Bundle,而 bundleName 就是应用的唯一标识(请参见 app.json5 配置文件中的 bundleName 标签)。需要特别说明的是:在应用上架到应用市场时,需要把应用包含的所有.hap 文件(即 Bundle)打包为一个.app 后缀的文件用于上架,这个.app 文件称为 App Pack(Application Package),其中同时包含了描述 App Pack 属性的 pack.info 文件;在云端分发和端侧安装时,都是以 HAP 为单位进行分发和安装的。
hap 包开发调试与发布部署
开发
开发者通过 DevEco Studio 工具按照业务的需要创建多个 Module,在相应的 Module 中完成自身业务的开发。
调试
通过 DevEco Studio 编译打包,生成单个或者多个 HAP。真机基于 HAP 进行安装、卸载调试,调试指南可参考应用程序包调试方法,其中包括了单 HAP 与多 HAP 通过 DevEco Studio 工具的安装调试方法。
应用程序包也可以通过 hdc_std 工具(可通过 OpenHarmony SDK 获取,在 SDK 的 toolchains 目录下)进行安装、更新与卸载,通过 hdc_std 安装 HAP 时,HAP 的路径为开发平台上的文件路径,以 Windows 开发平台为例,命令参考如下:
hdc_std install C:\entry.hap C:\feature.hap ## 安装、更新,多HAP可以指定多个文件路径
install bundle successfully. ## 执行结果
hdc_std uninstall com.example.myapplication ## 卸载
uninstall bundle successfully. ## 执行结果
应用程序包也可以通过 bm 工具进行调试。通过 bm 工具进行安装、更新 HAP 时,传入的文件路径为真机上的文件路径,命令参考如下:
bm install -p /data/app/entry.hap /data/app/feature.hap ## 安装、更新,多HAP可以指定多个文件路径
install bundle successfully. ## 执行结果
bm uninstall -n com.example.myapplication ## 卸载
uninstall bundle successfully. ## 执行结果
发布
当开发的程序包满足发布要求时,可以在工具中打包编译生成 App 包。将该 App 包上架到应用市场云端,应用市场会对上架的 App 包校验签名,校验签名通过后会将 App 包中的 HAP 拆分出来,同时对拆分出的 HAP 重新添加签名,然后对 HAP 进行分发。
部署
用户在设备上的应用市场客户端能够看到各种各样的应用,这些应用均由云端分发而来,有些是多 HAP 应用,有些是单 HAP 应用。用户选择某个应用后,应用市场将下载应用包含的全部 HAP。
应用在终端设备上的安装
下载完成后,应用市场客户端再调用系统中包管理服务的安装接口安装下载的 HAP,包管理服务以应用为单位将其中所有 HAP 部署到指定目录下,以完成应用的安装。
参考文档
- OpenHarmony 应用开发
- OpenHarmony 知识体系
为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05
《鸿蒙开发学习手册》:
如何快速入门:https://qr21.cn/FV7h05
- 基本概念
- 构建第一个ArkTS应用
- ……
开发基础知识:https://qr21.cn/FV7h05
- 应用基础知识
- 配置文件
- 应用数据管理
- 应用安全管理
- 应用隐私保护
- 三方应用调用管控机制
- 资源分类与访问
- 学习ArkTS语言
- ……
基于ArkTS 开发:https://qr21.cn/FV7h05
- Ability开发
- UI开发
- 公共事件与通知
- 窗口管理
- 媒体
- 安全
- 网络与链接
- 电话服务
- 数据管理
- 后台任务(Background Task)管理
- 设备管理
- 设备使用信息统计
- DFX
- 国际化开发
- 折叠屏系列
- ……
鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH
鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH
1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向