HarmonyOS鸿蒙Next中打包出来的应用压缩与优化

HarmonyOS鸿蒙Next中打包出来的应用压缩与优化 鸿蒙打包这边有没有指定架构,比如指定arm64-v8a,

另外有没有像android gradle那边的so文件压缩等,目前打出来的app比较大

想对这块进行优化

3 回复

BI编译环境,包括:arm64-v8a、x86_64,如不配置该参数,编译时默认为arm64-v8a

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-hvigor-build-profile-0000001778834297-V5#section511142752919

模块级下配置:

app中的配置示例:

{
  "module": {
    // ...
    "compressNativeLibs": true // 标识libs库以压缩存储方式打包
  }
}

压缩so库

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/module-configuration-file-V5#ZH-CN_TOPIC_0000001884756258__配置文件标识

在module级目录下的build-profile.json5文件中,

"buildOption"下,配置:

"nativelib":
{
  "filter":
  {
    "excludes": [
      "**/x86_64/*.so", 
      "**/armeabi-v7a/*.so"
    ]
  }
}

更多关于HarmonyOS鸿蒙Next中打包出来的应用压缩与优化的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,应用打包后的压缩与优化主要涉及以下几个方面:

  1. 资源优化:鸿蒙Next在打包时会对应用的资源文件进行压缩和优化。包括图片、音频、视频等多媒体资源的压缩,减少应用包体积。同时,鸿蒙Next支持对资源文件进行按需加载,避免一次性加载所有资源,提升应用启动速度和运行效率。

  2. 代码优化:鸿蒙Next在打包过程中会对应用的代码进行优化,去除未使用的代码和无用的依赖项。通过代码混淆和压缩,减少代码体积,提升运行性能。

  3. 分片打包:鸿蒙Next支持将应用分片打包,根据设备的不同配置和需求,动态加载所需的分片。这种分片打包机制可以有效减少应用包的大小,提升安装速度和运行效率。

  4. 资源索引优化:鸿蒙Next在打包时会生成资源索引文件,优化资源查找和加载的效率。通过优化资源索引,减少资源加载时的查找时间,提升应用响应速度。

  5. 签名与校验:鸿蒙Next在打包过程中会对应用进行签名和校验,确保应用的完整性和安全性。签名后的应用包在安装时会进行校验,防止篡改和恶意攻击。

  6. 压缩算法:鸿蒙Next采用高效的压缩算法对应用包进行压缩,减少包体积。同时,支持对压缩后的应用包进行解压优化,提升安装和运行效率。

  7. 增量更新:鸿蒙Next支持应用包的增量更新机制,只更新发生变化的部分,减少更新包的大小。通过增量更新,提升应用更新效率,减少用户等待时间。

鸿蒙Next在应用打包过程中通过资源优化、代码优化、分片打包、资源索引优化、签名与校验、压缩算法和增量更新等多种手段,实现了应用包的压缩与优化,提升了应用性能和用户体验。

在HarmonyOS鸿蒙Next中,应用打包与优化主要通过以下几个方面实现:

  1. HAP(HarmonyOS Ability Package)打包:HAP是应用的基本单元,包含代码、资源及配置文件。打包时,系统会自动进行资源压缩和代码优化,减少应用体积。

  2. 资源优化:通过使用WebP格式图片、压缩音频和视频资源,以及移除未使用的资源文件,进一步减小应用包大小。

  3. 代码混淆与压缩:使用ProGuard或R8工具对Java/Kotlin代码进行混淆和压缩,去除未使用的代码,提升运行效率。

  4. 分包加载:支持将应用拆分为多个HAP包,按需加载,减少初始安装包大小,提升启动速度。

  5. 动态资源加载:通过动态加载资源,减少初始包体积,提升用户体验。

通过这些措施,HarmonyOS Next能够有效优化应用性能,降低资源占用。

回到顶部