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)、创建类,编写本地方法
3)、使用javah
命令生成.h
头文件。项目右键--->Android Tools------->add native support。这样就可以生成jni
目录,将生成的头文件放到jni
目录下。
4)、Android.mk文件配置so
库名。
5)、我们看到头文件会出现错误,需要导入jni.h
等头文件
项目右键---->properties----->C/C++ Gerneral------>Paths and Symbols 添加入需要的头文件。
include.png
将上图所示的ndk下的路径add进来。
这样就可以了,在目录下包含一个includes目录。
6)、实现头文件中定义的函数
7)、build project编译生成.so动态库
8)、加载动态库
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编译.so文件