HarmonyOS鸿蒙Next中应用静态资源很多,分模块后,如何方便使用静态资源且包体积不会变大

HarmonyOS鸿蒙Next中应用静态资源很多,分模块后,如何方便使用静态资源且包体积不会变大 原Android项目包体积178M, 鸿蒙开发过程中,静态资源需要重复使用, 使用HSP包的话,需要手动暴露静态资源, 使用Har的包,每个引用的模块都会加载har包的资源,包体积会增大,如何使用比较好, HSP中的资源能否也能通过$获取,或者怎么可以是资源文件就保存一份

2 回复

包的选择:

HAR:HAR是静态共享包,可以包含代码、C++库、资源和配置文件,只能作为应用模块的依赖项被引用。打包构建时,HAR的编译产物会被放入HAP中,作为HAP的一部分。当HAR在项目中有被多个模块使用方时,使用它的HAP中都拥有一份相同的HAR编译产物。

HSP:HSP是动态共享包,可以包含代码、C++库、资源和配置文件,作为应用模块的依赖项被引用。相较与HAR,HSP中的代码和资源可以独立编译,运行时与应用在同一个进程中,代码只存在一份。应用安装时HSP将会随HAP依次安装至设备中。

详情请参考: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-package-structure-stage-V5

HSP中资源的引用:

通过导出HSP中资源的方式,参考文档: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/in-app-hsp-V5#开发

更多关于HarmonyOS鸿蒙Next中应用静态资源很多,分模块后,如何方便使用静态资源且包体积不会变大的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,应用静态资源较多时,可以采用分模块的方式管理资源,同时通过资源索引和动态加载技术来优化包体积。具体方法如下:

  1. 资源索引:使用资源索引表(如resources.index)来统一管理所有模块的静态资源。通过索引表,可以快速定位和加载所需资源,避免重复打包相同资源。

  2. 动态加载:将静态资源按模块拆分,每个模块的资源独立打包。在应用运行时,按需动态加载模块资源,减少初始包的体积。

  3. 资源压缩:对静态资源进行压缩处理,如图片使用WebP格式,音频和视频使用高效编码格式,进一步减小资源文件大小。

  4. 资源混淆:对资源文件名进行混淆处理,减少资源文件名的长度,从而减小资源索引表的大小。

通过上述方法,可以在分模块管理静态资源的同时,有效控制应用包体积,提升资源使用效率。

回到顶部