原文:https://mp.weixin.qq.com/s/qPvHZNZuLccAsviBcXtPWw,点击链接查看更多技术内容。
动静共享包(HSP)开发是 DevEco Studio 3.1 Release 版本带来的新个性,基于新的编译形式,提供运行态共享能力,能够无效放慢编译速度,减小 HAP 包的体积。
一、动静共享包引入
以往应用的 JSBundle 化编译计划,因每个入口 page 都会打包成一个 bundle 包,且不反对运行态共享,当批改单个模块文件,须要整包从新编译打包,会导致编译耗费的工夫变长,也会导致 HAP 包的体积变大,从而影响了 HarmonyOS 利用开发效率和开发者体验。
Bundle 化打包过程示意图
为了晋升开发效率和开发者体验,DevEco Studio 提供模块化编译形式,模块之间互相独立编译,能够放慢编译速度。同时,为了缩小包体积,反对将多个模块通用的能力和资源提取,作为动静共享包(HSP)供其余模块或者利用应用。
二、什么是模块化编译
模块之间互相独立编译,编译速度更快。
利用内模块化编译形式应用原生 ES Module 规定构建源码,解决了 Bundle 编译打包模式引入的问题,进而让工程中的资源文件,以独立模块的模式进行编译。当批改单个模块代码时,无需整包编译构建,编译的代码量会大大减少,从而放慢增量编译速度,让编译更快。
模块独立编译示意图
三、如何开启模块化编译
API 9 及以上版本的 Stage 工程中会默认开启模块化编译形式,开发者无需独自配置,编辑好代码后,间接点击 Build Hap(s),就会以模块化的编译形式来进行打包。
新建我的项目,抉择 Stage 示例图
3.1 利用内共享 HSP 开发,让包体积更小
基于 Stage 模型和模块化编译形式,如何进行动静共享包(HSP)的开发呢?一起来看以下介绍:
3.1.1 提供动静共享包模板,轻松创立动静共享包 HSP
HSP 是能够用来共享资源和代码的动静共享包,为了不便开发者应用,DevEco Studio 提供 Shared Library 动静共享包模板,开发者能够间接应用该模板,轻松创立 HSP。开发者选中工程目录中任意文件,右键抉择 New > Module,关上 Shared Library 模板。
Shared Library 模板示意图
在 HSP 对应模块(如 Shared_Library)中实现通用能力代码和资源的开发后,选中菜单栏的 Build > Make Module‘Shared_Library’进行编译构建,即可疾速生成 HSP。
编译构建示例图
生成 HSP
3.1.2 利用内疾速援用 HSP
开发者可通过字段配置,将 HSP 共享给利用内其余模块应用,并且反对在运行态共享 HSP。在应用方 entry/feature 模块的 oh-package.json5 文件中增加 HSP 模块来援用,以援用名为 Shared_Library 的 HSP 为例:
HSP 援用配置
在模块化编译形式的加持下,应用方的模块通过编译打包后,HAP 包的体积将会显著变小,开发者就可将 HAP 包疾速装置在设施上来调试运行,晋升开发效率。
与此同时,DevEco Studio 反对 HSP 预览,ArkTS/C++ 调用 HSP 的断点调试等性能,您能够进入 HarmonyOS 官网材料理解更多 HSP 的内容。