• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 集成态HSP
2<!--Kit: Ability Kit-->
3<!--Subsystem: BundleManager-->
4<!--Owner: @wanghang904-->
5<!--Designer: @hanfeng6-->
6<!--Tester: @kongjing2-->
7<!--Adviser: @Brilliantry_Rui-->
8
9集成态HSP是应用内HSP的中间编译产物,用于解决使用方的bundleName和签名之间的强耦合问题。
10> **说明:**
11>
12> HSP只能给bundleName一样的工程使用,集成态HSP可以给不同的bundleName的工程集成使用。
13>
14> 使用方使用集成态HSP时,需要采用使用方的签名文件对集成态HSP重新签名,且需要优先安装重新签名后的集成态HSP。
15
16## 使用场景
17集团内部有多个应用,多个应用中都有一个相同的动态共享包。为了节约开发成本并实现代码和资源的共享,多个应用可以共用一个基建HSP(集成态HSP)。
18
19## 约束限制
20- 集成态HSP只支持[Stage模型](application-package-structure-stage.md)。
21- 集成态HSP需要API12及以上版本,需要在工程级的[build-profile.json5文件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-hvigor-build-profile-app)中,将useNormalizedOHMUrl字段设置为true。
22
23## 开发使用说明
241. 创建方-集成态HSP-工程配置:配置工程级的build-profile.json5文件,将useNormalizedOHMUrl字段设置为true。
25
26    ```json
27    // created_party_project/build-profile.json5
28    {
29      "app": {
30        "products": [
31          {
32            "name": "default",
33            "signingConfig": "default",
34            "compatibleSdkVersion": "5.0.0(12)",
35            "runtimeOS": "HarmonyOS",
36            "buildOption": {
37              "strictMode": {
38                "useNormalizedOHMUrl": true
39              }
40            }
41            // ...
42          }
43        ]
44        // ...
45      }
46    }
47    ```
482. 创建方-集成态HSP-模块配置:修改模块级构建配置文件[build-profile.json5](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-hvigor-build-profile),将integratedHsp配置项设置为true,指定构建的HSP模块为集成态HSP。
49
50    ```json
51    // created_party_project/library/build-profile.json5
52    {
53      "apiType": "stageMode",
54      "buildOption": {
55        "arkOptions": {
56          "integratedHsp": true
57        }
58      }
59    }
60    ```
61
623. 创建方-集成态HSP-打包配置(tgz包)。
63
64    (1) 配置项目签名信息,详情请参见[应用/元服务签名](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-signing)65
66    (2) 配置release模式。
67
68    ![](./figures/ide-release-setting.png)
69
70    (3) 选择library目录,执行Build -> Make Module 'library'。
71
724. 使用方-创建目录并拷贝文件:在entry目录下新建libs目录,将集成态打包产物tgz包拷贝到libs目录下。
73
745. 使用方-工程依赖配置:在使用方主模块的oh-package.json5配置文件中添加依赖。
75
76    ```json
77    // user_project/entry/oh-package.json5
78      "dependencies": {
79        "hsp": "./libs/library-default.tgz"
80      }
81    ```
82
836. 使用方-工程配置:在工程级的build-profile.json5文件中,将useNormalizedOHMUrl字段设置为true。
84    ```json
85    // user_project/build-profile.json5
86    {
87      "app": {
88        "products": [
89          {
90            "name": "default",
91            "signingConfig": "default",
92            "compatibleSdkVersion": "5.0.0(12)",
93            "runtimeOS": "HarmonyOS",
94            "buildOption": {
95              "strictMode": {
96                "useNormalizedOHMUrl": true
97              }
98            }
99          }
100        ]
101      }
102    }
103    ```
104    > **说明:**
105    > 安装和运行应用前,必须配置项目签名信息,详见[应用/元服务签名](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ide-signing)