分类: Android JNI Android 2262人阅读 评论(2) 收藏 举报 Cygwin Android JNI Android NDK开发 .so Android JNI环境搭建

目录(?)[+]

  1. 三在Eclipse中集成CC开发环境CDT
  2. 四安装Sequoyah插件
  3. 五JNI编译环境配置

最近用到JNI开发折腾了好几天才把换进搭建好,走了不少弯路,为正在步入JNI开发的朋友少走弯路将自己环境搭建的过程献上。

一.安装Cygwin和配置ndk环境

1.下载ndk和Cygwin

ndk下载地址:http://dl.google.com/android/ndk/android-ndk-r8b-windows.zip

Cygwin的下载地址:http://cygwin.com/setup.exe

2.ndk下载完成后解压即可

3.安装Cygwin

Android Jni开发环境搭建完整版_第1张图片

点击下一步 选择安装模式

Android Jni开发环境搭建完整版_第2张图片

点击下一步 选择安装目录

Android Jni开发环境搭建完整版_第3张图片

点击下一步 选择离线安装包

Android Jni开发环境搭建完整版_第4张图片

点击下一步

Android Jni开发环境搭建完整版_第5张图片

把用红框标出的两个改成install状态,然后一路下一步

Android Jni开发环境搭建完整版_第6张图片

点击完成就安装成功了。会在桌面生成一个Cygwin运行快捷方式点击打开

输入Make -version 如果出现有版本号的如下界面说明安装成功

Android Jni开发环境搭建完整版_第7张图片

4.配置ndk的环境变量

把ndk的解压的目录配置到cygwin的环境变量里面

在cygwin的安装目录etc的目录下有一个profile文件,

把ndk的目录加到path上

修改完之后保存,重启cygwin输入ndk-build,如果出现一下界面说明ndk环境配置成功

Android Jni开发环境搭建完整版_第8张图片

到这一步我们的Cygwin和ndk环境都已经搭建成功。

二.使用ndk编译程序

现在我们用已经安装好的ndk来编译一个ndk自带的samole程序hello-jni,hello-jni在android-ndk-r7b\samples\hello-jni(我的目录位于:D:\Android\android-ndk-r7b\samples\hello-jni)。

1.运行Cygwin输入命令“cd /cygdrive/d/java/android-ndk-r8/samples/hello-jni”,进入到“hello-jni”工程目录。

Android Jni开发环境搭建完整版_第9张图片

2.输入命令“/cygdrive/d/Android/android-ndk-r7b/ndk-build”命令即可编译。

Android Jni开发环境搭建完整版_第10张图片

3.到D:\Android\android-ndk-r7b\samples\hello-jni\libs\armeabi下面是否生成.so文件,如果有说明你的ndk就运行正常!

Android Jni开发环境搭建完整版_第11张图片

三.运行ndk程序

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

1.:在Eclipse中导入HelloJni工程。(注意:API level必须为1.5或更高的版本)。

2:运行HelloJni。这里要注意,你之前在使用NDK编译程序时要把这个hello-jni编译过并产生了.so文件,此处才能运行起来。

Android Jni开发环境搭建完整版_第12张图片

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

CDT的安装可以使我们在一个工程中,同时开发基于C/C++的Native代码和基于Java语言的壳,之后的配置还可以使得一次编译两部分代码。

下载地址:http://www.eclipse.org/cdt/downloads.php 选择适合你的版本进行下载。

Eclipse C/C++ IDE Indigo SR2:是带CDT的Eclipse开发环境。

cdt-master-8.1.2.zip:是CDT离线安装包。

离线安装:

Eclipse -> Help -> Install New Software,点击add。Name:自定义,建议使用好记的“CDT_版本”。Location:点击Archive,定位到下载的“cdt-master-8.0.2.zip”文件。

验证:

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

Android Jni开发环境搭建完整版_第13张图片

四、安装Sequoyah插件

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

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

在线安装:

官网提供了用于在线安装的Update Site地址以及安装包的下载地址。因为安装包不大(1M多),所以建议使用在线安装。勾选全部列出的可安装项并完成安装。

Help -> Install New Software,点击add。Name:自定义(我用的是sequoyah)。

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

Android Jni开发环境搭建完整版_第14张图片

注意:

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

配置:

安装完Sequoyah插件后,为Android配置NDK路径。

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

Android Jni开发环境搭建完整版_第15张图片

验证:

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

五、JNI编译环境配置

以之前建立的“HelloJni”为例,到目前为止,如果我们修改“/HelloJni/jni/hello-jni.c”文件,动态链接库libhello-jni.so文件却不会被重新编译生成。这是因为我们没有给JNI项目添加它需要的编译配置和依赖库。现在我们来配置它。

第一步:转换工程。点击“文件 -> 新建 -> 其他”(快捷键:Ctrl+N)。选择“C/C++”下的“Convert to a C/C++ Project(Adds C/C++ Nature)”。进入“下一步”。

Android Jni开发环境搭建完整版_第16张图片

第二步:选中你刚才建的“HelloJni”工程,下面左边选“Makefile project”右边选“Cygwin GCC”。确定后提示的“透视图”不清楚是什么,点击“是”即可。

Android Jni开发环境搭建完整版_第17张图片

第三步:在“HelloJni”工程上右键,选择“Properties”。配置“C/C++ Build”和“C/C++ General -> Paths and Symbols”。

C/C++ Build:点击“C/C++ Build”,在右边的“Builder Settings”中去掉默认勾选的“Use default build command”复选框。设置Build command为“ndk-build.cmd”。

Android Jni开发环境搭建完整版_第18张图片

C/C++ General -> Paths and Symbols:在Includes下add新的GNU C依赖路径。此“HelloJni”工程需要“D:\Android\android-ndk-r7b\platforms\android-14\arch-arm\usr\include”即可,以后根据不同项目选择不同的依赖库。

Android Jni开发环境搭建完整版_第19张图片验证:

修改“/HelloJni/jni/hello-jni.c”中的字符串“Hello from JNI !”如改为“Hello JNI!”。

Android Jni开发环境搭建完整版_第20张图片

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

Android Jni开发环境搭建完整版_第21张图片

更多相关文章

  1. Android 4.0 开发环境Eclipse安装过程
  2. Android技术积累:图片异步加载
  3. Android基于多触控的图片缩放和拖动代码实现
  4. Android的图片上传
  5. Android 平台上拍照/录像,图片/视频选择,编辑和压缩的一站式解决方
  6. android NDK环境搭建【针对EClipse】
  7. Android Webview upload 图片上传
  8. Android图片圆角转换 RoundedImageView开源项目 小记

随机推荐

  1. Android(安卓)更改头像(图片)并上传服务器
  2. 四、android百度地图之导航(环境的配置)
  3. 去除android导航栏和状态栏(返回键,home键,
  4. Android逆向之旅---爆破应用签名的一种全
  5. android onkeydown()简介
  6. 视频学习笔记:Android(安卓)ffmpeg解码多
  7. 利用adb无线连接android手机进行调式 无
  8. Android(安卓)解析后台返回为Json数据的
  9. 如何优雅地在Android上实现iOS的图片预览
  10. android垃圾回收机制及程序优化System.gc