动态加载共享对象,该文件位于APK libs文件夹中

时间:2016-07-30 13:04:36

标签: android-ndk native-activity

希望你能在这里帮助我。我设法创建了我的原生活动项目并将其打包。在libs文件夹中,我有一个在本机活动中动态加载(dlopen)的共享库。 我知道包libs被复制到: / data / data / packagename / lib 但是如何使用dlopen访问它?那可能吗?我以为我只能使用本地文件夹名称来访问它,例如:./ libMySharedLibrary,因为它们都在APK / libs子文件夹中。有没有人如何获得正确的foldername或如何访问这些共享库?

1 个答案:

答案 0 :(得分:0)

动态链接器已经知道你的包私有库 - 只需传递basename,所有都应该没问题:

dlopen("libawesome.so", RTLD_LAZY);

P.S。为避免出现意外,您应确保您的库名称唯一且不与系统库名称冲突(这些名称位于/system/lib/vendor/lib,同时检查64位上的lib64目录设备)。