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

来源:互联网 发布:postgresql mysql 编辑:程序博客网 时间:2024/05/16 10:04

前言: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程序。更多的功能选项要逐步探索)。

0 0
原创粉丝点击