写点什么

DevEco Studio 3.1 Release | 动态共享包开发,编译更快,包更小

  • 2023-05-19
    中国香港
  • 本文字数:1134 字

    阅读完需:约 4 分钟

DevEco Studio 3.1 Release | 动态共享包开发,编译更快,包更小

原文: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 的内容。



用户头像

每一位开发者都是华为要汇聚的星星之火 2021-10-15 加入

提供HarmonyOS关键技术解析、版本更新、开发者实践和活动资讯,欢迎各位开发者加入HarmonyOS生态,一起创造无限可能!

评论

发布
暂无评论
DevEco Studio 3.1 Release | 动态共享包开发,编译更快,包更小_HarmonyOS_HarmonyOS开发者_InfoQ写作社区