第一步:
在工程目录下创建一个文件夹,名为 jni ,然后在jni目录下创建一个c文件,例如我的c文件名为:Hello.c
第二步:
在Java程序中定义一个本地方法,这个方法是要我们用c来实现的,如:
package com.itheima.helloworld1;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void click(View v){
Toast.makeText(this, helloFromC(), 0).show();
}
//定义一个本地方法,方法体由c语言实现
public native String helloFromC();
}
注:public native String helloFromC()就是我们要用c去实现的方法了,
而关于这个c方法的调用就是:Toast.makeText(this, helloFromC(), 0).show();
第三步:
在hello.c中编写c文件,如:
#include <stdio.h>
#include <stdlib.h>
#include <jni.h>
jstring Java_com_itheima_helloworld1_MainActivity_helloFromC(JNIEnv* env, jobject obj){
//c语言的字符串
char* cstr = "hello from c";
//把C语言的字符串转换成java的字符串
// jstring (*NewStringUTF)(JNIEnv*, const char*);
jstring jstr = (*env)->NewStringUTF(env, cstr);
return jstr;
}
注:关于c代码的编写
1>