問題場景:
在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 包即可