热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

NDK的Windwos环境搭建

NDK的Windwos环境搭建Eclipse版本是3.6以上的一、下载androidNDK您可以下载NDKr4forW

 

 NDK的Windwos环境搭建

Eclipse版本是3.6以上的  
 

一、下载android NDK

您可以下载NDK r4  for Windows或NDK r5  for Windows安装包,下载地址:

地址: http://developer.android.com/sdk/ndk/index.html
 
 
下载后解压缩到你的工作目录,例如:E:\Android\tools\android-ndk-r7,结果如下图:

Android NDK包含build、docs、samples、sources、GNUmakefile、ndk-build、ndk-gdb及readme等内容。samples下面包含几个实例开发演示项目,第一次接触NDK开发,建议先从示例开始。下面先看一下编译环境配置。

二、下载Cygwin

由于NDK开发大都涉及到C/C++在GCC环境下编译、运行,所以在Windows环境下,需要模拟Linux模拟编译环境,下载地址:

http://www.cygwin.com/

下载setup.exe文件。 http://cygwin.com/setup.exe

使用过程如下:

第一步:运行setup程序,第一步图略,直接点击Next进入下一步。

第二步:选择安装方式,第一次可以采用Direct Connection在线下载安装,如有现成的离线包,可以选择离线安装(Install from Local Directory)。
 

第三步:选择安装目录,比如E:\Android\cygwin,注意此目录是指Cygwin最终的安装目录,不是下载文件暂存目录。

 

第四步:设置本地包暂存路径

暂存目录默认是放到setup.exe的同级目录下,下载后名字类似E:\Android\Softs这样格式。

 

第五步:设置网络连接方式

 

第六步:选择下载站点地址

起初尝试几个看哪个速度快就用哪个地址(如果感觉不快就点取消,再次来过)。国内的话,我感觉163的速度不错。

 

第七步:等待加载安装项载入,选择安装项

我们编译NDK,在默认设置下,只需选择Devel(点击列表中Devel,将后面的Default改为Install,图中箭头所示),其它均为默认状态。
 
那四个单选按钮是选择下边树的样式,默认就行,不用动。View默认是Category,建议改成full显示全部包再查,省的一些包被隐藏掉。左下角那个复选框是是否隐藏过期包,默认打钩,不用管它就行,下边开始下载我们要安装的包吧,为了避免全部下载,这里列出了后面开发NDK用得着的包:autoconf2.1、automake1.10、binutils、gcc-core、gcc-g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make共12个包

第八步:等待下载完成

下载完成时间决定于你选择的安装包数量及网络连接速度,比如按照本文默认的选择方式,可能需要4-5个小时,下载后压缩包约830M左右,下载完成后会自动安装到上文设置的安装目录。
 
提醒:第一次下载完成后,最好把下载的包目录做个备份,下次安装同样的环境可以直接使用离线安装方式(第二步中选择本地安装)。
 
 

三、验证Cygwin环境

 
安装完成后,运行cygwin,
第一次使用时,会创建一些用户环境文件,
在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。
分别输入:

make -v

和,

gcc -v

如果检测成功,会有make和gcc相关版本信息打印出来,

四、编译示例

 
1、设置NDK路径。
在windows的系统环境变量中添加NDK的路径。如:e/Andriod/tools/android-ndk-r7
 
2、也可以不添加,每次打开目录时,输入该路径即可。  /cygdrive/e/Andriod/tools/android-ndk-r7
 
四:用NDK来编译程序 

    1、现在我们用安装好的NDK来编译一个NDK提供的示例的程序。
我们选择ndk自带的例子hello-jni,我的位于android-ndk-r7\samples\hello-jni(根据你具体的安装位置而定),

    2、运行cygwin,输入命令cd /cygdrive/e/android-ndk-r5/samples/hello-jni,进入到E:\android-ndk-r5\samples\hello-jni目录。


    3、输入 ../ndk-build ,执行成功后,它会自动生成一个libs目录,把编译生成的.so文件放在里面。(ndk-build是调用ndk的编译程序)
错误:
Android NDK: Host 'awk' tool is outdated。
找到目录 E:\Android\tools\android-ndk-r7\prebuilt\windows\bin\awk.exe: 删除awk。(为保险起见可先cp一份),重新ndk-build
成功编译:



    4、此时去hello-jni的libs目录下看有没有生成的.so文件,如果有,你的ndk就运行正常啦!正常编译完成后会在你的项目libs/armeabi目录下生成对应的 .so文件。
hello-jni目录中多了一个libs目录。打开目录,发现到so文件。

导入示例s到Android项目

