Android NDK环境搭建及调用JNI的简单步骤
转载请注明:http://www.cnblogs.com/tiantianbyconan/p/3396595.html Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行交互操作。 1. 下载NDK(http://developer.android.com/tools/sdk/ndk/index.html),并解压,配置Path路径 2. 在项目中新建一个名为jni的文件夹,在jni中新增Android.mk文件,文件内容如下: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := PhotoUtil LOCAL_SRC_FILES := PhotoUtil.c LOCAL_LDLIBS := -llog -ljnigraphics include $(BUILD_SHARED_LIBRARY) LOCAL_MODULE:当前模块的名称 LOCAL_SHARED_LIBRARIES:当前模块需要依赖的共享库。 LOCAL_SRC_FILES:所要调用的C源码 3. 把PhotoUtil.c文件复制到jni目录下 PhotoUtil.c,包含一个图片处理方法: JNIEXPORT void JNICALL Java_com_wangjie_customviews_PicturesDialog_functionToBlur(JNIEnv* env, jobject obj, jobject bitmapIn, jobject bitmapOut, jint radius) { …… } 方法Java_com_wangjie_customviews_PicturesDialog_functionToBlur的取名方式: Java_:固定 com_wangjie_customviews:java包名 PicturesDialog:java类名 functionToBlur:java使用的方法名 4. 编译C源码,生产so库文件 进入jni目录: ndk-build 或者 ndk-buildAPP_PLATFORM=android-8 1 2 3 "Compile thumb : PhotoUtil <= PhotoUtil.c SharedLibrary : libPhotoUtil.so Install : libPhotoUtil.so => libs/armeabi/libPhotoUtil.so 执行完毕之后,android项目的libs目录下就会生成so文件: \libs\armeabi\libPhotoUtil.so 5. 在android中java代码调用: static{ System.loadLibrary("PhotoUtil"); } 加载photoUtil库(libPhotoUtil.so) 并添加: private native void functionToBlur(Bitmap bitmapIn, Bitmap bitmapOut, int radius); 然后在其他地方只需要调用该functionToBlur()方法即可: functionToBlur(bgBitmap, bitmapOut, 50); 参考: http://www.ibm.com/developerworks/opensource/tutorials/os-androidndk/section5.html http://developer.android.com/tools/sdk/ndk/index.html#Installing http://stackoverflow.com/questions/2067955/fast-bitmap-blur-for-android-sdk 本文转自天天_byconan博客园博客,原文链接:http://www.cnblogs.com/tiantianbyconan/p/3396595.html,如需转载请自行联系原作者