下面将以前写的一个简单的NDK实例分享一下,希望对刚接触NDK的有一定的帮助!

配置NDK环境:

先下载一个android-ndk-r8b-linux-x86.tar.bz2压缩包,解压开来。

在/etc/profile中的PATH中添加路径:这里是我的路径:$PATH:/home/xxnan/NDK/android-ndk-r8b

保存,重启。

这里就配置好了NDK环境。


接下来我们在ecplice中新建一个工程(我建的是DNKTEST),新建一个包(我的包名ianc.ndk.test),在包下面建一个类(我的类名:NDKTESTActivity)。


我们就是简单的实现一下在Activity中显示调用jni中c文件的一句话。


NDKTESTActivity.java


package ianc.ndk.test;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class NDKTESTActivity extends Activity {
private TextView text;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text=(TextView)findViewById(R.id.text);
text.setText(print());
}
public native String print();
static
{
System.loadLibrary("print");
}
}

接下来我们开始了:


先进入/工程名/bin/classes

(如我的:cd workspace/NDKEST/bin/classes)


再输入:javah -classpath . 包名.类名

(如我的:javah -classpath . ianc.ndk.test.NDKTESTActivity)


生成.h文件

(如我的:ianc_ndk_test_NDKTESTActivity.h)


再在工程名下建立jni目录


将生成的.h文件移动到jni目录下并改下名称

(如我将ianc_ndk_test_NDKTESTActivity.h改为hello.h)


再在jni目录下创建android.mk和c文件

android.mk文件:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := print
LOCAL_SRC_FILES := hello.c

include $(BUILD_SHARED_LIBRARY)

hello.c文件:

#include<jni.h>
#include<string.h>
JNIEXPORT jstring JNICALL Java_ianc_ndk_test_NDKTESTActivity_print
(JNIEnv *env, jobject thiz)
{
return (*env)->NewStringUTF(env, "hello welcome from NDK !");
}

最后在进入工程下使用ndk-build命令,在工程目录下输入:ndk-build,就会在工程目录下生成libs文件夹,里面有.os文件


最后就是将工程生成apk运行,就能使java中调用c或c++语言。



更多相关文章

  1. android 定制个性按钮 控件
  2. Android(安卓)SVG图片解析Demo
  3. Head First Android(安卓)Development-笔记
  4. Android初学者教程
  5. eclipse下android工程目录讲解
  6. 开源阅读器FBReader Android版本的编译
  7. Android(安卓)NDK系列三(Android(安卓)Studio cmke 编译多个个.so
  8. 用eclipse编写Android程序时怎样生成apk文件
  9. Android插件技术——(一)动态加载jar

随机推荐

  1. Android开发实践:实战演练隐式Intent的用
  2. Android(安卓)Studio 与 Tomcat 交互案例
  3. android 状态栏沉浸
  4. Android 打开关闭硬件加速
  5. Android实现边框圆角
  6. 【Android】应用启动画面
  7. Android控制后台音乐播放器暂停,播放
  8. 将Android项目导入到Eclipse开发环境
  9. 如何快速学习一门新技术
  10. 解决 Android(安卓)Studio 乱码问题