1、下載NDK配置環境變量
添加 NDK_HOME D:\android-ndk-r11b(根據實際路徑)
Path中添加 %NDK_HOME%/;
cmd執行ndk-build查看是否成功
2、SDK Location中配置NDK

3、生成頭文件
新建類定義native方法
public class Hello {
public native String helloC();
}
AndroidStudio命令行切換到debug目錄執行
javah -jni cn.fbtrip.ndkdemo.Hello

4、創建c文件
拷貝上步生成的頭文件
main文件下創建jni,新建c/c++源文件
拷貝mk文件,進行配置

5、mk文件修改

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello
LOCAL_SRC_FILES := cn_fbtrip_ndkdemo_Hello.c
include $(BUILD_SHARED_LIBRARY)
我們只需要修改LOCAL_MODULE和LOCAL_SRC_FILES兩個參數即可。
LOCAL_MODULE參數是指定編譯后的目標文件的名稱,其實編譯好的目標文件名為libhello.so,
LOCAL_SRC_FILES指定了要編譯的源文件。

APP_ABI := all
6、生成so文件


切換到main路徑下執行ndk-build
修改jni庫目錄
將app->src->main->libs改成
app->src->main->jniLibs
7、舊版需要配置支持ndk
根目錄gradle.properties
在文件的最末行添加:
android.useDeprecateNdk=true
8、so庫的調用
public class MainActivity extends AppCompatActivity {
static {
System.loadLibrary("hello");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Hello h = new Hello();
System.out.println("------>"+h.helloC());
}
}
