HarmonyOS 鸿蒙Next 优化native的so 大小
HarmonyOS 鸿蒙Next 优化native的so 大小
目前so体积较大 是否有方案或参数可减少so大小 目前so较大 原子化服务无法集成 导致原子化服务无法开发
2 回复
CMakeLists.txt里面配置-s可以减少so的大小
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -s")
set(CMAKE_CXX_FLAGS_DEBUG “${CMAKE_CXX_FLAGS_DEBUG} -s”)
CMakeLists.txt,加入上面配置, 重新编译下
1、编译选项使用-Os,编译优化;去掉-g选项,去除调试信息
set(CMAKE_C_FLAGS_DEBUG “${CMAKE_C_FLAGS_DEBUG} -s -OS”)
set(CMAKE_CXX_FLAGS_DEBUG “${CMAKE_CXX_FLAGS_DEBUG} -s -OS”)
2、自己要检查下C++代码为什么偏大, 依赖或者其余可以导致的, 这个是gcc C++编译通用的,一般来说so文件不会太大,看下是不是引入导致的问题,这样的问题不能只靠修改编译参数解决
针对HarmonyOS 鸿蒙Next优化native的so大小的问题,以下是一些专业建议:
- 编译选项优化:在CMakeLists.txt脚本文件中,使用-S -Os参数优化编译选项,同时去掉-g选项以去除调试信息。例如,设置CMAKE_C_FLAGS_DEBUG和CMAKE_CXX_FLAGS_DEBUG包含-S -Os参数。
- so文件压缩:在HAP/HSP模块的module.json5文件中,配置compressNativeLibs字段为true,以压缩HAP/HSP包中的so文件体积。此外,还可以在工程目录下的hvigor目录中的hvigor.json5文件中配置ohos.pack.compressLevel属性,改变so压缩打包的压缩率。
- 开启strip:在HAP/HSP模块的build-profile.json5文件中开启strip,移除.so文件中的符号表和debug信息,从而降低so体积。
这些措施通常可以有效减小so文件的大小,进而优化HarmonyOS应用的总体积。如果实施上述建议后问题依旧无法解决,请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。