2

我想编写一个能够通过共享库 (.so) 显示导出函数列表的Android 应用程序

nm/objdump/readelf该工具仅适用于 Windows/Linux。所以我考虑过编译platfor_external_elfutils来获得一个带有nmobjdump工具的工具链。

toolchain但是,考虑到可能导致的大依赖性(可能高达 xx MB),这不是一个好的解决方案。

我想问是否有任何可用的简单代码来实现该目的,而无需toolchain在我的应用程序中编译和附加整个代码。

4

2 回答 2

1

这对于原始海报来说可能为时已晚,但 libelf 可以从 Android 源代码构建为静态库 (libelf.a),至少从 JB4.2 开始。只需使用

make libelf

在主目录中构建它。

如果有人知道如何将其构建为动态库/共享对象,那将不胜感激。

于 2014-02-12T16:41:27.547 回答
0

您可以使用 libelf 库(来自elftoolchain - 它是 BSD 许可的)来解析二进制文件。libelf 带有elfdump实用程序的源代码,该实用程序转储有关 ELF 文件的各种信息,包括导出列表。只需去掉不需要的来源,就可以了。可执行文件不会超过 100KB。

于 2012-10-23T02:46:24.383 回答