配置NDK集成开发环境.docx

上传人:b****5 文档编号:30213857 上传时间:2023-08-07 格式:DOCX 页数:24 大小:648.86KB
下载 相关 举报
配置NDK集成开发环境.docx_第1页
第1页 / 共24页
配置NDK集成开发环境.docx_第2页
第2页 / 共24页
配置NDK集成开发环境.docx_第3页
第3页 / 共24页
配置NDK集成开发环境.docx_第4页
第4页 / 共24页
配置NDK集成开发环境.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

配置NDK集成开发环境.docx

《配置NDK集成开发环境.docx》由会员分享,可在线阅读,更多相关《配置NDK集成开发环境.docx(24页珍藏版)》请在冰豆网上搜索。

配置NDK集成开发环境.docx

配置NDK集成开发环境

一、什么是NDK?

为什么要用它?

比较简单的说,NDK是一套交叉编译工具,它可以帮你把你用C或C++书写的代码,编译为.so(类似与win下的.dll)格式的文件,使你可以在你的Android程序当中用Java语言(JNI)调用这些代码

当你想在Java中调用你的C、C++代码时你就可以用它(废话?

),那么什么时候你可能考虑使用C、C++代码呢?

比如说,你原来用C、C++写过一个游戏程序,里边有你大量的封装好的游戏业务逻辑、算法等代码,你现在想把这个游戏移植到Android上去,怎么办?

难道这些业务逻辑、算法要全部用Java重写一遍嘛?

现在有了NDK,不用了,你可以直接编译移植这代码了,所以说如果你有代码复用需求的时候,你就可以用它。

再举一个例子,比如说你现在用Android手机的摄像头采集图片信息,采集后的图片你使用Java书写了一个压缩算法进行压缩操作,这个算法非常的耗时,耗费CPU,效果很不理想。

这时你就可以尝试采用C来书写这个压缩算法,这时你就可能发现,改用C代码执行后,效率提高了几倍乃至十几倍。

当你的客户对程序的性能、速度要求比较高的时候,你也可以考虑用C、C++代码编写部分代码,以满足客户要求。

所以说如果没有NDK编译的话,你的这些代码在Android上是跑不起来的。

二、看起来似乎不错,我已经想试试了,我要怎么做?

2.1什么是cygwin?

为什么要用它?

由于NDK编译代码时必须要用到make和gcc,所以你得先弄个linux环境,如果你只有windows又不想安装linux环境怎么呢?

这时候,cygwin上场了,cygwin是一个在windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,非常有用。

通过它,你就可以在不安装linux的情况下使用NDK来编译C、C++代码了。

下边,跟我一步一步来安装吧:

1、首先,你得先跑到下载一个安装包,下载后呢,解压到一个目录里去,注意,为保险起见,不要解压到带空格和中文目录里,否则似乎会造成下载后解压失败的情况。

解压后你会看到以下的图标:

2、然后双击运行吧,运行后你将看到安装向导界面:

3、点击下一步,如下图:

这是让你选择安装方式:

1)InstallfromInternet:

直接从Internet上下载并立即安装(安装完成后,下载好的安装文件并不会被删除,而是仍然被保留,以便下次再安装)。

2)DownloadWithoutInstalling:

只是将安装文件下载到本地,但暂时不安装。

3)InstallfromLocalDirectory:

不下载安装文件,直接从本地某个含有安装文件的目录进行安装。

4、选择第一项,然后点击下一步,之后如下图:

5、选择要安装的目录,注意,最好不要放到有中文和空格的目录里,似乎会造成安装出问题,其它选项不用变,之后点下一步:

6、上一步是选择安装cygwin的目录,这个是选择你下载的安装包所在的目录,默认是你运行setup.exe的目录,直接点下一步就可以,之后如下图:

7、“下一步”,之后如下图:

8、这是选择要下载的站点,建议选用第一个即可,因为我在选择后边几个台湾站点的时候,会出现下载不动或下载时报DownloadIncomplete.Tryagain?

的情况,选择后点下一步,如下图:

9、会下载加载安装包列表,加载完安装包列表后如下图:

10、选择Devel后,点击下一步,就开始下载了,如下图:

11、以下为下载完成时自动开始安装时的界面:

12、终于下载完成也安装完成了,如下图:

13、图中两个复选框是是否生成桌面图标和添加到开始菜单,选不选看你自己啦。

下边我们来试试看cygwin是否安装好了,点击桌面生成的快捷方式,运行cygwin,之后看到下图:

14、首先,运行cygcheck-ccygwin命令,如下图所示的话,证明cygwin运行正常:

15、然后运行gcc–version,如下图所示,gcc运行正常:

16、运行g++--version如下图所示,g++运行正常:

17、运行make--version如下图所示,make运行正常:

18、运行gdb--version如下图所示,gdb运行正常:

19、如果以上运行都正常的话,那么恭喜你,cygwin的安装完成了。

 

2.2用NDK来编译程序

1、首先我们要找到我们cygwin的程序安装目录,找到一个home\<你的用户名>\.bash_profile文件,如下图所示:

 

2、打开后添加

