相对于c语言和c++Java的效率要低一些,对于一些对性能要求比较高的操作,可以使用ndk开发,使用Java调用
1.新建Android项目
2.在工程下建立jni目录,在jni目录下建立Android.mk和Application.mk文件
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := 库文件名
LOCAL_SRC_FILES := c/c++文件名
LOCAL_LDLIBS+=-L$(SYSROOT)/usr/lib -llog
include $(BUILD_SHARED_LIBRARY)
Application.mk
APP_ABI := all
在jni下新建一个c文件,如test.c
#include <string.h>
#include <jni.h>
返回值类型 Java_包名_类名_方法名(JNIEnv* env, jobject thiz) {
函数体
}
在Java代码中声明
static{
System.loadlibrary("库文件名");//加载动态库
}
private native 返回值 方法名//声明jni函数
{
}
3.使用命令行进入当前工程的路径,使用ndk-build编译,编译完成后刷新Android项目,进行项目的部署
ps:
1.在Java中声明的jni方法是native类型的,在c文件中声明的是jni类型的,jstring,jint等
2.Java包名中的.在c文件中换成_