一,开发环境配置
众所周知,万事开头难,配置开发环境是所有开发项目最基本且必须要做的一步。
所用的所有软件及开发平台:Win7+NetBeans+Vmware+ubuntu+NDK+android SDK
首先,在Win7平台下面配置好开发android的环境,具体细节参照博客:http://blog.csdn.net/tianshuai11/article/details/7367700
然后,在Vmware中的ubuntu系统中下载android-ndk-r7b的NDK开发包http://developer.android.com/sdk/ndk/index.html 选择Linux版本。下载后解压到/usr文件夹下面,接着配置环境变量:vi .bashrc 在最后添加:NDK=/usr/android-ndk-r7b export NDK---》然后让更改生效:source
.bashrc---》最后在终端测试:echo $NDK 看是否输出:/usr/android-ndk-r7b 如果输出则代表配置成功
二,代码编写
在看接下来文章之前,希望你已经对Jni有所了解。如果不是很了解希望你能八这篇博文中的例子实现,http://blog.csdn.net/tianshuai11/article/details/7367881
1)在netBeans中新建工程:Project Name:hello ; Package Name:tianshuai.hello ;Activity Name :hello ;Target Platform 选 Android 2.3.3
2)在hello文件中添加代码如下:
main.xml中做相应更改
3)编译C的头文件
右键->hello工程->生成,在hello\bin\classes\tianshuai\hello中生成 hello.class
然后在终端Dos窗口中 cd 到\hello\bin\classes 目录下:输入javah -classpathC:\Users\tianshuai\Desktop\hello\bin\classes -jni tianshuai.hello.hello
在classes文件夹下会生成tianshuai_hello_hello.h 文件:
PS:这里假设你已经配置好java环境变量,具体参见博文http://blog.csdn.net/tianshuai11/article/details/7367700
4)手动更改工程
在hello工程的根目录下新建 jni文件夹,然后将tianshuai_hello_hello.h
文件拷进去
添加接口实现文件:tianshuai_hello_hello.c
添加生成处理文件:Android.mk
5)将所有以上工程及文件保存好,拷贝到vmware下的ubuntu 操作系统下面
cd /hello
./$NDK/ndk-build
在/hello/libs中会生成armeabi/libhello.so文件
6)测试:
将Linux中更改好的工程文件,拷贝到windows下,用Netbeans打开,运行

