android获取动态库路径
android8以下通过JNI获取
#include <jni.h>
#include <dlfcn.h>
JNIEXPORT jstring JNICALL
Java_com_example_app_MainActivity_getLibraryPath(JNIEnv *env, jobject thiz) {
void* handle = dlopen(NULL, RTLD_LAZY);
if (handle != NULL) {
char *path = NULL;
Dl_info info;
int ret = dladdr(handle, &info);
if (ret != 0) {
path = (char*)info.dli_fname;
return (*env)->NewStringUTF(env, path);
}
dlclose(handle);
}
return NULL;
}
android8以上获取方法
1.使用ApplicationInfo.nativeLibraryDir属性
String libraryPath = getApplicationContext().getApplicationInfo().nativeLibraryDir;
这个属性会返回应用的本地库(动态库)的目录路径
2.android.content.Context.getPackageCodePath()方法
String apkPath = getApplicationContext().getPackageCodePath();
这个方法会返回应用 APK 文件的路径,可以从中提取出动态库的路径。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 银河驿站
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果