Android.mk
新建目录 src/main/jni
新建文件 src/main/jni/Android.mk
LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:=hello-jni
LOCAL_SRC_FILES:=c.cpp
include $(BUILD_SHARED_LIBRARY)
新建文件 src/main/jni/Application.mk
APP_ABI := all
MainActivity.java
public class MainActivity extends AppCompatActivity {
static {
System.loadLibrary("hello-jni");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView) findViewById(R.id.sample_text);
tv.setText(getstr());
}
public native String getstr();
}
根据 native 方法生成 代码
新建文件 src/main/jni/c.cpp
#include <jni.h>
extern "C"
JNIEXPORT jstring JNICALL
Java_thereisnospon_ndkdemo_MainActivity_getstr(JNIEnv *env, jobject instance) {
// TODO
return env->NewStringUTF("value");
}
app 下的 build.gradle 的 android 下 添加
sourceSets {
main {
jniLibs.srcDirs = ['src/main/libs']
}
}