本文同步发表于我的微信公众号,微信搜索 程语新视界 即可关注,每个工作日都有文章更新
一、应用程序包基础概念
-
HAP(Harmony Ability Package) 鸿蒙应用的核心模块,包含代码、资源、配置等,分为Entry HAP(主模块)和Feature HAP(功能模块)。
示例:
entry/src/main/
├── ets/ # ArkTS代码
├── resources/ # 资源文件
└── module.json5 # 模块配置文件
每个HAP可独立编译、运行,支持动态加载。
2.HAR(Harmony Archive)静态共享包,用于封装公共代码或资源,编译时被主模块引用。
特点:
- 不包含Ability,仅提供工具类、UI组件等共享内容。
- 依赖方式:
dependencies { har 'path/to/library.har' }
。
3.HSP(Harmony Shared Package)动态共享包,运行时按需加载,适用于跨应用复用代码。
与HAR区别: HSP需声明为sharedLibrary: true
,支持热更新。
二、开发模型与配置文件
-
Stage模型(主推)
- 核心概念:
- AbilityStage:管理Ability生命周期容器。
- WindowStage:管理窗口状态,如全屏/分屏。
- 优势:模块化更强,支持多设备协同 。
示例配置文件(module.json5):
- 核心概念:
{
"module": {
"name": "entry",
"type": "entry",
"abilities": [{
"name": "MainAbility",
"srcEntry": "./ets/MainAbility/MainAbility.ts",
"launchType": "standard"
}]
}
}
2.FA模型(旧版)适用于简单应用,通过config.json
配置Ability,已逐渐被Stage模型替代 。
三、应用发布与调试
-
打包签名
- 使用DevEco Studio生成App Pack(.app),需配置证书和Profile文件。
- 命令行工具:
hvigor assembleHap --mode release
2.动态调试
日志查看:通过hilog
模块输出日志:
import hilog from '@ohos.hilog';
hilog.info(0x0000, 'TAG', '调试信息');
远程调试:使用hdc
工具连接设备
四、模块化开发实践
-
多HAP协同
- 跨模块调用:通过
FeatureAbility
启动其他HAP的Ability:
- 跨模块调用:通过
let want = {
deviceId: '',
bundleName: 'com.example.feature',
abilityName: 'FeatureAbility'
};
featureAbility.startAbility(want);
2.HSP动态加载
import sharedLibrary from '@ohos.sharedLibrary';
sharedLibrary.load('com.example.shared', (err, data) => {
if (!err) data.invokeMethod('init');
});