Android NDK环境搭建及调用JNI的简单步骤
2013-10-30 14:06
302 查看
转载请注明:/article/4917460.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_MODULE:当前模块的名称
LOCAL_SHARED_LIBRARIES:当前模块需要依赖的共享库。
LOCAL_SRC_FILES:所要调用的C源码
3. 把PhotoUtil.c文件复制到jni目录下
PhotoUtil.c,包含一个图片处理方法:
方法Java_com_wangjie_customviews_PicturesDialog_functionToBlur的取名方式:
Java_:固定
com_wangjie_customviews:java包名
PicturesDialog:java类名
functionToBlur:java使用的方法名
4. 编译C源码,生产so库文件
进入jni目录:
ndk-build 或者
ndk-build APP_PLATFORM=android-8
执行完毕之后,android项目的libs目录下就会生成so文件:
\libs\armeabi\libPhotoUtil.so
5. 在android中java代码调用:
加载photoUtil库(libPhotoUtil.so)
并添加:
然后在其他地方只需要调用该functionToBlur()方法即可:
参考:
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
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-build APP_PLATFORM=android-8
"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
相关文章推荐
- Android NDK环境搭建及调用JNI的简单步骤
- Android NDK环境搭建及JNI开发java和C的相互调用的基本介绍
- Android Studio 最简单的NDK环境搭建和JNi调用
- android Jni NDK开发环境搭建及其简单实例的编写
- android Jni NDK开发环境搭建及其简单实例的编写
- [android ndk]android studio动态库生成及jni底层调用步骤
- 用qemu搭建linux环境的最简单步骤(硬盘启动)
- 搭建Window环境下Jni开发步骤(1)
- Android NDK开发的环境搭建与简单示例
- 简单实现Android NDK编译jni调用动态库开发
- 初识JNI之-Android Ndk环境搭建
- 在Linux系统中搭建Node.js开发环境的简单步骤讲解
- 搭建Window环境下Jni开发步骤(2)
- JNI(2) Android NDK 环境搭建与使用
- android Jni NDK开发环境搭建及其简单实例的编写
- apache+php搭建一个简单的web环境【php调用脚本】
- eclipse上ndk环境的搭建&&so文件的生成&&jni文件的调用
- android ndk 环境搭建和简单实例
- 最新版Android NDK开发环境搭建以及第一个Android NDK程序(在eclipse中演示)(超简单实用)
- android JNI开发环境搭建及简单demo测试