文档章节

android 最新 NDK r8 在window下开发环境搭建

l
 lxp198837
发布于 2014/04/23 14:35
字数 1965
阅读 104
收藏 5

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把环境搭建起来了,把过程记录下来分享给大家。

内容目录:

1.默认基础环境

2.NDK下载与配置

3.安装Cygwin

4.用NDK编译

5.安装CDT插件

6.安装Sequoyah插件

7.JNI编译环境配置

画了一个思维导图让大家一目了然配置过程

 

-----------------------------------------------

一、默认基础环境为已经完成Android开发环境的搭建

本人的环境是 jdk1.6.0_07 、Eclipse3.6(Helios)、Android SDK 、 ADT 可以正常开发android应用。

要先创建android虚拟机,能够跑一个android应用起来再跑ndk的

 

二、Android NDK 下载与配置

下载Android NDK:http://developer.android.com/tools/sdk/ndk/index.html

最近google的网站打开都很慢 有时候还可能打不开,需要有点耐心。

选择Windowsandroid-ndk-r8c-windows.zip233787657 bytes (104MB)

下载后解压缩到你的工作目录,例如:E:\android\android-ndk-r8,

samples文件夹下面包含12个实例开发演示项目,是学习的好资源。

 

三、安装Cygwin

 

C/C++的编译环境需要Linux的gcc,所以在Windows环境下用Cygwin来模拟Linux

下载地址:http://cygwin.com/install.html

随便点击一个 setup.exe 的连接即可下载,这个只是个下载的引导程序,实际内容到下一步才下载,有0.97GB需要的时间比较长的。

1.运行setup.exe程序,直接点击Next进入下一步。

 

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

 

3.选择安装目录。比如D:\Cygwin,注意此目录是指Cygwin这个虚拟机的安装目录,不是下载文件暂存目录,也不是NDK的目录。

 

4.设置本地包暂存路径。暂存目录默认是放到setup.exe的同级目录下 我的是http%3a%2f%2fmirrors.163.com%2fcygwin%2f,可以备份下来。

 

 

注:第一次安装会弹出个警告框,不要管他,点击确认就可以了。 

 

5.设置网络连接方式。选第一个即可。

 

6.选择下载站点地址,直接选第一个163的站点就可以了,这个我下载的速度最高可以达到185k。

 

7.出现加载安装项后,点击Devel-Default,变成Devel-Install,其他设置都不用动,下一步下载。

 

 

8.等待下载完成,大约需要一个小时左右。下载完成后再点击下一步安装,安装也需要很长时间。

 

 

9.运行安装目录(D:\Cygwin)下的“Cygwin.bat”,输入:“cygcheck -c cygwin”命令,会打印出当前Cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。

 

10.输入:“make –v”和,“gcc –v”命令如果检测成功,会有make和gcc相关版本信息打印出来。

11.设置NDK路径,在windows的系统环境变量中添加NDK的路径。

使用“/cygdrive/e/android/android-ndk-r8”这种Linux风格路径,如果使用Windows下的“E:\android\android-ndk-r8”,Cygwin在编译时会发出警告。

 

12.运行Cygwin命令行,可以直接使用$ndk环境变量,不用每次都手动输入目录

 

 

四、使用NDK编译程序:

 

1)编译NDK提供的sample程序hello-jni(E:\android\android-ndk-r8\samples\hello-jni)。

1.运行Cygwin,输入“cd $ndk/samples/hello-jni/”,进入到“hello-jni”工程目录。

2.输入“$ndk/ndk-build”编译。ndk-build是调用ndk的编译程序。

  

3.用ls命令查看libs/armeabi/下是否生成了so文件,有libhello-jni.so说明ndk运行正常。

$ ls libs/armeabi/

gdb.setup  gdbserver  libhello-jni.so

也可以到E:\android\android-ndk-r8\samples\hello-jni\libs\armeabi目录下看有没有生成的.so文件。

 

 

