zhuan(http://luco1130.blog.163.com/blog/static/61326621201091711407115/)
第一步需要下载android_ndk
然后需要安装Cygwin,然后找到目录:
C:\cygwin\home\Administrator
在.bashrc文件的末尾添加:
NDK=/cygdrive/e/EclipseForAndroid/android_ndk(加下划线的为NDK的目录)
export NDK
需要在NDK目录下新建一个apps文件夹。然后再这个文件夹中可以新建我们的native方法源文件。
例如:apps/myjin/jni,即新建了一个myjni工程,jni下放置源码hello-jni.h和hello-jni.c
1.在源码目录(上面的jni)下需要编写Android.mk文件
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := myjni
LOCAL_SRC_FILES := hello-jni.c
include $(BUILD_SHARED_LIBRARY)
2.在项目文件夹(上面的myjni)顶层目录需要编写Applicationi.mk
APP_PROJECT_PATH := $(call my-dir)
APP_MODULES := myjni
编写NDK步骤:
1.新建Android项目jniTest(com.luochao.jniTest)
2.书写java native接口JNI(有一个Hello方法),和JAVA中一样声明一个native方法
3.在jniTest类中调用接口:
首先需要连接库:
static{
System.loadLibrary("myjni");
}
JNI myJNI = new JNI();
tv.setText(myJNI.Hello());//tv为jniTest的一个textview
4.生成相应的.h头文件
cd到jniTest的bin目录下:javah -classpath . -jni com.luochao.jniTest.JNI
有的环境是直接输入javah com.luochao.jniTest.JNI就可以了。
即生成了com_luochao_jniTest_JNI.h头文件
5.编写相应的.c文件。
在NDKD的source目录下新建一个文件夹myjni
在这个文件中新建一个Application.mk文件。
然后添加一个jni文件夹,将生成的.h和.c文件复制到这个文件夹中,并且新建一个
Android.mk文件。
6.编译生成库文件:
cd $NDK//进入到ndk目录
make APP=myjni//即可生成lib库。
将生成的lib文件夹整个拷贝到android目录下。
7.运行Android项目即可
分享到:
相关推荐
一个简单的jni demo,意在学习如何在Android Studio中引入jni程序。
Android中的JNI测试程序 最简单的实现JNI的测试代码,配合我的博客的博文学习
Android中实现JNI的AES加解密源代码,绝对可以运行!
android中jni的简单使用示例代码
Android NDK JNI 经典实例Android NDK JNI 经典实例Android NDK JNI 经典实例Android NDK JNI 经典实例Android NDK JNI 经典实例Android NDK JNI 经典实例Android NDK JNI 经典实例
最简单的Android程序,属于入门级别
android通过JNI访问硬件LED,包含应用程序APP,JNI代码,和LED驱动程序。
Android使用JNI调用Python so解释器
教你如何生成.h文件,使用window通过NDK编译出.so文件,如何通过JNI调用so文件
Android调用Jni返回自定义对象 博客:http://blog.csdn.net/lowprofile_coding/article/details/39367323
Android串口JNI代码,亲自验证,可以进行数据收发。
webrtc-android-jni
一个基本的Android jni程序
Android 串口读写程序 JNI代码程序
android通过JNI控制LED http://blog.csdn.net/newairzhang/article/details/38469271
Android Studio两个工程中:一个使用jni可以编译成so,一个app中加载so,调用jni的接口
内容包含了jni的介绍和作用,jni在android系统中的具体应用,jni的编写和编译技术,hal的介绍,hal的编写技术
本Demo用于android调用jni初学者,以供参考,demo中只是实现了Android调用jni通信机制,为入门者更通俗易懂。
Android studio JNI函数以及复杂对象传递
JNI和NDK的关系:在Android开发环境中,JNI是实现的目的,NDK是实现JNI的手段,即通过NDK实现JNI功能