一、创建一个Android项目
在src/main下创建一个ndkBuild文件夹
在该文件下面创建两个文件hello-jni.c与Android.mk
Android.mk内容:
#定义模块当前路径
LOCAL_PATH := $(call my-dir)
#清空当前环境变量
include $(CLEAR_VARS)
#当前模块名
LOCAL_MODULE := hello-jni
#当前模块保护的源代码文件
LOCAL_SRC_FILES := hello-jni.c
#生产一个动态库
include $(BUILD_SHARED_LIBRARY)
hello-jni.c内容我们写了给简单的方法:
#include <jni.h>
int test(){
return 123;
}
//package com.goodboy.ndk_2_3_1;
jint Java_com_goodboy_ndk_12_13_11_MainActivity_nativeTest(){
return test();
}
二、在App下的build.gradle添加
如下配置:
externalNativeBuild{
ndkBuild{
abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86", "x86_64"//编译对应CPU的类型
}
}
externalNativeBuild{
ndkBuild{
path "src/main/ndkBuild/Android.mk"
}
}
如下图:
三、最后在MainActivity调用native方法
{
System.loadLibrary("hello-jni");
}
private TextView myTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myTextView = findViewById(R.id.test_view);
myTextView.setText("nativeTest:"+nativeTest());
}
native int nativeTest();
打包我们会发现so包被打包进去了: