闲话不多说,直接入正题:
我的环境:
操作系统: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"); } }
我的工程结构如下:
然后,运行你的工程,就会看到结果。
本文出自 “Focus_000” 博客,请务必保留此出处http://120806872.blog.51cto.com/8289253/1713581
原文地址:http://120806872.blog.51cto.com/8289253/1713581