ndk=/cygdrive/<你的盘符>/例如:

ndk=/cygdrive/f/android/android-ndk-r4-windows/android-ndk-r4

exportndk

其中"ndk"这个名字随便起,因为后面要经常使用,建议不要太长。

添加后保存。

3、之后打开cygwin,输入cd$ndk,如果如下图所示,证明环境变量设置成功了:

4、好的,下边让我们尝试用ndk来编译一个程序吧,就用ndk自带的hello-jni样例程序包来代替吧,它的样例程序在

<你的盘符>//samples/hello-jni

例如:

F:

\android\android-ndk-r4-windows\android-ndk-r4\samples\hello-jni,如下图所示:

5、让我们打开cygwin,进入这个目录吧,键入命令

cd/cygdrive/<你的盘符>//samples/hello-jni

例如:

cd/cygdrive/f/android/android-ndk-r4-windows/android-ndk-r4/samples/hello-jni

进入成功后如下图所示:

6、然后键入$ndk/ndk-build命令,执行成功后如下图,它会自动生成一个libs目录,把编译生成的.so文件放里边:

7、下边让我们去hello-jni的libs目录下看看它生成的.so文件,如果你看到了这些文件,那么恭喜你,你的ndk也运行正常了,如下图所示:

7、总结一下,相信多数同学也看出来了,$ndk是调用我们之前设置的环境变量,ndk-build是调用ndk的编译程序,通过环境变量的方式来减少我们每次都要输入一大串目录路径字符的麻烦,在编译程序时进入到程序目录里直接键入$ndk/ndk-build就可以编译了。

至于编译的程序,我测试了一下,准备好以下目录和文件就可以编译了,如下图所示:

2.3集成编译环境

1、首先,先装上CDT吧,这是Eclipse的C/C++环境插件,装上它后你就可以在Eclipse里创建C/C++项目和代码文件了。

插件的安装有两种方式,一种是在线安装,一种是下载安装包自己安装,这里只介绍第一种方式,另一种方式可自行XX。

首先登录http:

//www.eclipse.org/cdt/downloads.php,找到对应你Eclipse版本的CDT插件的在线安装地址,如下图所示:

2、找到对应你eclipse版本的CDT插件地址,之后打开Eclipse,点Help菜单,找到InstallNewSoftware菜单,注意一些老版本的Eclipse菜单不太一样,比如说Europa的版本,就是Help--SoftwareUpdates—FindandInstall--Searchfornewfeaturestoinstall--NewRemoteSite,除了菜单不太一样外,安装方式都差不多,可自行XX一下,下图以最新的Helios版本为准:

http:

//download.eclipse.org/tools/cdt/releases/galileo

3、把取的地址填进去,出来插件列表后,选SelectAll,然后狂点下一步即可完成安装,如下图所示:

4、安装完成后,点菜单File-New-Project,出现新建项目界面,如果出现了C/C++项目,那么恭喜你,CDT安装也完成了,如下图所示:

 

5、不过光有CDT还不行,CDT编译代码还是需要调用cygwin当中的编译工具进行,所以我们还需要手动配置C/C++的编译器,还是以NDK自带的hello-jni为例子,首先打开Eclipse,把这个项目导入进来,导入后如下图所示:

6、然后右键单击HelloJni之后,点击Properties,弹出配置界面,之后再点击Builders,如下图所示:

7、之后点击New,新添加一个编译器,点击后出现添加界面,选择Program,点击OK:

8、点击OK后,出现了添加界面,如下图,首先给编译配置起个名字吧,比如说C_Builder,然后,

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

F:

\cygwin\bin\bash.exe,设置WorkingDirectory为<你cygwin安装路径>\bin目录,例如:

F:

\cygwin\bin

设置Arguments为

--login-c"cd/cygdrive/f/android/android-ndk-r4-windows/android-ndk-r4/samples/hello-jni&&$ndk/ndk-build"

这其中,f/android/android-ndk-r4-windows/android-ndk-r4/samples/hello-jni就是你当前要编译程序的目录,根据你的实际目录情况进行替换,$ndk就是你先前设置的NDK编译器的目录环境变量,也根据你实际设置的名称进行替换,红色字符部分都是根据实际情况进行替换的,其它的不变。

这串参数实际是给bash.exe命令行程序传参数,进入要编译的程序目录,然后运行ndk-build编译程序,填写完成后如下图:

9、接着切换到Refresh选项卡,给Refreshresourcesuponcompletion打上钩,完成后如下图:

10、最后切换到BuildOptions选项卡,勾选上最后三项,如下图所示:

11、之后点击SpecifyResources按钮,选择资源目录,勾选你的项目目录即可,如下图所示:

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

13、现在再次恭喜你,编译配置也配置完成啦,那么来试试看是否可以自动编译吧,打开左侧jni目录里的hello-jni.c文件把提示HellofromJNI!

改改,如下图所示:

14、之后点击run按钮跑起来看看吧,如果模拟器当中出现了你新修改的提示信息,那么最后一次恭喜你,已经全部配置成功了!

效果看下图:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 文化宗教

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1