2)导入NDK的hello-jni示例到Eclipse中

1.在Eclipse中新建一个Android工程HelloJni。

在Create Android Project时勾选“Create project from existing source”,Location中填E:\android\android-ndk-r8\samples\hello-jni

 

 

2.直接以Android Aplication运行com.example.hellojni.HelloJni项目。要先有.so文件才能运行起来。

 

 

五、在Eclipse中集成C/C++开发环境CDT

CDT插件可以在一个工程中同时开发基于C/C++的Native代码和基于Java的代码,加上Sequoyah插件可以一次编译两部分代码。

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

不同eclipse版本要下载对应的包,否则安装不了。

Help-->About Eclipse 下可以看到自己用的版本,我的是 Version: Helios Service Release 2 即Helios版本

http://www.eclipse.org/downloads/download.php?file=/tools/cdt/releases/helios/dist/cdt-master-7.0.2.zip

cdt-master-7.0.2.zip:这个是CDT的离线安装包。(由于文件比较大推荐使用离线包,7.0.2的54.8M,8.1.1的103MB)

安装:Eclipse -> Help -> Install New Software,点击add。

Name:CDT_版本。

Location:点击Archive,定位到下载的“cdt-master-7.0.2.zip”文件。

如果Location的下面出现“Duplicate location”错误,请到Window -> preferences -> Install/Update -> Avaliable Software Site中找到remove掉。

如果出现缺少eclipse包说明你下载的版本和eclipse版本不匹配,重新下载匹配的重新安装就可以了。

 

另外需要重启eclipse后才生效。

安装完成重启后,在Eclispe中新建一个项目,如果出现了C/C++项目,则表明CDT插件安装成功了。

 

六、安装Sequoyah插件(必须先安装CDT之后才能安装这个,可以直接安装最新版2.0的)

Sequoyah插件用于设置Android工程对Native开发的支持。

官方网址:http://www.eclipse.org/sequoyah/downloads/

打开上面网址就可以看到具体的安装说明了

Location:http://download.eclipse.org/sequoyah/updates/2.0/

 

For Helios SR2 Sequoyah version: http://download.eclipse.org/sequoyah/updates/1.0.2/ 

注:只是安装1.0.2的没有出来“本机开发”的配置所以没法用,本人重新安装了2.0的可以了,这个应该直接安装最新版2.0的就可以了。

在安装界面不要勾选“Group items by category”复选框,选中出现了列表为空(There are no categorized items)的情况。

 

在“window –> preferences ->Android -> 本机开发”中添加NDK的路径。

 

这个插件安装后也需要重启eclipse的

重启后右键之前建立的“HelloJni”项目,在“Android Tools”选项中包含“Add Native Support…”选项即成功。

 

七、JNI编译环境配置

现在修改“/HelloJni/jni/hello-jni.c”文件,动态链接库libhello-jni.so文件不会被重新编译生成。

需要给JNI项目添加编译配置和依赖库后才行。

1.转换工程:新建项目,选择“C/C++”下的“Convert to a C/C++ Project(Adds C/C++ Nature)”。进入“下一步”。

2.选中你刚才建的“HelloJni”工程,下面左边选“Makefile project”右边选“Cygwin GCC”,点击Finish创建项目。

 

 

3.在“HelloJni”工程上右键,选择“属性”。配置“C/C++ Build”:点击“C/C++ Build”,在右边的“Builder Settings”中去掉默认勾选的“Use default build command”复选框。

设置Build command为“bash E:\android\android-ndk-r8\ndk-build”。

 

4.配置依赖库:C/C++ General ->  Paths and Symbols:在Includes下add新的GNU,C依赖路径。

“HelloJni”工程需要“E:\android\android-ndk-r8\platforms\android-8\arch-arm\usr\include”即可,以后根据不同项目选择不同的依赖库。 

 

5.将“/HelloJni/jni/hello-jni.c”中的字符串“Hello from JNI !”,改为“Hello JNI from ZDZ!”

 

