android JNI入门 之helloworld

旧版步骤

创建好项目后

  • 打开gradle.properties,添加:
android.useDeprecatedNdk=true
  • 打开local.properties,添加:
ndk.dir=NDK的路径
  • 最后打开app内build.gradle,在android/defaultConfig下面添加ndk配置
ndk {
            moduleName "JNISample"  //moduleName 表示编译出的so文件的名字
        }
  • 任意在类中声明一个Native方法(C/C++写的方法)
 public static native String getJniString();
  • 进入到源代码目录,在终端中根据native方法所在文件路径,输入以下命令生成头文件com_instructionextract_sdkdemo_sdkDemo.h
javah com.instructionextract.sdkdemo.sdkDemo
  • 在main目录下创建jni目录存放Native层代码,将头文件移动到jni目录下
  • 使用头文件的名称,创建cpp文件com_instructionextract_sdkdemo_sdkDemo.cpp来写代码,例如
#include <com_instructionextract_sdkdemo_sdkDemo.h>

//方法定义是从.h头文件中copy过来的
JNIEXPORT jstring JNICALL Java_com_instructionextract_sdkdemo_sdkDemo_Anti_1TraceMe
  (JNIEnv *, jclass){
    return env -> NewStringUTF("Hello World");;
 }
  • 在java层使用Native层方法,先加载库文件,文件名由moduleName定义
    static {
        System.loadLibrary("AntiDebug");
    }

新版步骤

谷歌官方推荐参考向您的项目添加 C 和 C++ 代码,安装好NDK、LLDB,在新建项目的时候,在向导的 Configure your new project 部分,选中 Include C++ Support 复选框。

创建好项目后,原生代码都在cpp目录下即可,并且新建项目存在一个系统生成的原声demo方法可以参考

参考

Android Studio jni开发入门——看我就够了!

发布了118 篇原创文章 · 获赞 14 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/github_38641765/article/details/90653404