Android下查看共享库依赖项
来源:互联网 发布:阿里云 王坚 年会 哭 编辑:程序博客网 时间:2024/06/03 17:26
Android下查看共享库依赖项
[时间:2017-02] [状态:Open]
[关键词:android,共享库依赖项,so,ndk,objdump,readelf]
起因
近期在处理Android下动态库依赖的问题。我知道在Windows下可以使用dependency-walker查看动态库或者可执行文件的依赖性,在linux下可以使用ldd查看动态库的依赖项,比如查看libavcodec.so的输出如下:
$ ldd libavcodec.so
linux-vdso.so.1 = (0x00007ffe89974000)
libswresample.so.2 =not found
libavutil.so.55 =not found
libdl.so.2 =/lib/x86_64-linux-gnu/libdl.so.2 (0x00007f964e331000)
libm.so.6 =/lib/x86_64-linux-gnu/libm.so.6 (0x00007f964e029000)
libz.so.1 =/lib/x86_64-linux-gnu/libz.so.1 (0x00007f964de0e000)
libpthread.so.0 =/lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f964dbef000)
libc.so.6 =/lib/x86_64-linux-gnu/libc.so.6 (0x00007f964d825000)
/lib64/ld-linux-x86-64.so.2 (0x000055b0a681c000)
那么Android下怎么查看呢?
我们都知道Android的内核是基于Linux的,可以从AOSP中你找不到ldd这个可执行程序,ndk中也没有。
这就是本文要解决的问题。
查看Android下共享库的依赖性。
解决方案
方案一:直接移植ldd程序到Android上
同一个基准平台的开源代码,完全可以做到,有兴趣的可以单独找找资料。
方案二:ndk中的readelf
在ndk的toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-readelf
中可以找到对应的可执行程序,查看依赖项实用下面命令:
./arm-linux-androideabi-readelf -d libmedia.so
方案三:AOSP中的objdump
在AOSP的prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin
中可以看到arm-linux-androideabi-readelf
和arm-linux-androideabi-objdump
都可以使用,其中objdump的命令如下:
./arm-linux-androideabi-objdump -x libmedia.so | grep NEEDED
总结
本文主要是关于如何查看Android下动态库依赖项的方法。
参考资料
- Android下怎么使用LDD查看依赖库
- Objdump查看依赖so动态库文件
- Android下查看共享库依赖项
- Android下怎么使用LDD查看依赖库
- linux下查看对象文件依赖的动态库的工具ldd以及共享库缓存构建工具ldconfig介绍
- ldd命令 查看程序所依赖的共享库。
- linux 下查看程序依赖的库
- linux下查看程序依赖的库
- linux 下查看程序依赖的库
- windows查看dll依赖项,QT打包依赖库
- linux下查看动态链接库依赖关系的命令
- 在windows下查看程序的依赖库
- linux下查看动态链接库依赖关系的命令
- android studio查看依赖关系
- 如何查看Linux程序或进程用到的库(共享库依赖关系)
- linux查看程序所依赖的共享库和程序的符号表
- linux 查看依赖库
- 查看应用程序依赖库
- linux 查看库依赖
- Android 查看动态库依赖的库文件
- sublime text设置html的浏览器预览
- MyEclipse 2016 反编译插件安装
- win7_64+GeForce GTX750Ti + Anaaonda3 4.4+tensorflow1.2+cuda8.0+cuDNN5.1安装记
- 给初学者的RxJava2.0教程(八)
- 如何解决SVN目录的cleanup问题和lock问题
- Android下查看共享库依赖项
- 用普通的form表单提交数据到后台显示乱码
- Swift
- setlocale 多线程调用引发程序crash
- 获取视频真实地址的初中高三个阶段
- 如何通过Windows Server 2008 R2建立NFS存储
- 剑指Offer-40
- 浅谈 安卓增量更新
- IOS学习 导入第三方框架 常见问题汇总