Android 加载SDCard中so库

Android 加载sdcard中的so库

  • 项目背景
  • 实现
    • 1.拷贝sdcard so至 应用私有libs中
    • 2.加载so库
  • 总结

项目背景

最近项目与第三方合作,对方提供so接口,我们进行实现,要求我们将so库放在sdcard中。
我们知道sdcard中的so没有执行权限,那么直接通过dlopen打开sdcard中so的方式并不可取。不得已,在网上找的一种解决方法:将sdcard中的so库拷贝到应用的私有libs库,然后再使用dlopen方式进行打开。
当然dlopen是在c/c++里面进行调用的,如果我们需要java层面进行调用的话,可以使用System.load方法。

实现

1.拷贝sdcard so至 应用私有libs中

工具类方法如下:

public class NativeLibraryLoader {

    public static boolean loadLibrary(Context context, String libPath, String libName) {
		// 获取应用的私有模式的libs目录。
        File libs_dir = context.getDir("libs", Context.MODE_PRIVA

你可能感兴趣的:(Android,Android,sdcard,so)