一、HAP(Harmony Ability Package)
是什么:可以理解为鸿蒙APP的安装包(类似安卓的APK)
大白话解释:
-
每个鸿蒙APP至少包含1个HAP包
-
分两种类型:
-
Entry HAP:主安装包(好比手机的微信安装包)
-
Feature HAP:动态功能包(好比微信里的小程序,用的时候才下载)
-
特殊能力:支持动态部署(不用重装APP,随时添加新功能)
举个栗子🌰:
你装了抖音APP(Entry HAP),后来发现还能单独下载「直播带货」功能(Feature HAP),这就是动态部署。
二、HAR(Harmony Archive)
是什么:静态共享包(类似代码工具包)
大白话解释:
-
存放重复使用的代码(比如:登录模块、支付模块)
-
开发时直接拷贝代码到APP里
-
缺点:更新需要重新打包APP
举个栗子🌰:
你写了个「图片压缩工具包」(HAR),所有APP要使用时都会把这个工具包的代码完整复制进去。
三、HSP(Harmony Shared Package)
是什么:动态共享包(高级版工具包)
大白话解释:
-
代码可以被多个APP共享
-
分两种类型:
-
同设备HSP:同一台设备上的APP共用(如手机里的多个APP共用美颜模块)
-
跨设备HSP:不同设备共享(如手机、手表共用计步模块)
-
特殊能力:运行时动态加载,多个APP共用一个代码包
举个栗子🌰:
手机里的抖音和快手都用了同一套「人脸识别HSP」,这个模块只存一份在手机里,两个APP共用。
四、对比总结表
HAP(安装包) | HAR(静态包) | HSP(动态包) | |
---|---|---|---|
用途 | 直接安装使用 | 代码复用 | 跨APP共享代码 |
更新 | 动态部署 | 需重新打包 | 独立更新 |
体积 | 较大 | 增加包体积 | 节省存储空间 |
场景 | 主程序/功能 | 通用工具类 | 多APP共用模块 |
五、实际开发场景
-
开发短视频APP:
-
用HAR封装「视频剪辑工具」
-
用HSP提供「美颜滤镜模块」(手机/平板/手表都能用)
-
主APP是Entry HAP
-
直播功能做成Feature HAP(用户需要时才下载)
-
-
企业开发:
-
把公司统一的「用户登录系统」做成HSP
-
所有业务线APP共用这一个登录模块
-
修改登录逻辑时,只需要更新HSP包
-
六、为什么这样设计?
-
减少安装包体积:功能模块按需加载
-
提升开发效率:公共模块一次开发多次使用
-
实现生态共享:不同APP可以共用基础能力
-
支持多设备:一套代码适配手机/平板/智能家居
这样设计后,鸿蒙应用就像乐高积木——核心功能是基础块(Entry HAP),各种扩展功能(Feature HAP)可以灵活拼装,公共模块(HSP/HAR)就是通用的连接件,让整个系统既轻量化又高度灵活。