关于如何安装配置Cygwin,如何安装ndk网上搜搜一大片,这里不再赘述。下面主要对这个简单的JNI实例的实现,做一个记录。
注意:使用的是ndk-1.6.r1,在ndk_r4版本后和这有点区别,这里说明下。
1、在ndk安装目录的apps下建立一个工程文件夹JniDemo,在该文件夹下建立一个project文件夹,和一个Application.mk文件。
2、在eclipse创建一个Android项目,指定项目路径为project路径
3、在包demo.jni下创建一个类,命名为Jni.java。并保存,这样eclipse自动编译生成class文件,在bin文件夹下对应的包路径下
4、进入Cygwin,cd到bin下(cd的时候如果文件夹或文件名称有空格时,在空格前加反斜杠),然后注意了:
使用set classpath=当前bin的完整路径(这步是关键,否则用javah时,会报找不到类的错)
】
然后 javah -jni demo.jni.Jni,执行成功在bin文件夹下生成一个demo_jni_Jni.h头文件。
5、在项目根目录(project)下建立一个jni文件夹,然后将上面生成的头文件复制到该文件夹下。
6、在jni下建立一个普通c文件,实现头文件中的方法。这里不再赘述。
7、在jni下建立一个Android.mk文件,该文件主要是用来编译上面c文件,生成.so本地库。
8、在ndk根目录下,运行make APP=项目名称,编译生成本地库文件,这样在项目根路径下生成一个libs\armeabi\*.so文件。该文件的命名是
lib+库名称(在Android.mk中LOCAL_MODULES :=tt中的tt)+.so 。
这里编译的时候,可能会报Android NDK: Application JniDemo targets platform 'android-8'类似的错误,这时,只需要将default.properties中android的版本信息改成3或者4就可以了,然后再make命令,之后再改回来。
9、在java文件中调用时,需要静态引入该库,使用System.loadLibrary(库名称);
这里先跑起来第一个Demo,然后慢慢研究其原理性之类的东东。累了,歇歇喽!
分享到:
相关推荐
Android JNI(Java Native Interface)是Android平台上的一个关键特性,它允许Java代码和其他语言写的代码进行交互,通常用于提升性能、调用系统底层库或利用C/C++的库。在这个"android JNI学习三实例"中,我们将...
在Android Studio中配置JNI开发环境,首先需要创建一个项目,选择"New Project",然后在模板选择中找到"Empty Activity"。创建完成后,为了引入C/C++支持,我们需要修改项目的build.gradle文件。在app模块的build....
Android NDK JNI 经典实例Android NDK JNI 经典实例Android NDK JNI 经典实例Android NDK JNI 经典实例Android NDK JNI 经典实例Android NDK JNI 经典实例Android NDK JNI 经典实例
在这个"Android jni 编程实例"中,我们将探讨如何在Android Studio环境下进行JNI开发,通过一个简单的入门demo来学习这个过程。 首先,我们需要了解JNI的基本概念。JNI是Java平台提供的一种接口,它允许Java代码...
在这个"第一个JNI实例学习"中,我们将探讨如何创建并运行一个基本的JNI程序。 首先,我们需要理解JNI的核心概念。JNI提供了一套接口,让Java代码能够声明本地方法,这些方法在运行时由本地(非Java)代码实现。本地...
"android驱动JNI的USB2串口的参考实例"是一个关于如何在Android系统中利用JNI(Java Native Interface)技术来实现USB到串口通信的实践案例,主要涉及到FTDI(Future Technology Devices International)公司的FT23X...
在Android开发中,JNI(Java Native Interface)是一个关键的组件,它允许Java代码与其他语言编写的代码进行交互,特别是C和C++。本教程将深入探讨如何在Android应用中使用JNI进行跨语言通信,以实现特定功能或提高...
Android Studio的JNI(Java Native Interface)开发入门教程 JNI,全称为Java Native Interface,是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。JNI在Android开发中扮演着重要角色,尤其当...
本教程将通过四个实例来深入探讨Android JNI的使用。 **实例一:Hello JNI** 这个基础实例旨在介绍JNI的基本用法。首先,我们需要在Java层创建一个native方法,并使用`System.loadLibrary()`加载本地库。然后,在C/...
Android JNI(Java Native Interface)是Java平台的一部分,它允许Java代码和其他语言写的代码进行交互。...通过学习这个实例,开发者能够更好地掌握Android应用中Java和C/C++的混合编程,提升应用的性能和功能。
1. 创建一个新的Android工程或选择一个现有的工程。 2. 在工程目录下创建`jni`目录,这是存放本地源代码的地方,通常会有`Android.mk`和`Application.mk`两个Makefile文件,用于编译C/C++代码。 3. 在Java代码中,...
总结来说,`serial_jni_largestgle_Androidjni_Android串口操作JNI代码_android_`项目是一个Android应用使用JNI进行串口通信的实例。它涵盖了JNI编程、Android NDK开发、原生代码与Java代码的交互、串口通信协议以及...
以下是一个基础的Android Studio JNI入门教程: 1. **环境配置**: 在Android Studio中,首先确保已经安装了NDK(Native Development Kit),它是Android平台提供用来开发C/C++原生代码的工具集。在项目级的`build...
这个"android jni实用demo"提供了一个很好的学习平台,帮助开发者深入理解如何在Android应用中使用JNI进行跨语言编程。 JNI允许Android应用在Java代码中调用C/C++函数,反之亦然,这对于性能优化、利用硬件加速、接...
在Android应用开发中,JNI(Java Native Interface)是一种让Java代码和本地(C/C++)代码交互的技术...通过深入学习和实践这个示例,开发者可以更好地理解字符编码和JNI的工作原理,避免在处理多语言内容时出现错误。
在"JNI02"这个文件中,可能包含了一个或者多个具体的JNI应用实例,可能涉及到更复杂的数据类型传递,如结构体、数组,或者是多线程处理、文件操作等。学习这个实例可以帮助开发者理解JNI的实际应用,提升在Android...
Android Studio是一款专为Android应用开发设计的集成开发环境(IDE),它支持使用Java、Kotlin等语言编写应用程序。JNI(Java Native Interface)是Java平台的一部分,允许Java代码和其他语言写的代码进行交互。JNI...
在Android开发中,JNI(Java Native Interface)是一种技术,允许Java代码和其他语言写的代码进行交互。当需要执行一些性能敏感或者Java无法直接处理的任务时,开发者通常会利用JNI调用C/C++原生代码。本话题关注的...
实现这一功能的第一步是创建一个C/C++库,该库包含处理串口操作的函数。这些函数可能包括`open`(打开串口)、`write`(发送数据)、`read`(接收数据)、`close`(关闭串口)等。为了支持多串口,我们需要在C/C++库...