(Linux平台)在Android中调用JNI
(需要使用NDK工具编译生成.so文件,所以请先下载NDK,
附地址: http://wear.techbrood.com/tools/sdk/ndk/index.html ,请选择对应平台下载)
一、编写APP时,使用:
static {
System.loadLibrary("native库名,一般为C/C++文件名");
}
二、声明native方法,如:
public native String getJNIString();
三、编译一次
四、进入APP源码src文件夹,在终端执行指令:
javah 包名.类名
(例如 :javah com.example.jnidemo.JNITest)
执行后,src目录下会生成.h结尾的头文件。文件内容已自行生成,主要包含了步骤二中声明的native方法在JNI下的对应函数名,如:
jstring JNICALL Java_com_liyd_jnidemo_JNITest_getJNIString (JNIEnv *, jobject);
(此方法即我们源文件要实现的方法)
五、在APP项目根目录下创建jni文件夹,在其中创建C/C++源文件、Android.mk,(此外可选建Application.mk)。
1.源文件中实现步骤二中所述函数。
2.Android.mk有5个必须用到的变量:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := 模块名 (,模块名是唯一的,比如:jni-demo)
LOCAL_SRC_FILES := 源文件 (可以有多个,使用空格或Tab来分隔,比如:jni-demo.c jni-test.c)
include $(BUILD_SHARED_LIBRARY)六、在linux终端中,进入步骤五中创建的jni文件夹路径下,使用native工具编译,生成.so文件。
直接执行指令(ndk-build是一个ndk中一个脚本文件)为:
$ndk根目录路径/ndk-build
即可自动生成.so等文件。
七、再次编译APP,顺利运行。
【附上我写的一个极简小demo地址: http://download.csdn.net/detail/u013403478/9590098 】
转载请注明出处:http://blog.csdn.net/u013403478/article/details/52068095
更多相关文章
- 简单实现Android文件上传
- Android实现简单的电子词典
- [转]Android(安卓)中Preferences的使用
- android jni 使用流程
- Android(安卓)porting (s3c6410)
- android简单实例---------SharedPreferences的简单使用与讲解
- android shell cp 文件到/system/xxx
- Android(安卓)framework 编译常见错误
- ubuntu kylin 下的 android 编译