Linux 环境下如何使用NDK进行Android开发

来源:互联网 发布:数据完整性稽核 caats 编辑:程序博客网 时间:2024/06/07 07:10
1.  下载NDK

地址:http://developer.android.com/tools/sdk/ndk/index.html

解压-》配置环境变量(此处不多说明) 在shell中输入ndk-build -version 验证是否安装成功。


2.  在eclipse中建立Android工程,并声明JNI函数

如下所示:(完成对jni函数的声明)


public class JNITWO {    static{        System.loadLibrary("JNI");    }        public native int cal(int a);}

接着编译,如果成功,你会在工程目录下的/bin/classes目录下找到对应的class文件


3.  生成JNI头文件

在工程根目录下建立jni目录,然后在shell中定位到jni目录下,并输入

javah -classpath ../bin/classes com.example.testjni.JNITWO

此过程成功后,会生成com_example_testjni_JNITWO.h头文件


4.  定义(实现)JNI函数,以及Android.mk文件

根据3中生成的头文件,编写c/c++文件

然后书写Android.mk文件 (范例如下)

LOCAL_PATH := $(call my-dir)LOCAL_CPP_EXTENSION := .cppinclude $(CLEAR_VARS)LOCAL_MODULE    := JNILOCAL_SRC_FILES := JNITWO.cinclude $(BUILD_SHARED_LIBRARY)

其中第二行为c++文件所必须的扩展语句(如果只有c语言可以不用这句话)

LOCAL_MODULE 表示要生成so文件的模块,比如此处会生成libJNI.so文件

LOCAL_SRC_FILES 表示要编译的源文件 (如果有多个文件可以用空格分开)

其他的可以不用修改

5.  编译生成so文件

在shell中定位到jni目录下,运行ndk-build,如果成功则会生成 so文件


备注:也可以在eclipse中配置自动利用NDK来编译,但是个人觉得不能太依赖IDE,而且自己手动编译也可以对整个过程有个更清晰的了解。

0 0
原创粉丝点击