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。
这样是不是既兼顾了性能也减少了包大小。
162020-07-06
相似问题