美文网首页
android-性能优化-so优化

android-性能优化-so优化

作者: 卍W卍X卍 | 来源:发表于2019-11-12 16:52 被阅读0次

    个人总结,因为项目开发的原因,需要ndk开发一部分功能,并打包成so使用,在打包so过程中发现生成的so过大,如下图有15M的样子,很大。所以决定看一些so优化相关的知识。

    图1

    这是我通过cmake方式直接在as上运行出来生成的so,研究以后才知道,so还有debug和release包的区分,上面这个就是debug的so。

    在as上task->other->

    图2

    点击这个方式build会生成release的so库,如下图。

    图3

    会减少几百k的大小,但还是很大,仍有14M多。

    参考https://blog.csdn.net/u010019468/article/details/78271965这个博客发现

    release包这么大还是因为编译过程中生成二进制码没有被剥除。故根据其提供方式在cmakelist.txt中添加如下关键配置项:

    图4

    编译so之后大大优化so大小,见下图

    图5

    优化之后大小减了一半多,只有6M多了。

    鉴于项目开发时一些so库只有so没有源代码,太大无法自己重新打包,研究到有一种工具UPX可以对于so这种文件直接压缩, 工具库地址 https://github.com/upx/upx

    其中有写到

    图6

    UPX是一种高级可执行文件处理器,可以压缩50%多的大小。

    使用方法如下

    图7

    接着把release刚才打包的压缩文件用UPX工具再次进行压缩,过程与结果如下。

    图8 图9

    明显可见压缩效率之高,6M多的so又压缩到了2M多。亲测原功能正常运行。

    甚是欢喜,这下子不会因为so太大导致apk增大过多了。这次研究下来收获还是蛮大的压缩率高达86%~(#^.^#)

    相关文章

      网友评论

          本文标题:android-性能优化-so优化

          本文链接:https://www.haomeiwen.com/subject/ycjqictx.html