ndk自带例子是无法直接导入的,需要使用方法如下(示例):

1、在Eclipse中新建一个工程HelloJni。 eclipse 中通过  Create project from existing source  方法建立起 hello-jni 项目。需要注意的是在选择 API level 时需要选择 1.5 或更高的版本。如图所示:
 
 

 
2、导入成功后,目录。
 
3、运行该代码

 

五:在eclipse中集成c/c++开发环境

    1、装Eclipse的C/C++环境插件:CDT。

    首先登录 http://www.eclipse.org/cdt/downloads.php,找到对应你Eclipse版本的CDT插件的在线安装地址。

如图,首先是一个Eclipse C/C++ IDE Indigo SR-1的下载链接,该链接是用于下载自带集成了CDT插件的Eclipse开发环境,如果当前计算机上没有安装任一版本的Eclipse,则可以选择下载安装此版本Eclipse,则无需再另外安装CDT。
果已经安装了Eclipse Indigo,则可以使用第二个连接“p2 software repository”在EclipseHelp菜单下选择Install New Software并复制如上所述链接进行在线安装。
    2、在线安装。然后点Help菜单,找到Install New Software菜单
 
    3、点击Add按钮,把取的地址填进去,出来插件列表后,选Select All,然后选择下一步即可完成安装。
 
勾选 Group items by category ,会按分类出现供安装的组件。此处可以不需要安装所有的组件,推荐勾选 CDT Main Features 分类并勾选 CDT Optional Features 下的“ C/C++ Development Platform ”、“ C/C++ DSF GDB Debugger Integration ”、“ C/C++ GCC Cross Compiler Support ”、“ C/C++ GNU Toolchain Build Support ”、“ C/C++ GNU Toolchain Debug Support ”、“ Eclipse Debugger for C/C++ ”、“ Miscellaneous C/C++ Utilities ”这些组件,其他组件可以在需要用的的时候再进行安装。
3、离线安装
如果在线安装的方法由于网络原因或者其他原因不能够成功完成,则可以通过下载离线安装包的方式进行安装,首先需要通过如图13-10中最下方的链接下载CDT安装包,例如目前最新的8.0.1版本,下载到本地后,在如图13-11所示的界面中点击地址栏右方的Add…按钮,然后点击Archive按钮并定位到刚下载的cdt-master-8.0.1.zip压缩包,再进行安装即可。
    4、安装完成后,在eclispe中右击新建一个项目,如果出现了c/c++项目,则表明你的CDT插件安装成功啦!



六、使用Sequoyah 插件来配置
1、Sequoyah插件的官方下载点为http://www.eclipse.org/sequoyah/downloads/,在该网页上同样提供了用于在线安装的update site地址以及安装包的下载地址,需要注意的是在安装界面要确认Group items by category复选框处于未选中状态,否则可能出现列表为空(There are no categorized items)的情况。全部勾选列出的安装包并完成安装。
http://download.eclipse.org/sequoyah/updates/2.0/
 

  Sequoyah安装完成后,
添加ndk路径。
在windows-》preferences。 

右键点击任意的Android Project会发现在Android Tools中多出了一个“Add Native Support…”选项
 

 
 
Add Native Support… 点击后会弹出一个简单的设置界面。

 

JNI编译环境配置

 

 对于jni项目,需要添加c编译以及依赖库。

右击项目-》Properties。

编译设置:

在弹出界面中选择c/c++Build。在builder setting选项卡的build command输入 “bash /ndk-build" 。如下图

 依赖库

 选择Gennera-》paths and。。。-》includes选项卡,选择GNU c。添加依赖路径

\android-ndk-r7\platforms\android-8\arch-arm\usr\include

 
 
参考:
http://www.cnblogs.com/hummersofdie/archive/2011/03/01/1967996.html windows系统上安装与使用Android NDK r5 
http://www.metsky.com/archives/525.html Windows环境下Android NDK环境搭建

推荐阅读
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
  • 安卓及谷歌官网不容易上,在此整理好下载地址,这样就可以直接用迅雷下载了。Eclipse最新Mars版Eclipse(暂时还没被墙)Mac版:http:www.eclipse.org ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文介绍了在Python中使用zlib模块进行字符串的压缩与解压缩的方法,并探讨了其在内存优化方面的应用。通过压缩存储URL等长字符串,可以大大降低内存消耗,虽然处理时间会增加,但是整体效果显著。同时,给出了参考链接,供进一步学习和应用。 ... [详细]
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • 三、查看Linux版本查看系统版本信息的命令:lsb_release-a[root@localhost~]#lsb_release-aLSBVersion::co ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
author-avatar
卢嘉怡i
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有