Eclipse下搭建Android的NDK开发环境

Posted developerLinwj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Eclipse下搭建Android的NDK开发环境相关的知识,希望对你有一定的参考价值。

使用Eclipse开发DNK,个人感觉更加的友好、容易。因此在Eclipse下搭建了一个NDK开发环境和开发流程。

一般的,首先要搭建android开发环境,eclipse + jdk + adt + sdk 即可。

这里重点讲解ndk开发开发流程。我使用的是android-ndk-r14b开发包。到网上下载
NDK,解压即可。

配置ndk环境

操作流程:window ----->preferences------>Android------>NDK
然后将刚刚解压的ndk下的build导进来即可。



NDK开发流程

1)、新建Android项目
2)、创建类,编写本地方法

Eclipse下搭建Android的NDK开发环境


3)、使用javah命令生成.h头文件。项目右键--->Android Tools------->add native support。这样就可以生成jni目录,将生成的头文件放到jni目录下。

Eclipse下搭建Android的NDK开发环境


4)、Android.mk文件配置so库名。

Eclipse下搭建Android的NDK开发环境


5)、我们看到头文件会出现错误,需要导入jni.h等头文件

Eclipse下搭建Android的NDK开发环境


项目右键---->properties----->C/C++ Gerneral------>Paths and Symbols 添加入需要的头文件。

Eclipse下搭建Android的NDK开发环境

include.png

将上图所示的ndk下的路径add进来。

Eclipse下搭建Android的NDK开发环境


这样就可以了,在目录下包含一个includes目录。

Eclipse下搭建Android的NDK开发环境


6)、实现头文件中定义的函数

Eclipse下搭建Android的NDK开发环境


7)、build project编译生成.so动态库

Eclipse下搭建Android的NDK开发环境


8)、加载动态库

Eclipse下搭建Android的NDK开发环境


9)、调用本地方法



10)、运行结果



以上就是eclipse下的ndk开发流程。


给出各文件内容

MainActivity

private TextView mTextView;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mTextView = (TextView)this.findViewById(R.id.mytext);
        mTextView.setText(NDKTest.getStrFromJNI());
    }

NDKTest

public class NDKTest {
    
    public native static String getStrFromJNI();
    
    static{
        System.loadLibrary("myndk");
    }

}

com_example_ndkfile_NDKTest.h

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_example_ndkfile_NDKTest */

#ifndef _Included_com_example_ndkfile_NDKTest
#define _Included_com_example_ndkfile_NDKTest
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_example_ndkfile_NDKTest
 * Method:    getStrFromJNI
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_example_ndkfile_NDKTest_getStrFromJNI
  (JNIEnv *, jclass);

#ifdef __cplusplus
}
#endif
#endif

myndk.c

#include "com_example_ndkfile_NDKTest.h"
#include <jni.h>

JNIEXPORT jstring JNICALL Java_com_example_ndkfile_NDKTest_getStrFromJNI
  (JNIEnv *env, jclass jcls){
    return (*env)->NewStringUTF(env,"hello formjni");
}

Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := myndk
LOCAL_SRC_FILES := myndk.c

include $(BUILD_SHARED_LIBRARY)


以上是关于Eclipse下搭建Android的NDK开发环境的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu 12.04 32位 eclipse android SDK NDK开发环境搭建

Eclipse下Android的NDK开发环境配置

eclipse里配置Android ndk环境,用eclipse编译.so文件

Android NDK 开发AndroidStudio 2.2 NDK的开发环境搭建

ADT+NDK搭建jni编译环境

怎么样在ubuntu环境下配置sdk