三,总结
1)目标,通过java调用已经用C写好的源文件
2)步骤,1>已知写好的c文件
2>编写java代码,调用特定函数名的c文件
3>将写好的java代码,编译成.class文件,然后生成 .h 文件
4>ndk编译一下 .h .c然后 通过java调用c目标实现
如果你经过千辛万苦,看到以上结果的时候,相信你一定内牛满面……
程序员的快乐就在这里……
希望有什么建议和意见给我留言,我一定积极听取大家意见,并将博文疏漏之处改正。
分享到:
相关推荐
AndroidStudio环境下的jni调用(NDK),这个教程可以让完全不会AndroidStudio的人学会jni调用。完全步骤话,非常简单。
Android NDK JNI 经典实例Android NDK JNI 经典实例Android NDK JNI 经典实例Android NDK JNI 经典实例Android NDK JNI 经典实例Android NDK JNI 经典实例Android NDK JNI 经典实例
本知识点主要聚焦于如何在Android NDK(Native Development Kit)环境下,通过JNI(Java Native Interface)来实现AES(Advanced Encryption Standard)加解密。以下是关于这一主题的详细阐述。 **AES加解密简介** ...
在Android Studio中进行JNI/NDK开发,你需要: 1. **配置Gradle插件**:在build.gradle文件中启用`externalNativeBuild`,指定构建脚本,并配置支持的ABIs。 2. **设置源码目录**:创建jniLibs目录存放本地库,jni...
Android NDK jni 常用的API Android NDK 开发时需要的常用的 JNI API 可以分为以下几类: 获取版本信息 * `jint GetVersion(JNIEnv *env);`:获取 JNI 函数版本信息,返回值为 jint 类型,在 C/C++ 中 jint 为 32...
安卓app开发之NDK入门教程,JAVA代码通过JNI接口调用NDK代码(C语言编写的linux android功能).zip
**Android Studio NDK JNI配置与应用** Android Studio是一款强大的Android应用程序开发工具,它不仅支持Java语言,还允许开发者使用原生代码(C/C++)进行开发,这就是所谓的Android NDK。JNI(Java Native ...
在提供的博客链接中,作者详细介绍了如何将NDK编译的可执行文件集成到Android项目,并在JNI层进行调用。虽然这种方法不常用,但对于需要高效计算或利用特定硬件功能的场景,可能是一个有效的解决方案。不过,务必...
在Android开发中,NDK(Native Development Kit)和JNI(Java Native Interface)是两个关键工具,它们允许开发者在Android应用中使用C/C++代码。本文将深入探讨如何在Android Studio中利用NDK和JNI,以及它们的应用...
在Android开发中,JNI(Java Native Interface)是一个关键的组件,它允许Java代码与本地(C/C++)代码进行交互。本项目“android jni 屏幕截图 NativeScreenCapture”专注于利用JNI技术来实现Android设备的屏幕截图...
Android NDK 自动生成jni头文件 Android NDK 中生成 jni 头文件是 JNI 开发中的一個重要步驟。JNI(Java Native Interface)是一個允許 Java 代码调用 Native 代码的接口,通過 JNI,可以將 Java 代码與 Native ...
Android Studio JNI_NDK开发实例是Android应用开发中的一个重要...理解并掌握JNI_NDK开发,能够提升Android应用的性能,解决特定场景下的技术挑战。通过不断实践和学习,开发者可以更加熟练地驾驭这一强大的工具集。
本指南将深入浅出地介绍这两个概念,通过实际项目实战,让你快速掌握NDK与JNI的使用。 一、Android NDK Android NDK是一套用于Android应用开发的工具集,允许开发者在Android应用中使用原生代码(如C/C++)。NDK的...
在Android开发中,JNI(Java Native Interface)是一种技术,允许Java代码和其他语言写的代码进行交互。当需要执行一些性能敏感或者Java无法直接处理的任务时,开发者通常会利用JNI调用C/C++原生代码。本话题关注的...
在Android开发中,JNI(Java Native Interface)是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。...通过理解并掌握NDK和JNI的使用,开发者可以提升Android应用的性能和功能范围。
本文将详细介绍如何在Linux环境下搭建一套简洁高效的Android Eclipse JNI (NDK) 开发环境。 #### 二、准备工作 在开始之前,我们需要确保具备以下条件: 1. **Linux操作系统**:本文基于Linux环境进行介绍,其他...
总结来说,"Android使用JNI调用Python so解释器"涉及到Android NDK开发,JNI接口设计,Python解释器的Android移植,以及跨语言通信等多个技术层面。这种技术虽然复杂,但能充分利用Python的灵活性和Android的广泛...
JNI(Java Native Interface)是Java平台的一个重要组成部分,它允许Java代码和其他语言写的代码进行交互。NDK(Native Development Kit)是Google...阅读这本书,将帮助你从基础到进阶,全面掌握JNI和NDK的使用技巧。
本文将详细介绍如何在Eclipse环境下配置和使用Android NDK与JNI进行原生开发的过程。 #### 二、准备工作 1. **Eclipse SDK 3.6.1**:包括必要的ADT(Android Development Tools)和CDT(C/C++ Development Tools)插件...
在Android应用开发中,NDK(Native Development Kit)和JNI(Java Native Interface)是两个重要的技术,用于实现Java代码与本地C/C++代码的交互。本实战教程将深入探讨NDK-JNI的开发过程,结合具体的AES加密DEMO,...