关于NDK的配置以及第一个应用程序(android中java语言调用c/c++)
第一步
需要的工具:eclipse sdk ndk,关于如何使用sdk网上教程很多,这里主要介绍ndk.现在最新版本的ndk是10版本,android-ndk-r10d,官网下载最新版本android-ndk-r10d。
下载之后的样子是
双击安装就可以了,其实就是解压的过程(
注意啊,解压之后的目录跟文件的目录是相同的, 如果解压之后再想移动解压后的文件可就难了,自己有过体会)
解压后的目录是
第二步
OK,工具准备好了开始安装
1.点击window->Preferences->Android->DNK,然后选择你解压的目录文件,点击确定就可以了
2.已经配置好了环境是不是很高兴,下面开始自己的第一个测试程序
2.1新建一个安卓应用程序,这里取工程名字为Test
2.2在新建的工程上面点击右键->android tools->add native support,.so文件名字随便取,这里就不更改了跟工程名字一样,点击finish
2.3这时候工程里面就会多出来一些文件夹,其中我们本次需要操作的是jni文件夹,这时候里面自动创建Test.cpp和Android.mk文件
2.4其中Test.cpp文件是空的,需要自己来写。OK,
2.5在MainActivity同级目录下新建一个类,名字就叫做MyTest,里面的内容如下:(其中native表示的是本地方法,在java中调用在c++中实现)
package com.example.test;
public class MyTest {
public static native String getString();
}
2.6MainAvtivity中的代码如下
package com.example.test;
import android.os.Bundle;
import android.app.Activity;
import android.widget.TextView;
public class MainActivity extends Activity {
static{
System.loadLibrary("Test");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String str = MyTest.getString();
TextView textView = new TextView(this);
textView.setText(str);
setContentView(textView);
}
}
2.7然后就可以在Test.cpp中写c++代码了
#include <jni.h>
#include <string.h>
extern "C"{
jstring Java_com_example_test_MyTest_getString(JNIEnv* env,jobject thiz)
{
return env->NewStringUTF((char*)"firstTest");
}
}
(注意了,这里采用的是c++(.cpp)写的,一定要加外面的extern”C”,否则在运行时会报异常,提示无法找到getString方法,并且函数名字是 Java_包名_类名_函数名)
2.8可以运行一下看看了