日期:2014-05-16  浏览次数:21410 次

如何查看so库中某个.a静态库的大小
   大家好,我的一个so是在linux下用android-ndk-r7编译出来的,这个是要给android app用的,但是app那边说我这个so文件太大了,他们要减小APK文件大小。
    这个so编译用到了某xxx.a,这个xxx.a比那个so还大一点,现在就是想知道如何查看这个so里面编进去的xxx.a文件的内容到底有多大,如果大部分都是这个xxx.a,那我就可以让另一个部门提供xxx.so,这样就把我那个so文件大小减下去了。有人知道吗,谢谢了!
------解决方案--------------------
nm有一个选项--print-size。
先找出*.a当中的所有symbol,然后在*.so当中使用nm加上参数--print-size找出那些symbol的总大小。
------解决方案--------------------
如果符号比较多,--print-size就比较麻烦了。

个人觉得确定这个大小不用太精确。个人觉得先将自己的库编成*.a,然后跟第三方*.a比较下就可也知道了。
------解决方案--------------------
引用:
Quote: 引用:

nm有一个选项--print-size。
先找出*.a当中的所有symbol,然后在*.so当中使用nm加上参数--print-size找出那些symbol的总大小。
怎么找出所有的symbol啊
编译好之后,不要strip,用命令arm-none-linux-gnueabi-nm可以找出。