windows系统上利用cygwin安装与使用Android NDK r8b

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
最近在看一些android视频流媒体技术方面的东西,那就当然会看到NDK啊,FFMPEG,Cygwin啊等等的知识,在网上找了一些文章,大家共勉! (持续更新中...)


很早就听说了android的NDK应用,只是一直没有时间去研究,今天花了点时间在windows平台搭建了NDK环境,并成功运行了第一个简单的android应用。

一:什么是NDK?

NDK 提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so 和

java 应用一起打包成apk。这些工具对开发者的帮助是巨大的。

NDK 集成了交叉编译器,并提供了相应的mk 文件隔离CPU、平台、ABI 等差异,开发人员只需要简单修改mk 文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。NDK 可以自动地将so 和Java 应用一起打包,极大地减轻了开发人员的打包工作。比较简单的说,NDK是一套交叉编译工具,它可以帮你把你用C或C++书写的代码,编译为.so(类似与win下的.dll)格式的文件,使你可以在你的Android程序当中用Java语言(JNI)调用这些代码.

二:下载安装cygwin

由于NDK编译代码时必须要用到make和gcc,所以你必须先搭建一个linux环境, cygwin是一个在windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,非常有用。通过它,你就可以在不安装linux的情况下使用NDK来编译C、C++代码了。下面我们一步一步的安装cygwin吧。

(安装的时候忘记截图了)
首先,你得先跑到http://www.cygwin.com下载setup.exe
1、 然后双击运行吧,运行后你将看到安装向导界面:
2、 点击下一步
此时让你选择安装方式:
1)Install from Internet:直接从Internet上下载并立即安装(安装完成后,下载好的安装文件并不会被删除,而是仍然被保留,以便下次再安装)。
2)Download Without Installing:只是将安装文件下载到本地,但暂时不安装。
3)Install from Local Directory:不下载安装文件,直接从本地某个含有安装文件的目录进行安装。
3、选择第一项,然后点击下一步:
4、选择要安装的目录,注意,最好不要放到有中文和空格的目录里,似乎会造成安装出问题,其它选项不用变, 之后点下一步:
5、上一步是选择安装cygwin的目录,这个是选择你下载的安装包所在的目录,默认是你运行setup.exe的目 录,直接点下一步就可以:
6、此时你共有三种连接方式选择:
1) Direct Connection:直接连接。
2) Use IE5 Settings:使用IE的连接参数设置进行连接。
3) Use HTTP/FTP Proxy:使用HTTP或FTP代理服务器进行连接(需要输入服务器地址、端口号)。

用户可根据自己的网络连接的实情情况进行选择,一般正常情况下,均选择第一种,也就是直接连接方式。然后 再点击“下一步”,
7、 这是选择要下载的站点,我用的是http://mirrors.kernel.org(http://mirrors.163.com这个163的镜像速度非常快,建议选中它),速度感觉还挺快,选择后点下一步
8、 此时会下载加载安装包列表
9、Search是可以输入你要下载的包的名称,能够快速筛选出你要下载的包。那四个单选按钮是选择下边树的样 式,默认就行,不用动。View默认是Category,建议改成full显示全部包再查,省的一些包被隐藏掉。左下角 那个复选框是是否隐藏过期包,默认打钩,不用管它就行,下边开始下载我们要安装的包吧,为了避免全部下 载,这里列出了后面开发NDK用得着的包:autoconf2.1、automake1.10、binutils、gcc-core、gcc- g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make共12个包(如果空间足够,可以把Devel里边的项目全部选中,我就是全选了,980多M的文件)

