so文件目录存放问题

来源:10-4 So瘦身实战

慕码人2104277

2020-04-23

老师您好,我也没明白不同架构SO放同一个目录和放不同目录对so瘦身有什么区别

我看之前几个同学提问,您的回答如下:
你好,比如有一个so,libexc.so,如果只放在一个目录下的话那它只占一份空间,而如果每个架构的目录都放对应架构的libexc.so,那它其实就占用了多份空间。从多个目录都有libexc到只有一个目录有这个文件,这样就达到了瘦身目的。

比如把x86、v7、v8下的libexc.so都移动到armabi下 这不是仅仅移动了个位置嘛 文件并没有减少啊 为什么会有瘦身呢

难道是我理解的姿势不对么。。。

写回答

1回答

随风绽放

2020-04-25

同学你好,这样的理解姿势确实不对。因为没有理解完整,确实按照你目前的理解这样没有瘦身效果。

其实有个前提:需要的别的架构的so才会放到armabi里面(只有需要的才加,不需要的就是优化的效果)。举个例子:libexc.so和liblog.so这两个so,之前在不同的目标下(armabi和armabi-v7a),现在只保留armabi这个目录,那大小肯定可以降下来。

同时如果liblog.so如果对性能敏感那我们还可以把armabi-v7a中liblog.so将其放到armabi目录下,这样armabi里面就有三个文件了(libexc.so和liblog.so和liblog-v7a.so)代码里面我们可以判读,cpu架构是v7a的话就去加载liblog-v7a.so,别的加载liblogso。


这样是不是既兼顾了性能也减少了包大小。

1
6
随风绽放
回复
慕码人2104277
不好意思,这个回复之前没看到。
2020-07-06
共6条回复

Top团队大牛带你玩转Android性能分析与优化

由表及里学到国内Top团队对性能问题的体系化解决方案

1696 学习 · 532 问题

查看课程