NDK开发笔记(一)---环境搭建
来源:互联网 发布:怎样创建数据库 编辑:程序博客网 时间:2024/06/05 03:38
安装NDK开发环境:
1.安装cygwin ,其中要安装gcc等编译器等请参考http://qichunren.javaeye.com/blog/214527
结果:
运行 cygwin ,在弹出的命令行窗口输入: cygcheck -c cygwin 命令,会打印出当前 cygwin 的版本和运行状 态,如果 status 是 ok 的话,则 cygwin 运行正常。
然后依次输入 gcc –version , g++ --version , make –version , gdb –version 进行测试,如果都打印 出版本信息和一些描述信息,非常高兴的告诉你,你的 cygwin 安装完成了!
C:/cygwin/home/用户名/.bash_profile
在后面加入下面的path.
NDK=/cygdrive/NDK路径
PATH=${PATH}:/cygdrive/NDK路径
export NDK
export NDK.
配置PATH环境变量。
2.下载NDK Android NDK (Native Development Kit)
配置 NDK 环境变量
3.下载最新的Eclipse 版本
http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.6.2-201102101200/eclipse-SDK-3.6.2-win32.zip
4.配置android相关ADT,以及SDK环境
4.安装CDT,可以支持C/C++ Project.
http://www.eclipse.org/cdt/downloads.php
5.配置eclipse
生成项目也是快速而灵活的。你曾经使用过Eclipse的生成器吗?它们是一些可配置的开关,用于执行你所配置的命令和刷新工程资源。以下是我的配置:
右击你的项目,选择“properties”
在左边的列表中选择“Builders”
在右侧,点击“New…”按钮
在列表框,选择“Program”作为配置类型;点击“OK”按钮,进入下一个配置对话框。
命名name为“Native Builder”
选择Location为“c:/cygwin/bin/bash.exe”
“Working Directory”为“c:/cygwin/bin”
“Arguments”为:
–login -c “cd /cygdrive/e/android-ndk-r5/samples/hello-jni && $NDK/ndk-build”
其中/cygdrive/e/android-ndk-r5/samples/hello-jni为你工程的目录。
确保在login前有两个连接号,-c后面的引号。
接着打开“refresh”的tab面板:
选中“Refresh resources upon completion”
选择“Specific resources”
点击“Specify resources”按钮,选择你项目的libs目录
选中“Recursively include sub-folders”
接着打开“Build Options”的tab面板:
选中“Allocate Console”
选中“Launch in background”
选中“Run the builder After a Clean”
选中“Run the builder During manual builds”
选中“Run the builder During auto builds”
选中“Specify working set of relevant resources”
点击“Specify Resources”按钮,选择你项目的JNI目录,并包含所有的文件。
点击“OK”按钮。
上面红色字体的一定要选择正确。这样就会ba
6.测试
打开项目jni目录里的hello-jni.c文件把提示Hello from JNI!改成其他的文字:如:Hello World JNI.,然后再模 拟器中运行你的程序,如果模拟器中显示了你最新修改的文字,
在Console中会显示如下。。
Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver
Gdbsetup : libs/armeabi/gdb.setup
Compile thumb : hello-jni <= hello-jni.c
SharedLibrary : libhello-jni.so
Install : libhello-jni.so => libs/armeabi/libhello-jni.so
那么Congratulations!你已经全部配置成功啦。
7.要编写jni中的.c文件那加下面的include文件
右键你的工程然后选择Properties-->C/C++ Builder/Settings/GCC Compiler/include/加入你要引入的JNI头文件
一般在
android-ndk-r5/platforms/android-3/arch-arm/usr/include。里面包含了jni.h文件。
这样就可以在eclipse中用Alt+/来感应编程了。
8.android ndk logcat
如果想在JNI中使用logcat输出的话那就做以下几步
- #include <android/log.h>
LOCAL_LDLIBS := -llog 在Android.mk文件中加入库不然会报下面的错误
undefined reference to `__android_log_write'
加入log 使用下面的指令。
__android_log_write(ANDROID_LOG_ERROR,"Tag","Message");
可以查看log.h文件的定义。路径如下
build/platforms/android-1.5/common/include/android/log.h
9.我自己新建个工程,然后加入jni,libs文件,然后按照上面的做,发现它不能做到上面的第七步,工程右键选择Properties没看到Properties-->C/C++ Builder/的选项,这样我引用不了c/c++的头文件等,编程速度严重影响。
于是我就比对我的Test工程和hello-jni工程的区别,发现了在hello-jin/.PROJECT文档不同
于是在我的工程中比对这两个PROJECT文件,加入下面的code就可以实现
在buildSpec中加入了CDT的控件。
需要注意的是修改
${workspace_loc:/Test/Debug}-->Test为你的工程名字。
在natures的标签中不同德是加入了CDT 插件。
最后还要加人C/C++工程的.cproject 文件,让该工程也是C/C++工程,这个文件你直接从一个在eclipse的c/c++工程copy到你工程的根目录就ok,你可也观察hello-jni工程。
修改完成之后保存ok.就可以实现和NDK smaple一样的效果了,编程方便多了。。^_^
10.搭建好了之后最好是做2个工程,一个是C/C++工程,另外一个android工程,在c/c++ build,build 完之后直接复制libs/ 的目录到android工程。
11.如果上面步骤都做了还有问题可以联系我
Email:wongstar.iac@gmail.com
参考文献:
http://qichunren.javaeye.com/blog/214527
http://blog.csdn.net/duduliao/archive/2011/02/11/6179511.aspx
http://blog.csdn.net/lizhongkan/archive/2010/01/30/5271606.aspx
http://www.rbgrn.net/content/348-get-your-eclipse-integrated-ndk-on
http://blog.blackwhale.at/2009/08/android-ndk-logging/
http://hi.baidu.com/justin8335/blog/item/8976de1d009e35f91ad5762e.html
- NDK开发笔记(一)---环境搭建
- Android NDK开发(一)环境搭建
- NDK开发(一):Android NDK环境搭建
- NDK学习笔记<一> 初步认识JNI|成功搭建NDK开发环境
- Android NDK开发(一)环境搭建及运行示例
- Android NDK开发(一)环境搭建及运行示例
- eclipse中开发NDK以及环境搭建(一)
- eclipse中开发NDK以及环境搭建(一)
- eclipse中开发NDK以及环境搭建(一)
- eclipse中开发NDK以及环境搭建(一)
- eclipse中开发NDK以及环境搭建(一)
- eclipse中开发NDK以及环境搭建(一)
- Android NDK开发一 NDK环境搭建及cmake简介
- NDK开发笔记—ndk环境安装及其搭建
- NDK 环境搭建(一)
- ANDROID开发笔记(一)环境搭建
- Android NDK开发篇(一) windows免cygwin搭建ndk环境
- NDK搭建环境笔记
- 新闻列表样式
- 类的继承
- ASP_NET的三层架构(DAL,BLL,UI)
- 五:CPoint,CSize,CRect类说明
- 字符串读写函数fgets和fputs
- NDK开发笔记(一)---环境搭建
- ID 字符串 查找名称字符串
- 黑客学习发展流程图
- windows2003server 架设serv-u ftp配置问题
- Android Activity启动模式分析
- .NET导出EXCEL出现乱码问题
- AfxGetApp()->m_pMainWnd和AfxGetMainWnd() 的区别
- Android编译出现Multiple substitutions specified in non-positional format
- 转载]冰血大哥的一篇学习计划