10、 然后开始选择安装这些包吧,点skip,把它变成数字版本格式,要确保Bin项变成叉号,而Src项是源码,这个 就没必要选了。
11、 下面测试一下cygwin是不是已经安装好了。
运行cygwin,在弹出的命令行窗口输入:cygcheck-c cygwin命令,会打印出当前cygwin的版本和运行状 态,如果status是ok的话,则cygwin运行正常。
然后依次输入gcc --version,g++ --version,make –version,gdb –version进行测试,如果都打印 出版本信息和一些描述信息,非常高兴的告诉你,你的cygwin安装完成了!
三:配置NDK环境变量
1、 首先找到cygwin的安装目录,找到一个home\<你的用户名>\.bash_profile文件,我的是:E:\cygwin\home\liudi\.bash_profile,(注意:我安装的时候我的home文件夹下面神马都没有,解决 的办法:首先打开环境变量,把里面的用户变量中的HOME变量删掉(重要!!!因为bash_profile里边有它的调用,如果配置错了,程序会不能正确识别。),在E:\cygwin\home文件夹下建立名为Administrator的文件夹(是用户名),然后把E:\cygwin\etc\skel\.bash_profile拷贝到该文件夹下)。

2、 打开bash_profile文件,添加NDK目录
例 如:
NDK=/home/liudi/android-ndk-r8b
  (注意:等号两边不能有空格)
export NDK
NDK这个名字是随便取的,为了方面以后使用方便,选个简短的名字,然后保存