6.运行后在模拟器上输出的字符串为“Hello JNI from ZDZ!”即说明配置成功。 

 

到现在你可以在一个工程中同时开发基于C/C++的Native代码和基于Java的代码,开发NDK应用和开发普通android应用感觉不到什么差别了。

 

欢迎大家评论讨论,如有不清楚的可以在评论里面提出来,将会更新补充清楚,已经补充了部分cygwin安装过程的截图和注意事项。

有空再整理一篇用NDK移植ffmpeg的文章。


本文转载自:http://blog.csdn.net/zenail501129/article/details/23967557

l
粉丝 3
博文 30
码字总数 1087
作品 0
大连
私信 提问
如何在Ubuntu下搭建Android NDK开发环境(图文)

1 搭建Android SDK开发环境 参考在在Ubuntu下搭建Android SDK开发环境(图文) 首先在Ubuntu下搭建Android SDK开发环境. 2 下载NDK开发包 打开官网: http://developer.android.com/sdk/ndk/i...

长平狐
2013/03/19
216
0
Ubuntu下android学习——(1)开发环境的搭建

强调:你使用的是ubuntu,不是windows,你学习的是Android开发,不是怎么配环境 一、Android简介 Android是基于Linux内核的软件平台和操作系统。 Android构架主要由3部分组成,linux内核层,...

OrionBox
2012/07/21
985
1
vlc android 代码编译

系统:ubuntu12.04 代码:git://git.videolan.org/vlc-ports/android.git 代码版本:375646994d0602 年初的时候搞了三个月的vlc android。昨天看到vlc android的beta版本发布了,决定编译一个...

Kobe_Gong_5
2013/08/25
923
1
android NDK 在Ubuntu10.04开发环境的搭建

最近可能要用到调用jni,我对NDK和Jni了解非常的少,今天根据网络上的一些博客搭建了一下NDK的开发环境,但是继续往下编译jni这些就不会了,如果有哪位看到了,希望能帮帮忙 下面我将今天搭建...

雨焰
2013/03/19
441
0
NDK开发 eclipse相关开发环境的搭建

开发环境:windows+eclipse+NDK+cygwin (推荐这个偶然发现的音乐,听着心情就会变好) 在《android初涉NDK,从零打造你的第一个demo》(http://my.oschina.net/sosofy/blog/78353)中,我把打...

soso_fy
2012/09/25
6.3K
3

没有更多内容

加载失败,请刷新页面

加载更多

apache httpClient实现代理发送Post请求

CredentialsProvider credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials( new AuthScope("host", port), new UsernamePasswordCredentials(username, password......

huangkejie
7分钟前
2
0
SpringCloud

单体应用存在的问题 ● 随着业务的发展,开发变得越来越复杂。 ● 修改、新增某个功能,需要对整个系统进行测试,重新部署。 ● 一个模块出现问题,很可能导致整个系统崩溃。 ● 多个开发团队...

Star永恒
17分钟前
2
0
contos7安装elasticsearch6.8

基于最近安装elasticsearch过程遇到的坑在这里总结一下,记录一下。 环境: elasticsearch基于Java,需要有Java环境,最新的es需要jdk11,这选择安装的事6.8.0,需要jdk8。 版本: 安装去官网...

eric_le
20分钟前
2
0
PHP 全链路追踪 Molten-Docker

#DockerfileFROM daocloud.io/php:7.2-fpm-alpineENV TIME_ZONE=Asiz/Shanghai RUN apk add linux-headers# Compile MoltenRUN set -xe && \ curl -LO https://git......

MrMyj
23分钟前
2
0
聊聊rocketmq producer的batch

序 本文主要研究一下rocketmq producer的batch batch rocketmq-client-4.6.0-sources.jar!/org/apache/rocketmq/client/producer/DefaultMQProducer.java public class DefaultMQProducer ex......

go4it
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部