请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

so文件目录存放问题

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

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

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

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

正在回答 回答被采纳积分+3

1回答

随风绽放 2020-04-25 11:37:30

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

其实有个前提:需要的别的架构的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 回复 有任何疑惑可以回复我~
  • 提问者 慕码人2104277 #1
    同时如果liblog.so如果对性能敏感那我们还可以把armabi-v7a中liblog.so将其放到armabi目录下,这样armabi里面就有三个文件了(libexc.so和liblog.so和liblog-v7a.so)代码里面我们可以判读,cpu架构是v7a的话就去加载liblog-v7a.so,别的加载liblogso。
    ==================================================
    老师你好,还是没太理解,针对您回答的第二段内容 就如下两种情况
    1、armabi里面就有三个文件:libexc.so、liblog.so、liblog-v7a.so
    2、armabi-v7a下一个: liblog.so,
         armabi下两个: libexc.so、liblog-v7a.so
    这样感觉还是没啥区别的呀
    回复 有任何疑惑可以回复我~ 2020-04-26 09:03:14
  • 随风绽放 回复 提问者 慕码人2104277 #2
    同学你好,armabi-v7a里面的libexc.so就没有了啊。这只是举例子两个的情况,一般项目中so都很多,作用就很明显了。
    回复 有任何疑惑可以回复我~ 2020-04-26 09:57:56
  • 提问者 慕码人2104277 回复 随风绽放 #3
    但是armabi里不是多了一个liblog-v7a.so么
    回复 有任何疑惑可以回复我~ 2020-04-26 10:08:17
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信