HarmonyOS应用开发 - strip编译配置优先级

概述

文档环境

DevEco Studio 版本:DevEco Studio 6.0.0 Release(6.0.0.858)

SDK 版本:6.0.0 (API20)

功能简介

  • strip配置作用:是否移除 .so 文件中的符号表和调试信息,默认配置为true。
  • 在编译发布包时,应采用默认配置或设置为true,去除 so 库中的调试信息和符号表,显著减小 so 文件体积。
  • 在性能分析(如内存分析或耗时分析)场景中,必须将 strip 字段显式设置为 false。采集函数栈解析符号需要附带符号表信息,无符号表信息可能采集不到函数名称。
  • 本文中的配置以DevEco Studio 6.0.0 Release新建工程为例,帮助大家了解strip配置在不同位置的优先级。

strip编译配置优先级

基础配置

不区分Debug包和Release包,不区分Hap包和Har包,默认配置均为true。

javascript 复制代码
{
  "nativeLib": {
    "debugSymbol": {
      "strip": true
    }
  }
}

配置位置

  1. 工程级build-profile.json5中product的buildOption。
  1. 工程级build-profile.json5中buildModeSet的buildOption。
  1. 模块级build-profile.json5中公共buildOption。
  1. 模块级build-profile.json5中buildOptionSet。
  1. 模块级build-profile.json5中target的config中buildOption。

配置优先级

使用file命令查看so文件是否被stripped

strip: true

strip: false

测试不同位置的配置对最终配置的影响

|---------------|--------------------|-------------------|----------------------|--------------|------------|
| 工程级 product配置 | 工程级 buildModeSet配置 | 模块级 buildOption配置 | 模块级 buildOptionSet配置 | 模块级 target配置 | strip 最终配置 |
| 不配置 | 不配置 | 不配置 | 不配置 | 不配置 | true |
| false | 不配置 | 不配置 | 不配置 | 不配置 | false |
| true | false | 不配置 | 不配置 | 不配置 | true |
| false | true | 不配置 | 不配置 | 不配置 | false |
| 不配置 | false | true | 不配置 | 不配置 | true |
| 不配置 | true | false | 不配置 | 不配置 | false |
| 不配置 | 不配置 | false | 不配置 | 不配置 | false |
| 不配置 | 不配置 | false | true | 不配置 | true |
| 不配置 | 不配置 | false | true | false | false |
| 不配置 | true | false | true | false | false |
| 不配置 | true | false | true | 不配置 | true |
| 不配置 | false | false | true | 不配置 | true |
| false | false | false | true | 不配置 | true |
| true | true | true | false | 不配置 | false |
| true | true | true | true | false | false |

优先级

  1. 模块级target配置 > 模块级buildOptionSet配置> 模块级 buildOption配置 > 工程级product配置 > 工程级buildModeSet配置 。
  2. 构建Hap包时,不受依赖的Har包中的配置影响。
  3. 构建Hap包和Har包时,只读取所在模块级的build-profile.json5和工程级build-profile.json5。
相关推荐
nashane6 小时前
HarmonyOS Wi-Fi连接用户操作监听全解析:从系统弹框到Promise回调
华为·harmonyos·harmonyos 5
Lanren的编程日记8 小时前
Flutter 鸿蒙应用数据版本管理实战:版本记录+版本回退+版本对比,实现全链路数据版本控制
flutter·华为·harmonyos
我是大聪明.9 小时前
DeepSeek V4 Pro + 华为昇腾910:国产大模型落地的性能实测与深度解析
人工智能·华为
木斯佳10 小时前
HarmonyOS 本地存储实战:记账本案例改造实现日历联动
华为·harmonyos
李游Leo11 小时前
别让一张 12MB 的照片拖垮页面:ImageSource / PixelMap / ImagePacker 的工程化处理链路
harmonyos
nashane11 小时前
HarmonyOS 6学习:画中画(PiP)状态同步与场景化实战指南
学习·pip·harmonyos·harmonyos 5
@不误正业11 小时前
鸿蒙小艺智能体开放平台实战-接入系统级AI-Agent能力
人工智能·华为·harmonyos
IntMainJhy14 小时前
「Flutter三方库sqflite的鸿蒙化适配与实战指南:从入门到踩坑的本地数据库开发全记录」
数据库·flutter·华为·信息可视化·数据库开发·harmonyos
前端技术17 小时前
HarmonyOS开发:鸿蒙应用开发发展史
华为·harmonyos
忡黑梨17 小时前
eNSP_路由策略
运维·服务器·网络·华为·智能路由器·负载均衡