JNI Helloworld

来源:互联网 发布:程序员找女朋友 知乎 编辑:程序博客网 时间:2024/05/01 20:14

1、下载ndk r7及以上

2、配置ndk环境变量

3、新建Android工程  在window-》preference-》Android-》ndk 中关联ndk的安装目录

4、在Android工程右键,Android tool中 add native support

5、java中声明native方法 

6、在改工程的src目录下启动CMD窗口 java7以上 输入命令 javah 类的完整名   得到.h头文件

7、编写C/C++代码

8、编译运行  (记得System.loadLibrary("JNIDemo");)

public class MainActivity extends ActionBarActivity {static{System.loadLibrary("JNIDemo");}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);sayHello();}private void sayHello() {System.out.println(helloFromC());System.out.println(hello1("my name is:"));}public native String helloFromC();public native String hello1(String s);}
<pre name="code" class="html">#include <stdio.h>#include <stdlib.h>#include <string.h>#include "com_sl_jnidemo_MainActivity.h"JNIEXPORT jstring JNICALL Java_com_sl_jnidemo_MainActivity_helloFromC  (JNIEnv * env, jobject jobj){return (*env)->NewStringUTF(env,"com.sl.chen");}JNIEXPORT jstring JNICALL Java_com_sl_jnidemo_MainActivity_hello1  (JNIEnv * env, jobject jobj, jstring jstr){//char* t   =   (*env)->GetStringUTFChars(env,jstr,0);//char* t1="songlin";//char* res=strcat(t1,t);return (*env)->NewStringUTF(env,"my name is songlin");}




0 0