public class MainActivity extends AppCompatActivity {
static {
System.loadLibrary("native-lib");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = findViewById(R.id.sample_text);
tv.setText(getString());
}
public native String getString();
}
#include <jni.h>
#include <string>
extern "C"
JNIEXPORT jstring JNICALL
native_getString(JNIEnv *env, jobject ) {
std::string hello = "Hello from C++";
return env->NewStringUTF(hello.c_str());
}
const char *classPathName = "com/chenpeng/registernativemethoddemo/MainActivity";
JNINativeMethod method[] = {{"getString", "()Ljava/lang/String;", (void *) native_getString}};
JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *reserved) {
JNIEnv *env = NULL;
vm->GetEnv((void **) &env, JNI_VERSION_1_6);
jclass clazz = env->FindClass(classPathName);
env->RegisterNatives(clazz, method, 1);
return JNI_VERSION_1_6;
}