Ubuntu NDK Demo

前面文章介绍了 Ubuntu 安装 GNU Toolchain for ARM,有了这个交叉编译工具主要是为了Android的移植做了准备。下面介绍Android中的NDK开发。

1、从这里下载最新版的NDK,现在最新版名字是android-ndk-r5b-linux-x86.tar.bz2.tar,解压,解压后名字为android-ndk-r5b,,接下来设置PATH环境变量:export PATH=$PATH:/home/stone/android-ndk-r5b,设置该环境变量是因为等会在android-ndk-r5b目录下的ndk-build程序要被用到;

2、上面这样就配置好了NDK的开发环境,接下来就创建一个项目来测试一下,步骤如下:

1)、使用Eclipse创建一个Android项目,名字为“HelloNDKJNI”,Build Target设置为“Android 2.2”,Application Name设置为“HelloNdkJni”,Package Name设置为“com.stone”,Create Activity设置为“.HelloNdkJni”,Min SDK Version设置为“8”;2)、接下来创建C语言库,在Eclipse的Package Explore里面的HelloNDKJNI项目下创建目录“jni”,并在该目录下创建两文件“Android.mk”和“hello-ndk-jni.c”,如下图所示:

Android.mk文件内容如下:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := hello-ndk-jni

LOCAL_SRC_FILES := hello-ndk-jni.c

include $(BUILD_SHARED_LIBRARY)

hello-ndk-jni.c文件内容如下:

#include

#include

//注意这里是又规则的

jstring Java_com_stone_HelloNdkJni_stringFromNDKJNI( JNIEnv* env,jobject thiz )

{

return (*env)->NewStringUTF(env, “Hello from NDK JNI !”);

}

3)、编译创建的C库,打开终端,进行步骤1中的设置PATH环境变量操作(如果有进行,则可跳过),进入到创建的HelloNDKJNI项目中的jni目录,执行命令ndk-build,此时会在项目中生成libs和obj目录,并在里面生成相应的文件,运行结果如下图所示:

4)刷新Eclipse中的Package Explore中的HelloNDKJNI项目,此时obj和libs目录也添加进去了,在obj/armeabi分支下也多了libhello-ndk-jni.so文件,hello-ndk-jni这个名是根据2-2)步中的Android.mk文件中的LOCAL_MODULE决定的,接下来修改src/com.stone分支下的HelloNdkJni.java文件,最后的文件内容如下:

package com.stone;

import android.app.Activity;

import android.os.Bundle;

import android.widget.TextView;

public class HelloNdkJni extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

TextView tv =new TextView(this);

tv.setText(stringFromNDKJNI());

setContentView(tv);

}

public native String stringFromNDKJNI();

static{

System.loadLibrary(“hello-ndk-jni”);

}

}

更多的NDK例子,可以参考第1步中解压后目录下的samples目录下的项目。

参考见

人若软弱就是自己最大的敌人

Ubuntu NDK Demo

相关文章:

你感兴趣的文章:

标签云: