开发动态共享包
=======

DevEco Studio支持开发动态共享包[HSP（Harmony Shared Package）](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/in-app-hsp)。在应用/元服务开发过程中部分功能按需动态下载，或开发元服务场景时需要分包加载，可使用HSP实现相应功能。当有多个安装包需要资源共享时，也可利用HSP减少公共资源和代码重复打包。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/18/v3/OZ9t23DRRoW6RgddY5xrUQ/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073818Z&HW-CC-Expire=86400&HW-CC-Sign=7876F3777331CDEA3A011BBD913A7E04EE174D5ACF5E0E2F2FD1FC5019151280)

*   应用内HSP：在编译过程中与应用包名（bundleName）强耦合，只能给某个特定的应用使用。
*   集成态HSP：构建、发布过程中，不与特定的应用包名耦合；使用时，工具链支持自动将集成态HSP的包名替换成宿主应用包名。

#### 使用约束

*   HSP及其使用方都必须是API 10及以上版本Stage模型。
*   HSP及其使用方都必须使用[模块化编译](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-hvigor-esmodule-compile)模式。
*   从DevEco Studio 6.0.1 Beta1开始，创建HSP模块时支持选择C++版本。

#### 创建HSP模块

1.  通过如下两种方法，在工程中添加新的Module。
    
    *   方法1：鼠标移到工程目录顶部，单击鼠标右键，选择**New > Module**，开始创建新的Module。
    *   方法2：选中工程目录中任意文件，然后在菜单栏选择**File > New > Module**，开始创建新的Module。
    
2.  模板类型选择**Shared Library**，点击**Next**。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/1a/v3/kE31mvDiQ5OLsggJWwScUA/zh-cn_image_0000002594474500.png?HW-CC-KV=V1&HW-CC-Date=20260612T073818Z&HW-CC-Expire=86400&HW-CC-Sign=2050E86220AC7D52DA13713F912DFC0011621CC29D807799DAABAABE604F79CC)
    
3.  在**Configure New Module**界面中，设置新添加的模块信息，设置完成后，单击**Finish**完成创建。
    
    *   **Module name**：新增模块的名称，如设置为library。
    *   **Device type**：支持的设备类型。
    *   **Enable native**：是否创建一个用于调用C++代码的模块。
    *   **C++ Standard：**C++标准库，取值包括：Toolchain Default、C++11、C++14。仅打开Enable native时需要配置。从DevEco Studio 6.0.1 Beta1开始支持。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/b5/v3/bl9hcHpEQr-hGsarQtouqQ/zh-cn_image_0000002625074005.png?HW-CC-KV=V1&HW-CC-Date=20260612T073818Z&HW-CC-Expire=86400&HW-CC-Sign=AB71C6265DE8A646B0731A23C42E926BBB51C09C5710AF6498A3F33344B7A361)
    
    创建完成后，会在工程目录中生成HSP模块及相关文件。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/7d/v3/K2Ipuj78RSyVSGnE6kT_7g/zh-cn_image_0000002625073997.png?HW-CC-KV=V1&HW-CC-Date=20260612T073818Z&HW-CC-Expire=86400&HW-CC-Sign=1EFB7C3FFC08ACBDE8D0B9C53659DBB7CF06D05B8C517BFBD04DA331ADED2DDA)
    

#### 编译HSP模块

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/44/v3/7PheBVoeRfCsDURuF2Ha0w/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073818Z&HW-CC-Expire=86400&HW-CC-Sign=288CADF21A2C14563000382E9CC97323D4051D6CB544820D436C47B59C5FB8A9)

如果HSP未开启[混淆](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-build-obfuscation)，则后续HSP被集成使用时，将不会再对HSP包进行混淆。

参考[应用内HSP开发指导](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/in-app-hsp)开发完HSP模块后，选中模块名，然后通过DevEco Studio菜单栏的**Build > Make Module ${libraryName}**进行编译构建，生成HSP。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/65/v3/K08g_awzQsqqqb9uz9Azbg/zh-cn_image_0000002594634420.png?HW-CC-KV=V1&HW-CC-Date=20260612T073818Z&HW-CC-Expire=86400&HW-CC-Sign=74637A594ABE719CDD16947620794EE410659EB00C22A46A9870E0DAB08D4310)

打包HSP时，会同时默认打包出HAR，在模块下build目录下可以看到\*.har和\*.hsp。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/b1/v3/6FLgZ38KRmqXAQh0h0lh5Q/zh-cn_image_0000002624993859.png?HW-CC-KV=V1&HW-CC-Date=20260612T073818Z&HW-CC-Expire=86400&HW-CC-Sign=DE6172823387ECD69A4F809CFABED64B4E238010B07E64D67862ADF173CC7D86)

如需在应用内共享HSP，请将HSP共享包上传至私仓（请参考[将三方库发布到 ohpm-repo](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-ohpm-repo-quickstart#zh-cn_topic_0000001792256157_从ohpm-repo获取三方库)），请先按以下操作编译生成\*.tgz包。

1.  点击工具栏![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/b9/v3/EBXJhwjcRuKnkiPU5udKOA/zh-cn_image_0000002594474498.png?HW-CC-KV=V1&HW-CC-Date=20260612T073818Z&HW-CC-Expire=86400&HW-CC-Sign=2054976034C7D0BEAEE019A52220095FD50926DF0CE2B02139EC30A0938EC389)图标将编译模式切换成release模式。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/af/v3/kQ0TI3xwQfOQzWAqI9iRbA/zh-cn_image_0000002594474504.png?HW-CC-KV=V1&HW-CC-Date=20260612T073818Z&HW-CC-Expire=86400&HW-CC-Sign=27A3395093198B0730CE41D32AD6CDCEB13FDAC0DC2D965F4DDDF992A4FC201F)
    
2.  选中HSP模块的根目录，点击**Build > Make Module ${libraryName}**启动构建。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/58/v3/0TEEJ-A_ScSaGquF0oeYJQ/zh-cn_image_0000002624993869.png?HW-CC-KV=V1&HW-CC-Date=20260612T073818Z&HW-CC-Expire=86400&HW-CC-Sign=4FAECDD00342B80739BBD654019A00851B54BA9EA8201C993BD9C3E1C1B543A3)
    
    构建完成后，build目录下生成HSP包产物，其中.tgz用来上传至私仓。
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/92/v3/DbKXWDkDSfe7QUHArCeWUQ/zh-cn_image_0000002594634416.png?HW-CC-KV=V1&HW-CC-Date=20260612T073818Z&HW-CC-Expire=86400&HW-CC-Sign=FF073B4FA1CA66328BFD250257AB96582A636B6CED779C37FACC5DE853178DA3)