android studio生成so,防止反编译

一、下载NDK资源文件

1、 下载地址:http://www.androiddevtools.cn/,android开发很多常用的工具都可以在这个网站上下载
2、解压NDK下载文件,配置NDK环境

在Path路径的后面追加分号然后将ndk路径配置上去就OK了


3、在android studio中配置ndk路径


4、测试NDK是否配置成功

在命令行中输入ndk-build,如下表示配置成功



二、新建一个项目, 在app的build.gradl下加入
1、
defaultConfig {
    applicationId "com.example.sky.myndk"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    ndk {
        moduleName "MyNdk"//生成的so名字  
        ldLibs "log", "z", "m"//链接时使用到的库  
        abiFilters "armeabi", "armeabi-v7a", "x86","arm64-v8a","x86_64"//输出指定五种种abi体系结构下的so库,也可以根据自己需求生成所需要的对用so库  
    }
}


 defaultConfig {
        applicationId "jni.svse.com.jnitest2"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        ndk{
            moduleName "NDKDEMO"         //生成的so名字
            ldLibs "log", "z", "m"       //链接时使用到的库
            abiFilters "armeabi", "armeabi-v7a", "x86"  //输出指定三种abi体系结构下的so库。目前可有可无
        }
    }

2、在gradle.properties里添加


 android.useDeprecatedNdk=true


3、在main下新建一个JNI文件夹

android studio生成so,防止反编译_第1张图片


4、新建一个调用的C++的类


public class MyNative {
    static {
        System.loadLibrary("MyNdk");//MyNdk可以随便取,但是必须和moduleName "MyNdkO"的名字一样
    }
    public static native String GetData();
}

此时GetData会出现红色,不要紧,Alt+Enter,android  studio会在jni下自动帮你生成MyNd.c
#include ,如下

JNIEXPORT jstring JNICALL
Java_com_example_sky_myndk_MyNative_GetData(JNIEnv *env, jclass type) {
    // TODO

    return (*env)->NewStringUTF(env, "12315");//这里可以添加你自己想要的逻辑代码
}
最后gradle编译下,再重新


就可以生成so库了。





android studio生成so,防止反编译_第2张图片



得到生成的so文件
注意在建类引用so库时必须和生成的包名一致才能成功调用




你可能感兴趣的:(android studio生成so,防止反编译)