zoukankan      html  css  js  c++  java
  • Eclipse下安装Android开发环境:NDK和CDT[转]

    来源:http://blog.csdn.net/cheungmine/article/details/6686743

    Eclipse下安装Android开发环境:NDK和CDT

     (本文根据互联网资料收集整理,并经过作者亲自验证)

    cheungmine

    本文记录了最新的eclipse版本helios如何搭建Android的JDK和NDK的开发环境。并提供了整合NDK和cygwin的方法。为了使用户不用切换到cygwin命令行去编译NDK的代码,给出了配置eclipse下的NDK环境。最后给出如何配置eclipse上的C/C++开发环境——CDT。本文还提供了一个最简单的示例说明NDK的使用方法。

    关键词:eclipse,Android,Android SDK,cygwin,NDK,CDT

    1 准备工作

    1.1Windows XP 32位环境PC机,接入宽带互联网。

    1.2安装JDK

    下载地址:

    https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-6u12-oth-JPR@CDS-CDS_Developer

    下载之后得到:jdk-6u12-windows-i586-p.exe。安装即可。本例子是安装在:D:\JavaHome。正确安装之后,系统环境变量中应包含如下设置(假定目录和本文一样):

    JAVA_HOME=...

    D:\JavaHome\jdk1.6.0_12

    CLASSPATH=...

    %JAVA_HOME%\bin;.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;;C:\ProgramFiles\Java\jre6\lib\ext\QTJava.zip;D:\OraClient10g\jdbc\lib\classes12.zip

    Path=

    %JAVA_HOME%;.;%JAVA_HOME%\bin;...

    1.3安装eclipse(HEILOS)

    下载地址:http://www.eclipse.org/downloads/

    下载:Eclipse IDE for Java EEDevelopers, 206 MB

    得到:eclipse-jee-helios-SR2-win32.zip

    Eclipse不需要安装,解压eclipse-jee-helios-SR2-win32.zip到:D:\helios。

    启动:D:\helios\eclipse.exe。工作空间为:D:\helios\workspace

    这时可以更新eclipse:

    打开eclipse;菜单Help->Check For Updates,然后检查更新。选择必要的组件更新eclipse。

    2 安装Android 开发工具

    2.1安装Android SDK

    在下面的地址中下载:android-sdk_r04-windows.zip

    http://rghost.net/download/817413/e08025da54d8e38f7e97bcdce6117620a33c054e/android-sdk_r04-windows.zip

    解压android-sdk_r04-windows.zip到:D:\helios\android-sdk-windows。

    更新android-sdk到最新:

    eclipse菜单Help->Check For Updates,进行必要的更新。

    eclipse菜单Help->Install New Software:

    Work with:

    http://dl-ssl.google.com/android/eclipse/site.xml

    点击按钮[Select All]

    点击按钮[Next>]

    2.2配置Android SDK

    1)设置引用:

    eclipse菜单->Window->Preferences:

    左边选择+Android,右边填入:

    SDK Location:D:\helios\android-sdk-windows

    点击按钮[Apply]

    2)更新Android SDK:

    eclipse菜单->Window->Android SDK and AVD Manager

    右边应该显示上一步设置的SDK Location:D:\helios\android-sdk-windows

    点击左边的Available packages,选择要更新的包。

    点击左边的Installed Packages,按 [Updated All...]可以更新全部已经安装的包。

    2.3 创建Android虚拟机:

    eclipse菜单->Window->Android SDK andAVD Manager,左边选择:

    Availabledevices,右边按[New...]按钮,弹出Create new Android VirtualDevice (AVD)对话框:

    Name:HTC-G7

    Target:Android 2.2 - API Level 8

    SD Card:

           Size=1000 MiB

    按[Create AVD]按钮。这个AVD要在每次部署前启动(eclipse菜单->Window->Android SDK andAVD Manager,左边选择:Availabledevices,右边选择HTC-G7,按[Start...]按钮启动AVD。)

    2.3配置cygwin 和Android NDK

    以往,使用GCC给ARM写程序很麻烦,他的交叉编译环境是需要在Linux下运行的。而其他的很多工具又不得不在Windows下使用,于是人们不得不来回切换操作系统,很麻烦,也浪费了大量宝贵的时间。CYGWIN的出现总算解决了这一问题。


    CYGWIN是一个Windows操作系统下类Linux的运行环境,包括一个用于提供Linux API的DLL和一系列的linux工具。在http://cygwin.com/可以下载到最新版本。
    下载完Cygwin的安装程序setup.exe,可以安装了。在安装之前首先确定你要安装的那个驱动器上有3GB的空间。Cygwin在安装的时候可以选择直接从网络安装、下载安装包和本地安装,我是选的下载安装包,将需要的东西下到本地磁盘里,再从本地安装,下一步选择安装的位置,设置网络连接方式并选择下载站点,之后就是选择需要安装的包,有四种安装状态分别是Default、Install、Reinstall、Uninstall,如果你不能确定你所需要的环境,那就把ALL上的状态设为Install,选择全部安装。

    1)安装cygwin

    下载:http://www.cygwin.com/setup.exe。安装时选择ALL以免遗漏gcc等工具。漫长的等待(基于网速情况,也许一夜)之后,cygwin下载完毕。解压到:D:\cygwin。然后手动配置Windows环境变量,增加D:\cygwin;D:\cygwin\bin到Path:

    Path=...;D:\cygwin;D:\cygwin\bin

    验证:调出命令窗口cmd,键入命令:cygwin回车,启动cygwin工具窗口,运行:

    make –v

    验证cygwin是否正确:

    GNU Make 3.81

    Copyright (2006) Free Software Fundation Inc.

    ...

    下载android-ndk-r4-windows.zip安装包,下载地址:

    http://developer.android.com/sdk/ndk/index.html

    解压缩到:D:\helios\android-ndk-r4。

    写本文时,已经有最新的:android-ndk-r6-windows.zip

    如果使用android-ndk-r6,请注意更改路径的配置。

    2)整合cygwin和Android NDK

    编辑文件:D:\cygwin\home\Administrator\.bash_profile,在末尾增加:

    # Android NDK

    NDK=/cygdrive/d/helios/android-ndk-r4

    export PATH="$NDK:$PATH"

           保存后重新启动cygwin(开始->运行:cygwin)。

    3)使用NDK编译NDK示例:

           启动cygwin;

    进入d:\helios\android-ndk-r4\samples\hello-jni\jni 目录(或者相应工程的  *.C  或 *.CPP 文件所在目录内):

           #cd /cygdrive/d/helios/android-ndk-r4/samples/hello-jni/jni

    执行ndk-build 编译即可:

           #ndk-build

    3 Android NDK工程示例

    下面演示如何创建一个最简单的NDK项目,并将cygwin+NDK整合到eclipse中。

    1)启动eclipse,菜单

    File->New->Project->+Android--AndroidProject

    创建项目,按[Next>]按钮弹出New Android Project对话框,输入下面的内容:

    Priject name:ndkfoo

    勾选Android 2.2

    Applicationname: ndkfoo

    Package name:com.mine.ndkfoo

    勾选Create Activity: ndkfooActivity

    Min SDK Version:8

    按[Finish]按钮。

    2)在项目ndkfoo下创建jni目录(右键项目->New->Folder)。

    3)在jni目录下面创建Android.mk文件,内容如下:

    LOCAL_PATH := $(call my-dir)
    include $(CLEAR_VARS)

    # Here we give our module name and sourcefile(s)
    LOCAL_MODULE  := ndkfoo
    LOCAL_SRC_FILES := ndkfoo.c

    include $(BUILD_SHARED_LIBRARY)

    4)在jni目录下面创建ndkfoo.c文件,内容如下:

    1. #include <string.h>  
    2. #include <jni.h>  
    3.   
    4. jstringJava_com_mine_ndkfoo_ndkfooActivity_invokeNativeFunction(JNIEnv* env, jobjectjavaThis) {  
    5.     return (*env)->NewStringUTF(env, "Hello from nativecode!");  
    6. }  

    5)修改ndkfooActivity.java文件(ndkfoo/src/com.mine.ndkfoo)如下:

    1. package com.mine.ndkfoo;  
    2.   
    3. import android.app.Activity;  
    4. import android.app.AlertDialog;  
    5. import android.os.Bundle;  
    6.   
    7. public class ndkfooActivity extendsActivity {  
    8.     //load the library - name matches jni/Android.mk  
    9.     static{  
    10.         System.loadLibrary("ndkfoo");  
    11.     }  
    12.   
    13.     //declare the native code function - must match ndkfoo.c  
    14.     privatenative String invokeNativeFunction();  
    15.   
    16.     /** Called when the activity is first created. */  
    17.     @Override  
    18.     public void onCreate(Bundle savedInstanceState) {  
    19.         super.onCreate(savedInstanceState);  
    20.         setContentView(R.layout.main);  
    21.   
    22.         // this is where we call the native code  
    23.         String hello = invokeNativeFunction();  
    24.         newAlertDialog.Builder(this).setMessage(hello).show();  
    25.     }  
    26. }  

    6)每次编译ndkfoo项目之前必须先使用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虚拟机中。

    4 整合NDK和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/ndk-build"

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

    Refresh resources upon completion.

    The entire workspace

    Recursively include sub-folders

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

    AllocateConsole

    After a Clean

    Buring manual builds

    During auto builds

    During a Clean

    Spacify working set of relevant resources

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

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

    这个话题和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程序。更多的功能选项要逐步探索)。

  • 相关阅读:
    图片剪切
    js事件(Event)知识整理
    原生JavaScript事件详解
    underscore源码解析
    win7 vi工具
    开源java数据库库
    win7快捷键
    win7 绿色版MySQL安装与配置
    maven jetty
    javax inect
  • 原文地址:https://www.cnblogs.com/lionfight/p/2603896.html
Copyright © 2011-2022 走看看