您的位置:首页 > 编程语言 > Java开发

Android NDK 开发+cygwin 的安装 +eclipse cygwin配置

2014-05-17 22:34 399 查看
前言:Android NDK r7及以上的版本已经集成了Cygwin编译环境,也就是说,我们完全可以抛弃庞大的Cygwin了。

参见:http://blog.csdn.net/codezjx/article/details/8879670

下面是原来的老方式:

Android NDK 开发 +cygwin 的安装 +eclipse cygwin配置

一、安装cygwin

1. 管理员权限运行setup.exe

   http://www.cygwin.com/setup.exe

2. 定义安装目录 C:\cygwin,然后Install for : All Users

  

3. 选择安装软件包,点all后面的旋转按钮,使其后的default变成install

  

4. 双击Windows上安装好的 Cywin快捷图标,启动 Cywin

一、安装ndk 、jdk

一、在/home/xx/.hash_profile里加入ndk和jdk的环境变量

NDK_ROOT=/cygdrive/d/sdk/android-ndk-r8

export NDK_ROOT

JAVA_HOME=/cygdrive/d/Java/jdk1.6.0_26

export JAVA_HOME

if [ -d "${JAVA_HOME}/bin" ] ; then

PATH="${JAVA_HOME}/bin:${PATH}"

fi

二、编译演示工程

现在就可以编译相关NDK工程了(一些用c/c++写的程序),编译方法如下:

1、在cygwin命令行下,进入android项目工作目录:

cd $NDK_ROOT

2、依次进入samples\hello-jni目录,(完整路径示例: E:\Andriod\develop\android-ndk-r4\samples\hello-jni)

3、运行

$NDK_ROOT/ndk-build

注意:该命令$NDK_ROOT和/ndk-build是连接到一起的,中间没有空格,实际使用时是打入完整的$NDK/ndk-build,不要只打ndk-build。

4、正常编译完成后会在你的项目libs/armeabi目录下生成对应的 .so文件。

三、使用方法如下(示例):

1、在Eclipse中新建一个工程HelloJni,HelloJni.java中的代码可参考NDK对应 sample下的演示代码(android-ndk-r4\samples\hello-jni\tests\src\com\example \HelloJni)调用方法。

2、将NDK编译项目目录下的jni和libs文件夹拷贝到新建工程目录下

注意这两个文件夹要和工程中的src和res文件在同一目录下。然后进入Eclipse中刷新工程(会看到多出两个文件夹)。

3、运行Eclipse项目,就可以在虚拟机上看到hello-jni.c函数中输出字符串。

四、每次编译项目之前必须先使用cygwin的ndk-build命令行编译ndkfoo.c:

启动cygwin;

进入D:\helios\workspace\ndkfoo\jni目录:

# cd /cygdrive/d/helios/workspace/ndkfoo/jni

执行ndk-build 编译即可:

# ndk-build

libndkfoo.so编译成功。

7)回到eclipse,重新编译ndkfoo项目。部署到AVD上(必须首先启动AVD->HTC-G7)。可以看到一个最简单的Android NDK程序正确运行到HTC-G7虚拟机中。

五、 整合NDK、cygwin和Eclipse

在eclipse中选中上面创建的ndkfoo项目, 按Alt+Enter,显示 Properties for ndkfoo窗口:

左边选Builders,右边按[New...]按钮,弹出的对话框中双击Program图标,在Edit Configuration 窗口中填入:

Name:NDK_Builder(这个名词是任意的)

切换到Main Tab:

Location:

D:\cygwin\bin\bash.exe

Working Directory:

D:\cygwin\bin

Arguments:

--login -c "cd /cygdrive/d/helios/workspace/ndkfoo/jni && $NDK_ROOT/ndk-build"

切换到Refresh Tab,勾选以下项:

Refresh resources upon completion.

The entire workspace

Recursively include sub-folders

切换到 Build Options,勾选以下项:

AllocateConsole

After a Clean

During manual builds

During auto builds

During a Clean

Spacify working set of relevant resources

这样我们就把NDK和eclipse整合到一起。当更改ndkfoo.c文件之后,就不用切换到cygwin命令窗口去执行ndkfoo的编译了。

六、 安装Eclipse C/C++开发工具包CDT

需要在windows的环境变量上加上$cygwin/bin的路径,其中 $cygwin用你的实际安装目录替换掉。

这个话题和NDK关系不大。

进入下面的地址页面:
http://www.eclipse.org/cdt/downloads.php
可以看到:

CDT 7.0.2 for Eclipse Helios

Eclipse package: EclipseC/C++ IDE Helios SR2.

p2 software repository: http://download.eclipse.org/tools/cdt/releases/helios.
记下URL:
http://download.eclipse.org/tools/cdt/releases/helios
打开eclipse菜单Window->Install new Software,

Work with:
http://download.eclipse.org/tools/cdt/releases/helios
按按钮[Select All],[Next>],安装和更新CDT。完成之后,就可以在eclipse中创建、编辑、编译、调试C/C++程序了(但这样的程序并不天生是一个Android NDK程序。更多的功能选项要逐步探索)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: