问题场景:
在mac和win系统的Android studio(下文简称AS)上进行apk的打包,采用build下的默认打包方式,产生的包体积差异巨大,甚至有2倍的差距。
可能的原因:
其他分支提交代码的时候,提交了debug库,也可能是没有strip过的release包,里面包含了很多调试信息,如果在mac上打包,AS可能默认包含了strip过程,但是在win平台上可能没有包含strip过程。
解决办法:
使用strip -x xxx.so将库一个个重新编译一下,具体的操作请自行百度
tips:
strip:是在linux/unix平台下,gcc/clang/llvm等编辑工具包中的一个工具,例如命令 strip -x xxx.so就会把动态库中的调试信息去掉。
重新编译动态库后再NDK的输出路径有两个,megerd_native_libs 和 striped_native_libs,从 striped_natvie_libs 中复制正确的 so 包即可