HarmonyOS 鸿蒙Next 三方库引入都是har包形式,如果多feature引用是否会导致包越来越大?
HarmonyOS 鸿蒙Next 三方库引入都是har包形式,如果多feature引用是否会导致包越来越大?
HAR中的代码和资源跟随使用方编译,如果有多个使用方,它们的编译产物中会存在多份相同拷贝;而HSP中的代码和资源可以独立编译,运行时在一个进程中代码也只会存在一份。所以如果当前工程是单hap,har就不会复制多份,如果是多hap结构才建议用hsp
一般用一个hsp依赖所有的har,对外提供接口
在HarmonyOS鸿蒙Next中,若多个feature以har包形式引入同一个三方库,确实可能导致应用包体积增大。HAR(HarmonyOS Archive)是静态共享包,其中的代码和资源会跟随使用方编译。当多个feature或多个HAP(HarmonyOS Application Package)引用同一个HAR包时,每个使用方都会在编译产物中包含该HAR包的拷贝,从而导致冗余和包体积膨胀。
为解决这一问题,建议使用HSP(HarmonyOS Shared Package)替代HAR。HSP是动态共享包,其代码和资源可以独立编译,并在运行时共享。这意味着多个HAP或feature可以共享同一个HSP包,而无需在每个编译产物中都包含该包的拷贝,从而有效减小应用包大小。
如果已确定使用HAR包且遇到包体积问题,可检查是否存在依赖路径错误、版本不一致或依赖冲突等问题,并进行相应修正。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。