橄榄色部分好像是不用配置了,这个我亲身试过的
3、打开cygwin,输入cd $NDK,如果输出上面配置的/home/liudi/android-ndk-r8b信息,则表明环境变量设置成功了。
四:用NDK来编译程序
1、 现在我们用安装好的NDK来编译一个简单的程序吧,我们选择ndk自带的例子hello-jni,我的位于E:\cygwin\home\liudi\android-ndk-r8b\samples\hello-jni(根据你具体的安装位置而定),
2、 运行cygwin,输入命令cd $NDK/samples/hello-jni,进入到E:\android-ndk-r8b\samples\hello-jni目录。
3、 输入$NDK/ndk-build,执行成功后,它会自动生成一个libs目录,把编译生成的.so文件放在里面。($NDK是调用我们之前配置好的环境变量,ndk-build是调用ndk的编译程序)
4、 此时去hello-jni的libs目录下看有没有生成的.so文件,如果有,你的ndk就运行正常啦!
五:在eclipse中集成c/c++开发环境
1、 装Eclipse的C/C++环境插件:CDT,这里选择在线安装。
首先登录http://www.eclipse.org/cdt/downloads.php,找到对应你Eclipse版本的CDT插件的在线安装地址。
( 网站打开超慢,我给大家把地址发布在这里啦
CDT 8.1.1 for Eclipse Juno
在线的(下同)
http://download.eclipse.org/tools/cdt/releases/juno
下载的(下同)
http://www.eclipse.org/downloads/download.php?file=/tools/cdt/releases/juno/sr1/cdt-master-8.1.1.zip
CDT 8.0.2 for Eclipse Indigo
http://download.eclipse.org/tools/cdt/releases/indigo
http://www.eclipse.org/downloads/download.php?file=/tools/cdt/releases/indigo/dist/cdt-master-8.0.2.zip
CDT 7.0.2 for Eclipse Helios
http://download.eclipse.org/tools/cdt/releases/helios
http://www.eclipse.org/downloads/download.php?file=/tools/cdt/releases/helios/dist/cdt-master-7.0.2.zip
CDT 6.0.2 for Eclipse Galileo
http://download.eclipse.org/tools/cdt/releases/galileo
http://www.eclipse.org/downloads/download.php?file=/tools/cdt/releases/galileo/dist/cdt-master-6.0.2.zip )

2、 然后点Help菜单,找到Install New Software菜单

3、 点击Add按钮,把取的地址填进去,出来插件列表后,选Select All,然后选择下一步即可完成安装

4、 安装完成后,在eclispe中右击新建一个项目,如果出现了c/c++项目,则表明你的CDT插件安装成功啦!

六:配置C/C++的编译器

1、 打开eclipse,导入ndk自带的hello-jni例子,右键单击项目名称,点击Properties,弹出配置界面,之后再点 击Builders,弹出项目的编译工具列表,之后点击New,新添加一个编译器,点击后出现添加界面,选择Program,点 击OK

2、 出现了添加界面,首先给编译配置起个名字,如:C_Builder
1.png
2012-11-14 14:46 上传
下载附件 (64.52 KB)

设置Location为<你cygwin安装路径>\bin\bash.exe程序,例如:E:\cygwin\bin\bash.exe,设置Working Directory为<你cygwin安装路径>\bin目录,例如:E:\cygwin\bin

设置Arguments为

--login -c "cd /home/liudi/android-ndk-r8b/samples/hello-jni&& $NDK/ndk-build"

上面的配置中/home/liudi/android-ndk-r8b/samples/hello-jni是你当前要编译的程序的目录,$NDK是之前配置 的ndk的环境变量,这两个根据你具体的安装目录进行配置,其他的不用变,Arguments这串参数实际是 给bash.exe命令行程序传参数,进入要编译的程序目录,然后运行ndk-build编译程序

3、 接着切换到Refresh选项卡,给Refresh resources upon completion打上钩
2.png
2012-11-14 14:46 上传
下载附件 (43.55 KB)

4、 然后切换到Build Options选项卡,勾选上最后三项
3.png
2012-11-14 14:46 上传
下载附件 (60.41 KB)

5、 之后点击Specify Resources按钮,选择资源目录,勾选你的项目目录即可
4.png
2012-11-14 14:46 上传
下载附件 (14.64 KB)

6、 最后点击Finish,点击OK一路把刚才的配置都保存下来,注意:如果你配置的编译器在其它编译器下边,记得一定要 点Up按钮,把它排到第一位,否则C代码的编译晚于Java代码的编译,会造成你的C代码要编译两次才能看到最新的修改

7、 这一路下来肯定很累了吧,现在再次恭喜你,编译配置也配置完成啦,现在来测试一下是否可以自动编译呢,打开项 目jni目录里的hello-jni.c文件把提示Hello from JNI!改成其他的文字:如:Hello,My name is alex.,然后再模 拟器中运行你的程序,如果模拟器中显示了你最新修改的文字,那么Congratulations!你已经全部配置成功啦!

七:总结

以上过程是我配置NDK的全过程,并在我的机器上运行成功了,参照了 www.eoeandroid.com上一些不错的资料,现在写出来做个总结,加深一下自己的理解和记忆,谢谢这些无私的奉献者们。
cygwin工具学习记录 Cygwin提供了一个动态链接库(DLL),模拟了Linux下的核心接口和功能,包括一个大量的GNU和开源工具,使得Unix下的许多应用能够在Windows上编译和运行。如果您需要进行包管理,建议使用Cygwin自带的工具,或者尝试安装apt-cyg来管理Cygwin下的包。使用apt-cyg工具:在Cygwin中,apt-cyg是一个非常便利的命令行工具,可以用来搜索、安装、删除和更新Cygwin包。由于自动安装失败,您可以尝试手动下载lynx的安装包,并通过Cygwin安装器进行安装 阅读详情

相关推荐

Cygwin 配置C/C++编译环境以及如何编译项目

Cygwin 配置C/C++编译环境,并给出示例演示如何使用Cygwin编译项目

小青龍 的博客 3万+

Cygwin安装教程

Cygwin安装教程

小白学CS 2万+

Cygwin 介绍安装

Cygwin 介绍下载安装

小青龍 的博客 3万+

Cygwin‌最新详细安装教程(附安装包)

Cygwin‌是一个在Windows平台上运行的类UNIX模拟环境,它是一个开源的免费软件,由Cygnus Solutions公司开发。Cygwin通过提供一个名为cygwin1.dll的动态链接库,实现了在Windows上运行Unix应用程序的功能。这个DLL拦截并重定向Unix系统调用,将其转换为Windows本机API调用,从而在Windows上模拟了一个类Unix的环境‌。

ZHOUPUYU的博客 2万+

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->填写L

zhangqin87的专栏 2584

WIN7下安装使用NDK r8

注:本文参照许多了网上的资料,在搭建环境过程中遇到许多问题,本文是在结合自己在搭建环境过程中遇到的问题做了一定 的修改而成的。 一:什么是NDKNDK 提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so 和 java 应用一起打包成apk。这些工具对开发者的帮助是巨大的。下载地址:http://developer.android.com/sdk/ndk/inde

kingjxust的专栏 4515

Android NDK r8 开发环境搭建

需准备: android-ndk-r8d android sdk eclipse adt、cdt(eclipes插件) NDK下载安装 android-ndk-r8d下载地址: http://dl.google.com/android/ndk/android-ndk-r8d-windows.zip 下载后,解压到你的工作目录,如:d:\java\andro

SongQues的专栏 7444

windows系统安装使用Android NDK r5b(转)

<br />一:什么是NDK?<br />NDK 提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so 和java 应用一起打包成apk。这些工具对开发者的帮助是巨大的。<br />NDK 集成了交叉编译器,并提供了相应的mk 文件隔离CPU、平台、ABI 等差异,开发人员只需要简单修改mk 文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。NDK 可以自动地将so 和Java 应用一起打包,极大地减轻了开发人员的打包工作。比较简单的说,NDK是一套交叉编译工具

xiao229404041的专栏 1058

Windows Android NDK Compile -----android-ndk-r6b

NDK 下载地址 : http://developer.android.com/sdk/ndk/index.html   Cygwin 下载地址 :http://www.cygwin.com   1 Cygwin 安装    Cygwin安装就很简单啦,直接下一步就行。唯一需要注意的就是,因为我们在cygwin中编译ndk的时候需要make和gcc,所以我们在Select Packages

nodeathphoenix的专栏 3349

Windows 7 下使用 Android NDK r5c 编译 FFmpeg 0.7.1

Windows 7 下使用 Android NDK r5c 编译 FFmpeg 0.7.1 2011-06-26 13:48 by Scott Wong, 1301 visits, 收藏, 编辑 在代号是 “Love”的 FFmpeg 0.8 正式版几个小时之

b02330224的专栏 3688

android ndk r8 r9环境配置,Android NDK r8 Cygwin CDT 在window下开发环境搭建 安装配置使用 具体图文解说...

android 最新 NDK r8 在window下开发环境搭建 安装配置使用 具体图文解说。完整实际配置过程记录(原创)一直想搞NDK开发却一直给其它事情耽搁了,參考了些网上的资料今天最终把环境搭建起来了。把过程记录下来分享给大家。内容文件夹:1.默认基础环境2.NDK下载配置3.安装Cygwin4.用NDK编译5.安装CDT插件6.安装Sequoyah插件7.JNI编译环境配置画了一个思维...

weixin_36006862的博客 289

windows系统安装使用Android NDK r5 (转)

windows系统安装使用AndroidNDKr5 很早就听说了androidNDK应用,只是一直没有时间去研究,今天花了点时间在windows平台搭建了NDK环境,并成功运行了第一个简单的android应用。 一:什么是NDKNDK 提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so 和 java 应用一起打包成apk。这些工具对开发者...

data01002的博客 202

windows系统安装使用Android NDK r5

很早就听说了androidNDK应用,只是一直没有时间去研究,今天花了点时间在windows平台搭建了NDK环境,并成功运行了第一个简单的android应用。     一:什么是NDKNDK 提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so 和 java 应用一起打包成apk。这些工具对开发者的帮助是巨大的。 NDK 集成了交叉编译器,并提供了相应的m

鸟人如风,不舍昼夜. 560

windows android ndk开发,Windows系统下配置Android NDK开发环境

通常Android系统中的应用都是用Java语言开发的,而Android NDK能让我们在Android开发中使用C/C++原生代码。使用NDK的好处包括合理复用现有的代码、提高程序中某些关键部分的执行效率。本文就来讲讲怎样在Windows系统下配置NDK开发环境。这里假设大家已经安装好了Android的开发环境,包括jdk、android sdk以及eclipse。步骤一:下载并安装NDK首先,...

weixin_28988985的博客 889

android ndk r7c,android-ndk-r7b编译环境Cygwin工具搭建及配置

开发android ndk 的时候需要一个编译工具编译c程序,ndk需要linux下编译,所以win环境下提供Cygwin模拟linux编译Candroid-ndk 较低版本的这个工具的配置网上很多,我这儿记述点android-ndk-r7b下配置Cygwin的步骤:1.到Cygwin的官方网站下载Cygwin安装程序,地址是:2.运行下载的setup.exe,3.到选包的时候注意下,下图中圈中...

weixin_39583655的博客 170
上一篇: cygwin
下一篇: windos jni之NDK环境配置
会飞牛牛
博客等级 码龄16年 88粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值