wps哪个工具做网站,机械类 网站源码,滑县做网站,中职网站建设课件鸿蒙应用包大小优化全解析
在鸿蒙应用开发中#xff0c;减小应用包大小对于提升应用下载和安装体验起着关键作用。通过压缩、精简或复用应用中的代码与资源#xff0c;能有效降低包体积#xff0c;减少空间占用并加快下载与安装速度。下面详细介绍一下鸿蒙应用包大小优化的…鸿蒙应用包大小优化全解析
在鸿蒙应用开发中减小应用包大小对于提升应用下载和安装体验起着关键作用。通过压缩、精简或复用应用中的代码与资源能有效降低包体积减少空间占用并加快下载与安装速度。下面详细介绍一下鸿蒙应用包大小优化的方法与策略。
一、了解 HarmonyOS 应用程序包结构
在着手优化包大小之前深入理解 HarmonyOS 应用的程序包结构是必不可少的。这为后续精准定位和优化包内元素奠定了基础。
二、扫描工具助力分析
可借助扫描工具对 App 包进行扫描分析。依据不同参数设定扫描指定路径的 App、HAP、HSP 包内容输出检测结果报告。这一报告能为开发者优化包结构和排查问题提供有力的数据支撑。 扫描工具的详细介绍见
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-check-tool-V5
三、优化应用包大小的具体方法
一配置 so 库压缩选项
对于含有 so 库的 app 工程DevEco Studio 默认打包时不压缩 so 库文件。我们可通过修改应用模块配置文件 module.json5 中的 compressNativeLibs 字段为 true重新编译、打包应用使 so 库文件以压缩形式打包到包中。以 DevEco Studio 中 C默认库文件为例如 armeabi - v7a/libc_shared.so原始大小 1108k压缩后仅 386k压缩率达 34%显著减小了应用包大小。
二解决依赖减少依赖包重复编译
在 ohpm 1.5.0 之前版本如果 hap 依赖了不同版本的 har打包时会默认将多个版本都打包进包中。开发者可使用 override 机制指定只打包一份。在项目级别的 oh - package.json5 文件中添加 overrides 配置可将依赖树中的依赖替换为指定版本版本可以是具体版本号也可以是本地的 HAR 包或源码目录。需注意overrides 必须配置在项目级别的 oh - package.json5 中才生效。例如若要始终安装 foo 的 1.0.0 版本可配置为 {overrides: {foo: 1.0.0}}若本地存在 foo 的源码或 HAR 包并想使用本地版本可按相应格式配置。而对于 1.5.0 版本之后的 ohpm开启 resolve_conflict 可自动解决依赖冲突策略是选择同时依赖的三方库的最高版本进行安装。 {overrides: {// 本地存在foo的源码目录如项目根目录下的foo目录// foo: file:./foo // 本地存在foo的HAR文件如项目根目录下的libs目录中的foo.harfoo: file:./libs/foo.har}}三按需分发功能模块
针对应用中用户不常用的功能采用按需分发方式。将其下载时机交由用户选择使用时再从应用市场获取安装从而有效减少用户初次下载的包大小。
四多包场景下使用 HSP 共享代码和资源
系统提供了 HAR 静态共享包和 HSP 动态共享包。HAR 中的代码和资源跟随使用方编译多使用方会产生多份相同拷贝HSP 中的代码和资源可独立编译运行时进程中只会存在一份。在多包场景下如果应用的多个 HAP 或 HSP 包使用 HAR 包共享代码和资源打包后会存在冗余代码和资源。此时推荐使用 HSP 代替 HAR可减少 App 包中的冗余当 HAR2、HAR3 总大小大于 HSP 时能有效减小应用包大小。
五针对扫描结果的优化
重复文件处理 同一包内若有重复资源直接删除重复资源。多包HAP、HSP间存在重复资源时可使用 HSP 实现资源复用。 较大文件处理 首先确认文件是否为应用必需若非必需则考虑删除。对于 JPG、PNG、GIF 等文件可采用压缩图片的方式减小文件大小。 特定类型文件处理so 文件 通过配置 so 库压缩选项来实现压缩打包如前文所述的在 module.json5 中配置 compressNativeLibs 字段。
{module: { // ...compressNativeLibs: true // 标识libs库以压缩存储方式打包}
}