1:首先,开发之前,我们有必要先了解ndk与jni,可能有很多人都知道这2个单词,甚至它们的全称,但它们到底与Android有什么联系,可能就很少人知道,或者只懂皮毛。下面我就附上一个链接,介绍Android的ndk/jnide
2:下面就开始进入正题。。。。首先需要配置NDK的环境配置,博主用的是
各种环境搭好了,在新建Android工程,并且在这个工程目录下新建一个名为jni的文件夹(这个名必须是jni,不能是别的),然后在jni文件夹目录下新建一个名为Android.mk和Application.mk的file文件(名称就是这样,规范些),如下图:
其次在编写一个native方法。如下图:
下面就开始生成.h的头文件了
在cmd中是进入到你项目的src目录下,输入:javah com.example.lianshou_test.jni.HelloJni 回车就可以了
这是刷新工程文件,把生成的.h文件剪切到jni文件夹中。其次在新建一个同名的.c方法实现文件。
现在开始编写建好的文件了,首先在Android.mk中编写最基本的代码:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := henryjni
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := HelloJni.c
LOCAL_C_INCLUDES :=$(JNI_H_INCLUDE)
LOCAL_LDLIBS := -llog
LOCAL_SHARED_LIBRARIES := liblog libcutils
LOCAL_PRELINK_MODULE := false
include $(BUILD_SHARED_LIBRARY)
至于上面为什么这样写?分别是什么意思?戳这里
在application.mk中输入:
APP_ABI := armeabi armeabi-v7a x86
APP_PLATFORM := android-14
最后在java的程序入口类中写入
static{
System.loadLibrary("henryjni");
}
到这里基本完成了百分之90了。最后在cmd中输入:ndk-build
编译生成相应的so文件。大功告成了。。。。