动态加载:https://blog.csdn.net/weixin_44901971/article/details/127557644
build.gradle 配置so库的文件目录 src>main>libs,也可以不配置,则放入src>main>jniLibs目录中
android {
    sourceSets{
        main{
            jniLibs.srcDirs "libs"
        }
    }
    ...
}

so库一般会给出比较完整的,比如:给出全部平台的so库文件。放在libs或jniLibs目录。
arm-64-v8a/libbspatchtool.so
armeabi-v7a/libbspatchtool.so
x86/libbspatchtool.so
x86_64/libbspatchtool.so

加载SO库

package com.tools.bspatchtool;
/**
 * 加载so库
 * */
public class BsPatchUtil {
    // 单例
    private static final BsPatchUtil instance = new BsPatchUtil();

    private BsPatchUtil() {
    }

    public static BsPatchUtil getInstance() {
        return instance;
    }

    static {
        // loadLibrary 加载so库,libbspatchtool.so,只写bspatchtool,lib和.so后缀不需要写。如果libbspatchtool.so还依赖其他库,那么也要loadLibrary()进来。
        System.loadLibrary("bspatchtool");
    }
    // 必须使用 native 关键字,对应so库中的函数。
    public native int bsPatch(String oldfile, String newfile, String patchfile);
}

 

posted on 2023-07-20 10:54  邢帅杰  阅读(477)  评论(0编辑  收藏  举报