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

2024-01-13 21:48

本文主要是介绍Eclipse下安装Android开发环境:NDK和CDT,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

本文记录了最新的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文件,内容如下:

[cpp] view plain copy print ?
  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. }  
#include <string.h>
#include <jni.h>
jstringJava_com_mine_ndkfoo_ndkfooActivity_invokeNativeFunction(JNIEnv* env, jobjectjavaThis) {
return (*env)->NewStringUTF(env, "Hello from nativecode!");
}
5)修改ndkfooActivity.java文件(ndkfoo/src/com.mine.ndkfoo)如下:

[java] view plain copy print ?
  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. }  
package com.mine.ndkfoo;
import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
public class ndkfooActivity extendsActivity {
//load the library - name matches jni/Android.mk
static{
System.loadLibrary("ndkfoo");
}
//declare the native code function - must match ndkfoo.c
privatenative String invokeNativeFunction();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// this is where we call the native code
String hello = invokeNativeFunction();
newAlertDialog.Builder(this).setMessage(hello).show();
}
}

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

这篇关于Eclipse下安装Android开发环境:NDK和CDT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/602903

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来