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()); } }