鸿蒙OS 共享包
在HarmonyOS应用开发中,共享代码和资源是提升开发效率、减小应用体积的重要手段。HarmonyOS提供了两种共享包机制:HAR
和HSP
,它们分别适用于不同的场景。
HAR(Harmony Archive):静态共享
HAR就像一个“工具箱”,开发者可以将常用的代码、资源、配置文件等放入其中,供其他模块或工程使用。
- 优点: 简化代码和资源复用,便于模块化开发。
- 缺点: HAR中的代码和资源会跟随使用方一起编译打包,导致应用包体积增大。如果多个模块引用同一个HAR,最终应用中会包含多份相同的代码和资源。
HSP(Harmony Shared Package):动态共享
HSP则是HarmonyOS为解决HAR的不足而推出的“秘密武器”。 它允许代码和资源独立编译,并在运行时动态加载,从而有效减小应用体积。
- 优点:
- 多个HAP引用相同的HSP,HSP的代码只会在运行时加载一份,有效减小应用包体积。
- HSP中的状态变量可以在不同HAP之间共享。
- 缺点:
- HSP及其使用方都必须是Stage模型,且使用esmodule编译模式。
- HSP不支持声明abilities、extensionAbilities标签,功能上有一定的限制。
HSP的应用场景:应用内代码和资源共享
目前,HarmonyOS主要支持应用内HSP,即HSP只能被同一应用内的其他HAP/HSP使用,用于应用内部的代码和资源共享。
总结
HAR和HSP都是HarmonyOS中重要的代码和资源共享机制,它们各有优缺点,适用于不同的场景。
- HAR适用于: 代码和资源复用场景,对应用包体积不敏感的场景。
- HSP适用于: 多个模块共享相同代码和资源,对应用包体积敏感的场景,以及需要共享状态变量的场景。