最近因为项目中有部分接口方法需要写在so文件中,那就简单开搞,AndroidStudio使用cmake打包生成so文件很简单,主要是c++中实现方法不复杂,具体生成so流程不多说,网上很多demo。
虽然c++文件不过几十百来行,然而生成的so文件接近1M,这肯定是属于异常的,包体积无故增加好几M,必须优化一下。
网上查了下,很多都说在CMakeLists.txt文件中增加下面俩行:
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s")
结果肯定是无效的,不然也不会有这篇文章了 ^ - ^
使用Androidstudio打开so文件,发现有很多冗余的数据,接近上万行,因为网络上大家都建议使用c来写而不是c++,所以想着是不是调用了c++的方法库导致so文件增加的;
仔细观察发现自己使用了c++提供的md5相关算法头文件,所以导致引入文件很多,打包体积很大;
转变去掉相关引入就ok;
去掉后重新打包体积只有小几十kb;
网友评论