概述

文档环境

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。

{
  "nativeLib": {
    "debugSymbol": {
      "strip": true
    }
  }
}

配置位置

1. 工程级build-profile.json5中product的buildOption。

2. 工程级build-profile.json5中buildModeSet的buildOption。

3. 模块级build-profile.json5中公共buildOption。

4. 模块级build-profile.json5中buildOptionSet。

5. 模块级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。
Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