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!

相关推荐
simplepeng4 小时前
我们都知道但总是忽略的5个Jetpack Compose细节
android·android jetpack
刮风那天4 小时前
Android 如何提高进程优先级避免被查杀?
android
修行者对6665 小时前
安卓阿里云镜像
android
刮风那天6 小时前
Android AMS创建进程不用Binder而用Socket?
android·java·binder
知行合一。。。8 小时前
Python--05--面向对象(继承,多态)
android·开发语言·python
张小潇9 小时前
AOSP15 WMS/AMS系统开发 -窗口动画源码分析
android
程序员陆业聪10 小时前
Shadow核心原理:壳子Activity与代理机制的精妙设计
android
plainGeekDev11 小时前
Android 开发者再不转Kotlin,真的来不及了
android·kotlin
赏金术士11 小时前
第五章:数据层—网络请求与Repository
android·kotlin·compose
初雪云11 小时前
让安卓发版再简单一点,体验一键自动化发布
android·运维·自动化