Android Gradle工程引入三方so库的方法

#背景

在做安卓逆向工程的时候,有时候需要引入三方开发好的jni库,这些库可能非常老旧,甚至是32位的,本文记录引入的过程,便于快速查找

1.把so库拷贝到工程中

一般是如下两个目录

app\src\main\jniLibs\armeabi-v7a

或者

app\src\main\jniLibs\arm64-v8a

2.拷贝原工程中的jni函数定义到新工程中,注意,包名不能变!即文件路径不能变化

例如:

3.在工程任意处加入加载so的代码,一般放到MainActivity.java中

复制代码
    static {
        System.loadLibrary("xxx");
        System.loadLibrary("play");
    }

注意,不要带lib,不要带后缀,上述so实际文件名是libplay.so

4.需要在 app/build.gradle 中配置:

复制代码
android {
    defaultConfig {
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86'
        }
    }
}

5.完成上述步骤后,即可在java文件中通过Jni.xxx引用so库中的静态方法了

enjoy!

相关推荐
y = xⁿ6 小时前
DeepSeek Harness 学习日记:关于Agent接口,工具调用的底层实现
android·java·学习
2601_962066498 小时前
【Sql Server】Update中的From语句,以及常见更新操作方式
android·java·数据库
用户693717500138414 小时前
曾经安卓开发人手一个的 EventBus,为什么现在没人爱用了?
android·android studio
九皇叔叔16 小时前
MySQL ORDER BY 性能优化详解:Using filesort、联合索引、ASC/DESC 与覆盖索引
android·adb
OriginCoding16 小时前
用 AI Agent 协作完成一个 Android TOTP 应用:从需求边界到 v1.0.0
android·ai编程
杉氧19 小时前
React 灵魂:深入剖析 Hooks 与副作用(Side Effects)陷阱
android·前端·react native
又见情义20 小时前
RK3568 + RTL8211F 网络唤醒(WOL)功能适配全记录
android·网络·驱动开发
用户09340777351420 小时前
HarmonyOS WPS Open SDK 实践:registerApp 鉴权与就绪门禁
android·typescript·harmonyos
jike_202620 小时前
会议离线录音APP:无网络记录能力对比
android·智能手机·语音识别
always_TT21 小时前
【Python 字符串格式化:format() 方法】
android·开发语言·python