`

Android NDK r5 windows系统上安装与使用

阅读更多

http://blog.csdn.net/JavaTiger427/archive/2011/01/04/6115693.aspx

 

Android NDK r5 windows系统上安装与使用

 

一、 Android NDK r5安装

1、 cygwin的安装和简单配置

首先到 http://www.cygwin.com下载setup.exe  ,接着建立安装目录,如X:\cygwin (我用的是 E :\cygwin ,将setup.exe放到此目录。

启动安装:


 

BEGIN-> 点击setup.exe:


 

Next->选Install from Internet(选择在线安装方式):


 

Next->填写Root Directory,如X:\cygwin(选择安装路径):


 

Next->填写Local Package Directory,如X:\cygwin\ftp(选择下载文件存放的目录):


 

Next->选Direct Connection(选择网络连接方式):


 

Next->选一个较快的ftp(选择下载镜像站点):


 

Next->(开始下载安装):



到了关键步骤,如果仅想安装基本系统,直接Next;如果想完全安装,点击 All旁边的旋转状图标,将Default切换至Install;如果仅想在命令行下写写程序,则只要将gcc、make等开发工具选上,还有openssh等(一般选择: autoconf2.1 automake1.10 binutils gcc-core gcc4-core gdb pcre pcre-devel GNU awk );选好后,Next->:



选择需不需要创建快捷方式。->END

最后启动Cygwin,测试安装是否成功:
  点击快捷方式或X:\cygwin\cygwin.bat打开控制台,如果是域用户,按照提示makepasswd和makegroup即可。


 

输入命令检查


 

出现以上版本信息则表明make 和gcc 已经安装成功。

 

2、 Android NDK r5 windows

首先到官网下载 Android NDK r5 windows

android-ndk-r5直接解压就行了,我的路径是E:\Android_NDK

在home\<你的用户名>\.bash_profile 文件中最后添加环境变量 :打开E:\cygwin\etc\skel目录,找到 .bash_profile 文件 ,拷贝到 home\<你的用户名>\ (此处为E:\cygwin\home\Administrator)下面,在 最后添加环境变量

NDK=/cygdrive/<你的盘符>/

export  NDK

我的:NDK=/cygdrive/E/Android_NDK/android-ndk-r5

      export  NDK

其中"NDK"这个名字随便起,因为后面要用经常使用,建议不要太长。

重启cygwin,输入cd $NDK进入对应目录,就成功了。

注意:添加时用UltraEdit打开添加,如果是中文OS 使用记事本或者写字板打开编辑后,重新启动Cygwin 会报错。可以按照下图方式转换:


 

 

二、 JNI实例

1、 安装成功后编译NDK中的一个例子命令行:

  

 

编译完成后在E:\Android_NDK\android-ndk-r5\samples\hello-gl2文件夹中会生成一个文件夹libs,里面有一个子文件夹armeabi,里面生成libgl2jni.so文件

 

2、 一个简单的JNI例子

下面用一个简单的例子介绍怎么生成一个.so文件以及在Android项目中怎么调用.so文件。

  1. package  com.cn.lhq;  
  2. import  android.app.Activity;  
  3. import  android.os.Bundle;  
  4. import  android.widget.TextView;  
  5. public   class  JniTest  extends  Activity {  
  6. /** Called when the activity is first created. */   
  7. @Override   
  8. public   void  onCreate(Bundle savedInstanceState) {  
  9. super .onCreate(savedInstanceState);  
  10. // setContentView(R.layout.main);   
  11. TextView tv = new  TextView( this );  
  12. tv.setText(stringFromJNI());  
  13. setContentView(tv);  
  14. }  
  15. public   native  String stringFromJNI();  
  16. static  {  
  17. System.loadLibrary("MyFirstJNI" );  
  18. }  
  19. }  

首先,用Eclipse建立一个ANDROID的工程,命名为MyFirstJNI,工程代码为:

 

制作生成.so文件: 可以通过获取以.h文件 获取函数申明。打开命令行,键入cd (这个路径是使用Eclipse建立的工程目录的src的路径 ,我的是F:\workspace\MyFirstJNI\src ),目的是设置工程目录。然后键 入: javah -jni com.cn.lhq.JniTest,结果如果失败,那就是因为没有把MyFirst.class文件拷贝到 F:\workspace\MyFirstJNI\src \com\ cn\lhq 之下,原因是Eclipse的文件管理机制 会将.class文件和.java文件分开到不同的目录,解决方法是将F:\workspace\MyFirstJNI\bin\com\cn\lhq的 所有.class文件都拷贝到他的目录下面。再次运行javah -jni com.cn.lhq.JniTest即可。然后就可以看到在 F:\workspace\MyFirstJNI\src 下多出了一个文件:com_cn_lhq_JniTest.h,通过这个文件,我们就知道了本地接口的函数名,于是我们就根据函数名写一个com_cn_lhq_JniTest.c文件, 代码如下:

  1. #include <string.h>   
  2. #include <jni.h>   
  3. jstring  
  4. Java_com_cn_lhq_JniTest_stringFromJNI( JNIEnv* env,  
  5. jobject thiz )  
  6. {  
  7. return  (*env)->NewStringUTF(env,  "Hello from JNI !" );  
  8. }  

 

注意 这个函数的参数与用javah生成出来的参数是不同的,这里只是需要函数名而已,因为函数名必须匹配,否则在模拟器上面跑的时候会出错,当然,如果对JNI命名规则熟悉的话可以跳过javah这步,直接写一个.c文件。

写好.c文件之后就开始生成 .so 文件了,这时候需要 用到 ANDROID.MK这个文件。于是把Eclipse生成的工程目录剪切,放到NDK目录的samples目录之下 (和示例hello-gl2一样),这个时候模仿hello-gl2文件层次结构,将MyFirstJNI文件也做成那样 :在MyFirstJNI文件夹下面新建一个 jni文件夹,把 com_cn_lhq_JniTest.c 剪切到此文件夹中,同时也拷贝一个 ANDROID.MK 文件到此文件夹,用 UltraEdit打开 ANDROID.MK 文件进行修改,主要修改如下:

LOCAL_MODULE    := 工程名

LOCAL_SRC_FILES := .c的文件名(包含扩展名)

此例子应改为:

LOCAL_MODULE    := MyFirstJNI

LOCAL_SRC_FILES := com_cn_lhq_JniTest.c

然后 打开 cygwin, 进入 E:\Android_NDK\android-ndk-r5\samples\MyFirstJNI\jni目录:

   

 

输入$NDK/ndk-build命令,在E:\Android_NDK\android-ndk-r5\samples\MyFirstJNI生成libs文件夹,即生成.so文件:


 

在eclipse中重新导入生成了.so文件的 MyFirstJNI项目,运行效果图如下:

 

分享到:
评论
1 楼 laiyangdeli 2011-03-02  
Cygwin Mirror Sites:
http://cygwin.com/mirrors.html

相关推荐

    windows系统上安装与使用Android NDK r5 .doc

    【Windows系统上安装与使用Android NDK r5】 在Android应用开发中,有时需要使用C或C++编写高性能、低级别的代码,这时Android NDK就派上了用场。NDK(Native Development Kit)是一个用于构建原生代码的工具集,...

    android ndk r5 配置

    Android NDK R5 的配置与使用对于希望在 Android 应用中集成高性能 C/C++ 代码的开发者来说至关重要。通过合理利用 NDK 的特性,开发者不仅可以提升应用程序的性能,还能更好地控制应用程序的功能实现。然而,在实际...

    android-ndk-r5c-windows.zip

    1. 安装与配置:解压“android-ndk-r5c-windows.zip”,设置环境变量,确保系统能够找到NDK的路径。 2. 创建项目:使用Android Studio或其他IDE创建Android项目,并配置NDK路径。 3. 编写C/C++代码:在项目的jni目录...

    FFmpeg Android NDK r5c

    Windows 7 下使用 Android NDK r5c 编译 FFmpeg 0.7.1 教程地址: http://www.cnblogs.com/scottwong/archive/2011/06/26/2090625.html#!comments

    android-ndk-r5b-windows

    在使用"android-ndk-r5b-windows"压缩包时,解压后会得到"android-ndk-r5b"目录,里面包含了NDK的所有组件和工具。开发者可以在此目录下配置环境变量,然后使用NDK提供的工具链进行编译和构建原生代码模块。 需要...

    Android NDK

    Cygwin 是一个在 Windows 平台上运行的 Unix 模拟环境,可以模拟 Linux 环境,方便开发者在 Windows 平台上使用 NDK 编译 C 和 C++ 代码。Cygwin 的下载地址是 http://www.cygwin.com。 安装 Cygwin 需要按照以下...

    非常强大的eclipse中android ndk开发环境的配置说明

    ANDROID_NDK_ROOT=/cygdrive/d/android-ndk-r5b export ANDROID_NDK_ROOT ``` 3. **保存并退出**。 **第二步:配置Eclipse自动编译C文件** 1. **右键项目**-&gt;Properties-&gt;Builder-&gt;New-&gt;Program。 2. **Main标签...

    Android_NDK_r5_-IN-windows.rar_android

    **Android NDK r5 在Windows系统上的安装与使用** Android Native Development Kit (NDK) 是一个Android开发工具集,它允许开发者使用C和C++原生代码来编写部分应用程序,以便利用高性能计算或访问硬件特性。NDK r5...

    windows下android NDK环境的搭建

    完成以上步骤后,开发者便可以在Eclipse中使用C和C++代码,并通过NDK进行本地编译,生成.so文件,将其与Android应用集成,提高应用性能或利用特定的硬件功能。这个过程对需要在Android应用中使用C/C++代码的开发者...

    Android NDK(r5b)环境搭建及JNI实现

    下载与安装Android NDK(r5b) - **下载**:首先,需要从官方网站或其他可靠的来源下载 `android-ndk-r5b-windows` 版本的安装包。 - **解压**:将其解压到指定的位置,例如 `D:\android-ndk-r5b-windows`。 ##### ...

    Android_NDK_R5(01-13)概述

    ### Android NDK R5(01-13) 概述与详解 #### 一、Android NDK 简介及重要性 Android NDK (Native Development Kit) 是一款为Android应用开发者提供的重要工具包,它允许开发者将C/C++语言编写的本地代码集成到...

    androidndk环境搭建和入门教程

    在Windows系统上,你需要下载适合你操作系统的NDK版本,通常可以从Android开发者官网获取。下载后,解压到你选择的目录,例如`C:\Program Files\Android\android-ndk`。接下来,配置环境变量,添加NDK的路径到系统...

    ndk-r5b下编译通过的ffmpeg源码

    在Android平台上,结合NDK(Native Development Kit)可以实现原生代码级别的音视频处理,提高性能和效率。本文将详细介绍如何在Android NDK r5b环境下编译通过的ffmpeg-0.6.1源码。 1. **FFmpeg源码介绍** FFmpeg...

    NDK环境搭建

    NDK=/cygdrive/d/android-ndk-r5c-windows/android-ndk-r5c export NDK ``` 2. **Windows 2003或Windows 7系统**: - 如果安装后`home`目录下为空,没有`.bash_profile`文件,则需要手动创建该文件。 - 可以从...

    android 安装环境 windows 很好用哦。

    - 下载`android-ndk-r5b-windows.zip`并解压到本地,如`E:\Android\android-ndk-r5b`。 ##### 6. 创建虚拟设备 虚拟设备用于测试和调试Android应用。 - **创建虚拟设备**: - 打开Eclipse,选择`Window -&gt; ...

    Android配置Opencv

    配置Android环境下使用OpenCV涉及到多个步骤,包括但不限于JDK、Eclipse、Android SDK Manager、Cygwin、NDK以及OpenCV本身的安装与配置。每个环节都需要仔细操作以确保最终能够顺利在Android应用中使用OpenCV进行...

    Cygwin下载与安装.doc

    Cygwin的下载与安装是开发者,尤其是对Android NDK开发感兴趣的人员必须掌握的基础步骤。 首先,要下载Cygwin,你需要访问官方网站`http://www.cygwin.com`。下载的文件是一个名为`setup.exe`的安装程序,建议将其...

    Android开发

    首先,安装NDK的过程包括解压缩下载的NDK包,如`android-ndk-r5c-windows.zip`,这通常是Windows平台上的一个zip文件。接着,需要安装Cygwin,这是一个提供Linux环境的Windows模拟层。通过运行`setup.exe`并选择...

    基于Android平台的串口通信实现.pdf

    如`$NDK/cygdrive/e/android-ndk-r5`这样的路径指明了NDK的安装目录,而`make-c`命令则用于在NDK环境中编译项目。 总的来说,该文档详细解释了在Android平台上通过NDK和JNI实现串口通信的技术细节。这对于想要深入...

Global site tag (gtag.js) - Google Analytics