参考文档:
http://www.cnblogs.com/hibraincol/archive/2011/05/30/2063847.html
http://blog.csdn.net/cboy017/article/details/8455629
为何要用到NDK?
我们正常的android应用开发是用不到NDK的开发的,SDK开发就够了,正常开发环境也就eclipse+sdk+adt就OK了。
但是,如果遇到一些移植的C/C++功能模块的时候,NDK的开发就显得尤为便捷。
概括来说主要分为以下几种情况:
1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。
2. 在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的。
3. 便于移植,用C/C++写得库可以方便在其他的嵌入式平台上再次使用。
到主页下载NDK
http://developer.android.com/tools/sdk/ndk/index.html
我们从安装说明中也可以看到需要安装cywin1.7以上的是为了c/c++代码的交叉编译
http://www.cygwin.com/
下载NDK后,在eclipse->preferences->android->ndk中选择正确的路径
安装cywin
编译NDK,在默认设置下,只需选择Devel(点击列表中Devel,将后面的Default改为Install,图中箭头所示)其它均为默认状态。
(其实NDK需要的不多,主要autoconf2.1、automake1.10、binutils、gcc-core、gcc- , g++、gcc4-core、
gcc4-g++、gdb、pcre、pcre-devel、gawk、make )
下载完成时间决定于你选择的安装包数量及网络连接速度。
配置cygwin
在命令行中进入cygwin目录,并执行cygwin.bat,如果你不是用Administrator账号登录的系统,那么会在cygwin 安装目录 \home\
文件夹中生成一个以你的登录名命名的新的文件夹。
修改新生成文件夹中的“.bash_profile ”文件,用UE或editplus等文本编辑器打开,
在最后增加: (d/android-ndk-r8是安装ndk的路径)
NDK_ROOT=/cygdrive/d/eclipse/android-ndk-r8e
export NDK_ROOT
然后保存关闭。
好的到目前为止ndk的编译环境是安装搭建完毕了。
我们现在来导入ndk sample中的jni工程
cygwin还没有派上用场,现在就利用它来编译c++,在项目上点击 右键,在工程的属性 builders中new 一个编译规则:
按照下面的设置
Location:D:\cygwin\bin\bash.exe
Working Directory:D:\cygwin\bin
Arguments:--login -c "cd /cygdrive/d/eclipse/android-ndk-r8e/samples/hello-jni&&$NDK_ROOT/ndk-build"
然后在Build Options进行设置
最后然后将NDK_Builder移到最上面
最后编译工程,编译成功后显示成功生成了*.so库文件,运行OK
可能有同学队这个JNI工程有疑问,按个JNI中的头文件是如何而来的,或者我重新建一个NDK工程师如何开始的,请见该博客:
http://www.cnblogs.com/hibraincol/archive/2011/05/30/2063847.html
分享到:
相关推荐
ubuntu下android ndk编译环境搭建,android应用程序开发,环境编译
详细介绍android ndk编译环境搭建,可以自行编译android app所需的C++/C代码实现的高效率功能动态库文件,借JAVA层调用.
使用Android NDK编译Android平台的eXosip库,有静态库和动态库。
ubuntu Android NDK开发环境的搭建
基于Android底层NDK开发OpenCV环境搭建,基于Android底层NDK开发OpenCV环境搭建
arm平台下使用ndk工具交叉编译python,用于android系统;android-arm平台ndk交叉编译python
curl库源码添加了curl_config.h和mk文件,可以直接跳转到目录使用ndk-build编译出so库.
Android NDK 交叉编译工具 Android NDK 交叉编译工具
最新版的live555 ,android的移植,大家瞧一瞧,看一看
NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk,并集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件
详细的描述了Android NDK下编译ffmpeg开源库的步骤。
手把手教你怎么在windows下搭建android NDK环境
Eclipse下Android_NDK环境的搭建
Android NDK环境搭建及遇到的问题详解,我就是看它搭建JNI开发环境的。
用Android_NDK编译FFmpeg,RTSP手机视频
NDK环境搭建 PDF c++ android
live555 库 和 testRtspClient.cpp 编译生成静态库 和 可执行文件 testRtspClient 编译方法: 首先进入各个模块执行 Makefile,将静态库拷贝至上层目录 执行 ndk-build
详细介绍了在eclipse中android项目下c/c++代码的自动编译,和在eclipse中用ant生成ndk需要的jni头文件,加速ndk的开发,因为是原创,费了不少心力和时间,所以设了6分,有人反映太贵了,现在调成3分,这下大家满意了...
Android ndk编译demo,在soxr的源码上完善了Android NDK的编译脚本,快速编译出需要的soxr
本文简要介绍了如何安装Android NDK的C/C++语言开发套件,并介绍了如何创建一个独立的ARM交叉编译工具链。通过该工具链接可以交叉编译Android上的C语言程序,也可以用来编译Android Linux内核。文中举例介绍了如何...