我正试图追踪我的软件产品线中的错误。我有两个发布版本 2.0.962 和 2.0.966。这些版本之间的唯一区别是 lib.so 文件。为了弄清楚从哪里开始查找 lib.so 的源代码树,我需要知道它在每个发布版本中的版本号。
是否有打印共享对象版本的命令行工具?
最佳答案
我从未进行过原生 android 编程,但由于 Android 使用 Linux 内核,因此使用的可执行文件格式很可能是“ELF”。对于ELF而言,文件中并没有存储Shared object的版本信息。因此,除非文件名本身是类似 "libXXX.VERSION.so"
的内容,否则没有其他方法可以找出共享对象的版本号。这种技术通常在 Linux 中使用。
我对解决您的问题的建议是:
- 尽可能使用修改日期来区分共享对象
- 使用 dlopen() 或类似工具打开共享对象并尝试查看正在导出的函数。
来源:http://man7.org/linux/man-pages/man5/elf.5.html 注意:可执行文件中的E_VERSION是ELF格式的版本,不是可执行文件的版本。
关于android - 是否可以获取共享对象的版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31463787/