`

【android&&jni&&NDk】详细介绍每一步,让你轻松掌握android JNI NDk

 
阅读更多

一,开发环境配置

众所周知,万事开头难,配置开发环境是所有开发项目最基本且必须要做的一步。

所用的所有软件及开发平台: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调用(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 JNI 经典实例

    Android-ndk-jni AES加解密 C++

    本知识点主要聚焦于如何在Android NDK(Native Development Kit)环境下,通过JNI(Java Native Interface)来实现AES(Advanced Encryption Standard)加解密。以下是关于这一主题的详细阐述。 **AES加解密简介** ...

    Android Studio JNI/NDK 编程

    在Android Studio中进行JNI/NDK开发,你需要: 1. **配置Gradle插件**:在build.gradle文件中启用`externalNativeBuild`,指定构建脚本,并配置支持的ABIs。 2. **设置源码目录**:创建jniLibs目录存放本地库,jni...

    Android NDK jni常用的API

    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

    安卓app开发之NDK入门教程,JAVA代码通过JNI接口调用NDK代码(C语言编写的linux android功能).zip

    Android Studio NDK JNI配置Demo代码 2016

    **Android Studio NDK JNI配置与应用** Android Studio是一款强大的Android应用程序开发工具,它不仅支持Java语言,还允许开发者使用原生代码(C/C++)进行开发,这就是所谓的Android NDK。JNI(Java Native ...

    android JNI运行NDK编译成的可执行文件

    在提供的博客链接中,作者详细介绍了如何将NDK编译的可执行文件集成到Android项目,并在JNI层进行调用。虽然这种方法不常用,但对于需要高效计算或利用特定硬件功能的场景,可能是一个有效的解决方案。不过,务必...

    Android Studio中使用NDK/JNI

    在Android开发中,NDK(Native Development Kit)和JNI(Java Native Interface)是两个关键工具,它们允许开发者在Android应用中使用C/C++代码。本文将深入探讨如何在Android Studio中利用NDK和JNI,以及它们的应用...

    android jni 屏幕截图 NativeScreenCapture

    在Android开发中,JNI(Java Native Interface)是一个关键的组件,它允许Java代码与本地(C/C++)代码进行交互。本项目“android jni 屏幕截图 NativeScreenCapture”专注于利用JNI技术来实现Android设备的屏幕截图...

    android NDK 自动生成jni头文件

    Android NDK 自动生成jni头文件 Android NDK 中生成 jni 头文件是 JNI 开发中的一個重要步驟。JNI(Java Native Interface)是一個允許 Java 代码调用 Native 代码的接口,通過 JNI,可以將 Java 代码與 Native ...

    Android Studio JNI_NDK开发实例

    Android Studio JNI_NDK开发实例是Android应用开发中的一个重要...理解并掌握JNI_NDK开发,能够提升Android应用的性能,解决特定场景下的技术挑战。通过不断实践和学习,开发者可以更加熟练地驾驭这一强大的工具集。

    Android ndk jni 史上最强NDK入门项目实战

    本指南将深入浅出地介绍这两个概念,通过实际项目实战,让你快速掌握NDK与JNI的使用。 一、Android NDK Android NDK是一套用于Android应用开发的工具集,允许开发者在Android应用中使用原生代码(如C/C++)。NDK的...

    android jni获取 Mac地址

    在Android开发中,JNI(Java Native Interface)是一种技术,允许Java代码和其他语言写的代码进行交互。当需要执行一些性能敏感或者Java无法直接处理的任务时,开发者通常会利用JNI调用C/C++原生代码。本话题关注的...

    android ndk jni so库生成

    在Android开发中,JNI(Java Native Interface)是Java平台标准的一部分,它允许Java代码和其他语言写的代码进行交互。...通过理解并掌握NDK和JNI的使用,开发者可以提升Android应用的性能和功能范围。

    android eclipse jni(ndk) 开发环境的搭建

    本文将详细介绍如何在Linux环境下搭建一套简洁高效的Android Eclipse JNI (NDK) 开发环境。 #### 二、准备工作 在开始之前,我们需要确保具备以下条件: 1. **Linux操作系统**:本文基于Linux环境进行介绍,其他...

    Android使用JNI调用Python so解释器

    总结来说,"Android使用JNI调用Python so解释器"涉及到Android NDK开发,JNI接口设计,Python解释器的Android移植,以及跨语言通信等多个技术层面。这种技术虽然复杂,但能充分利用Python的灵活性和Android的广泛...

    JNI NDK 开发指南

    JNI(Java Native Interface)是Java平台的一个重要组成部分,它允许Java代码和其他语言写的代码进行交互。NDK(Native Development Kit)是Google...阅读这本书,将帮助你从基础到进阶,全面掌握JNI和NDK的使用技巧。

    Eclipse Android NDK JNI 详细开发流程

    本文将详细介绍如何在Eclipse环境下配置和使用Android NDK与JNI进行原生开发的过程。 #### 二、准备工作 1. **Eclipse SDK 3.6.1**:包括必要的ADT(Android Development Tools)和CDT(C/C++ Development Tools)插件...

    Ndk-Jni开发实战

    在Android应用开发中,NDK(Native Development Kit)和JNI(Java Native Interface)是两个重要的技术,用于实现Java代码与本地C/C++代码的交互。本实战教程将深入探讨NDK-JNI的开发过程,结合具体的AES加密DEMO,...

Global site tag (gtag.js) - Google Analytics