NDK简单实例

下面将以前写的一个简单的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++语言。



  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值