Android:Windows 下搭建NDK-JNI开发环境

原创 2013年12月05日 23:27:50

http://down.51cto.com/data/1033886 原版的doc文档我上传到了51CTO

Step 1:下载NDK r9

直接在Android Develop官网上下载NDK r9版本(如果无法登陆官网可以考虑使用自由门代理软件),解压缩后然后再环境变量中添加进去。此版本的优势是内部集成了ndk-build,可以作为替代原来的庞杂的cygwin来对native method进行编译。

 部分我也放到了自己的网盘上:

http://yunpan.cn/QDjUeXchBRUHK


android-ndk-r9-windows-x86_64.zip

android-ndk-r8e-windows-x86_64.zip

android-ndk-r8e-windows-x86.zip

android-ndk-1.6_r1-windows.zip


Step 2:新建Android工程

新建一个类JniInterface,并在其中声明native method

 

Step 3:编辑生成Class文件

 

使用命令行进入JniInterface.java这个类的目录下,并使用javac JniInterface.java这个命令生成类对应的class文件。

Step 4:生成.h头文件

将我们新生成的.class文件复制到bin文件对应的目录下,这里就是对应的包的目录下。:

 

然后cd命令回到/bin/classes这个目录下,使用javah -jni com.wxyyx.jnidemo.JniInterface这个命令编辑生成头文件。

命令格式:javah -jni 包名+类名

 

生成的头文件内容:

/* DO NOT EDIT THIS FILE - it is machine generated */

#include <jni.h>

/* Header for class com_wxyyx_jnidemo_JniInterface */

#ifndef _Included_com_wxyyx_jnidemo_JniInterface

#define _Included_com_wxyyx_jnidemo_JniInterface

#ifdef __cplusplus

extern "C" {

#endif

/*

 * Class:     com_wxyyx_jnidemo_JniInterface

 * Method:    IntFromJNI

 * Signature: ()I

 */

JNIEXPORT jint JNICALL Java_com_wxyyx_jnidemo_JniInterface_IntFromJNI

  (JNIEnv *, jobject);

/*

 * Class:     com_wxyyx_jnidemo_JniInterface

 * Method:    StringFromJNI

 * Signature: ()Ljava/lang/String;

 */

JNIEXPORT jstring JNICALL Java_com_wxyyx_jnidemo_JniInterface_StringFromJNI

  (JNIEnv *, jobject);

#ifdef __cplusplus

}

#endif

#endif

Step 5:编辑.c文件

将刚才生成的头文件复制到项目的jni目录下(没有则新建一个jni目录):

 

新建一个.c文档并将.h头文件包含进去:

 

Step 5:编辑Android.mk文件

Android.mkJNImakefile文件,基本语法如下:

LOCAL_PATH :$(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := JniInterface

LOCAL_SRC_FILES := com_wxyyx_jnidemo_JniInterface.c

include $(BUILD_SHARED_LIBRARY)

最简单的只要指定生成的库名称与调用的头文件就可以了。

Step 6:编译

 

进入到工程的根目录下使用ndk-build命令,就生成了libJniInterface.so文件。

Step 7:调用Native Method

这里的虚拟机推荐使用genymotion,但是不要使用Nexus one这个型号的机器。

JniInterface.class中添加一句声明:

static {

System.loadLibrary("JniInterface");

}

这边的库的名字不要lib也不要.so这些前缀与后缀。

MainActivity中定义如下:

 

结果就是:

 

Windows下快速搭建安卓开发环境android-studio

一、Android Studio简单介绍 2013年GoogleI/O大会首次发布了Android Studio IDE(Android平台集成开发环境)。它基于Intellij IDEA开发环境,...
  • lsh869
  • lsh869
  • 2016年07月13日 23:50
  • 2966

Java开发环境搭建(windows版、史上最详细版)

Java开发环境搭建 在本章节中我们将为大家介绍如何搭建Java开发环境。我使用的是windows系统,那就给大家讲一下在windows系统下搭建java的开发环境。 Jdk介绍 JDK(Java D...
  • Runing_IT_Man
  • Runing_IT_Man
  • 2017年09月02日 13:19
  • 1077

windows环境下搭建python机器学习开发环境

是的,我自己都快忘记我的本职其实是数据挖掘&&机器学习了&&信息安全,老是不要脸的把自己当一个程序猿,最近想写个神经网络的算法结果发现手上木有适合用的环境了。说实话我虽然不否认vim的强大,但是不能随...
  • SuoMaLiXiongMao
  • SuoMaLiXiongMao
  • 2016年05月26日 15:07
  • 2145

win10搭建Android开发环境(Eclipse)

首先准备好安装包: 1、  JDK 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 根据系统和...
  • silleyj
  • silleyj
  • 2016年07月25日 11:36
  • 8503

在Windows上搭建IDEA14+Anroid开发环境

一,准备工作需要下载并安装JDK,我用的JDK1.7,默认安装目录在C盘的Program Files 下,同时安装的还有jre7。安装完毕后设置环境变量,JAVA_HOME等。这些千篇一律的东西,网...
  • persitail
  • persitail
  • 2015年09月24日 15:35
  • 3011

windows下python开发环境搭建

windows下python开发环境搭建 1 -- 安装python的前期准备 Python开发有众多工具,又以Eclipse+Pydev最为常见。Eclipse平台对开发同学...
  • dongfengkuayue
  • dongfengkuayue
  • 2015年11月03日 16:28
  • 2103

ubuntu下搭建android开发环境(一)安装ubuntu系统(by 星空武哥)

虽说已经有很多ubuntu的安装教程了,但是今天我还是要写一篇这样的文章,因为这篇文章是为了在ubuntu下搭载android开发环境所准备的,所以侧重点不同。      首先我们先看看google在...
  • lsyz0021
  • lsyz0021
  • 2016年08月11日 23:33
  • 7892

【GO】windows下go语言开发环境搭建

1.首先安装go,环境变量自动配置; 2.在D盘新建文件夹,命名为mygo,D:\mygo,配置环境变量GOPATH=D:\mygo, 3.安装govendor:      s1. 命令行执行 ...
  • charliestark
  • charliestark
  • 2018年01月11日 10:33
  • 96

(一)windows下的基于Eclipse的STM32开发环境搭建

在WIN7 64bit下,基于ECLIPSE的STM32开发环境搭建(一)
  • Mustang_Jack
  • Mustang_Jack
  • 2015年07月20日 18:56
  • 4794

Android开发环境部署——非常详细的Android开发环境搭建教程(windows 环境)

在windows安装Android的开发环境不简单也说不上算复杂,本文写给第一次想在自己Windows上建立Android开发环境投入Android浪潮的朋友们,为了确保大家能顺利完成开发环境的搭建,...
  • yelin042
  • yelin042
  • 2017年10月18日 08:47
  • 299
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android:Windows 下搭建NDK-JNI开发环境
举报原因:
原因补充:

(最多只允许输入30个字)