闲话不多说,直接入正题:
我的环境:
操作系统:osx 10.10
IDE:eclipse luna
SDK: 19
默认你已经搭建好了SDK开发环境
第一步,下载OSX平台下的ndk工具包:
在我的网盘中比较新的r10版本可下载:http://pan.baidu.com/s/1eQhn9aq
第二步,配置环境变量
在你的用户目录下创建.bash_profile文件加入:
export PATH=${PATH}:/Users/devnn/Documents/android_ndk/android-ndk-r10e A_NDK_ROOT=/Users/devnn/Documents/android_ndk/android-ndk-r10e export A_NDK_ROOT export PATH=${PATH}:/Users/devnn/Documents/android-sdk-macosx/platform-tools export PATH=${PATH}:/Users/devnn/Documents/android-sdk-macosx/tools A_SDK_ROOT=/Users/devnn/Documents/android-sdk-macosx export A_SDK_ROOT
当然注意路径要作相应的修改。
第三步,打开Eclipse配置ndk路径,preference->android->ndk
第四步,创建测试工程NDK_TEST
第五步,右键工程->Android Tools->Add Support Library
然后在你的工程目录下生成了一个目录jni里面有一个cpp文件和mk文件。我们先测试c文件,所以把它的后缀改成c。内容参考如下:
#include <string.h>
#include <jni.h>
jstring Java_com_example_ndk_MainActivity_hello(JNIEnv* env, jobject thiz)
{
return (*env)->NewStringUTF(env, "Hello ,this is from jni");
}
注意C文件的名字和mk文件中对应的名字要一致。
到这里,这个C文件代码会报错,看下一步。
第六步,右键工程->propertiers->C/C++ Gerneral->Paths and Symbols
在include这个选项下点击add,会弹出一个对话框让你选择头文件路径,选File system,比如我的是
/Users/devnn/Documents/android_ndk/android-ndk-r10e/platforms/android-19/arch-arm/usr/include
这个时候,c文件中的错误会消失。
第七步,编写你的Activity的代码
package com.example.ndk;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tvText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvText=(TextView) findViewById(R.id.text);
tvText.setText(hello());
}
public native String hello();
static{
System.loadLibrary("NDK_TEST");
}
}
我的工程结构如下:
然后,运行你的工程,就会看到结果。
转载于:https://blog.51cto.com/120806872/1713581