Chinaunix首页 | 论坛 | 博客
  • 博客访问: 192646
  • 博文数量: 90
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2017-08-23 16:48
文章分类

全部博文(90)

文章存档

2015年(1)

2011年(21)

2010年(59)

2009年(9)

我的朋友

分类: 嵌入式

2011-05-11 10:47:23

-- 用Code::Bocok + NDK 搭建Android Native可视化开发及调试环境
记得最后一次写Android Native开的系列是去年6.1号,过去整整一年多了。虽然Android已经很火了,google为什么至今天仍然没有推出完善的NDK开发调试环境呢?!相信以后会有更多的公司会用底层的C/C++的API来开发或移植他们的产品,毕竟透过一层JNI(虽然有传说中的2.2的JIT技术)多少会能效率的损失!

Code::Blocks我就不再多提了,非常优秀的开源的跨平台C/C++开发工具,有活跃的开发人员和论坛,推荐大家下载 Nightly 版本: 进行开发。

关于Android 需要用到的源码的下载及Code::Blocks的下载配置,大家请参考前面的Blog:
下载完的源码目录应如下图所示:
Android原生开发之十一:用Code::Blocks+NDK开发调试
当然,如果有条件也可以下载全部源码供研究使用。但基本的Native开发,有这些源码及头文件差不多就够了。
NDK假定是下载最新的r4b版本:,并解压在目录:D:\android-ndk-r4b
Cygwin请安装全新的1.7版本,旧版我没有测试,安装请参考列出的第每一个blog,安装make及python2.5(请务必安装2.5版,2.6不行)应该就差不多了。
下面开始Code::Blocks+NDK的配置,打开CodeBlocks,选择菜单“Settings->Compiler and debugger...”,在弹出的窗口中选取“GNU ARM GCC Compiler”,当然也可以Copy一个新的,但为了方便就用这个了,再进行如下设置:
  • 将“Toolchain executables”页的“Compiler's Installation directory”设置为NDK下的目录:D:\android-ndk-r4b\build\prebuilt\windows\arm-eabi-4.4.0(也可用4.2.1);
  • 将“Toolchain executables”页的“Program Files”所有arm-elf-xxx.exe改为arm-eabi-xxx.exe;
  • 在“Toolchain executables”页的“Additional Paths”加入Cygwin的bin目录,因为toolchain是用Cygwin构建的,需要Cygwin的运行库,如“D:\Cygwin\bin”。
如下图:
Android原生开发之十一:用Code::Blocks+NDK开发调试

再选中“Search directories”页的“Compiler”页,将如下目录加入列表中(假定NDK解压在D:\android-ndk-r4b目录,Android源码下载在 D:\Android\source 目录):
  • D:\android-ndk-r4b\build\platforms\android-8\arch-arm\usr\include
  • D:\Android\source\frameworks\base\include
  • D:\Android\source\system\core\include
  • D:\Android\source\hardware\libhardware\include
  • D:\Android\source\external\skia\include\core
如下图:
Android原生开发之十一:用Code::Blocks+NDK开发调试


再在“Linker”页中加入Android 2.1的库文件目录:D:\Android\libs_2.1,如何用busybox下载库文件请参考“Toolchain环境搭建篇”的Blog。
用NDK自带的gdb,调试可能会有些问题,可自已下载gdb的源码进行编译或下载 Nvidia的tegra的调试器:http://developer.download.nvidia.com/tegra/files/tegra-gdb-20100430.zip
解压后,将其中的文件 \prebuilt\windows\arm-eabi-gdb.exe 复制到目录 D:\android-ndk-r4b\build\prebuilt\windows\arm-eabi-4.4.0\bin,覆盖原文件,这是最新的 android 专用的 7.15版本的gdb,解决了很多Cygwin的目录设定的相关问题,比NDK正带的6.8版本的gdb好用。
现在基本上可以开始写程序试试编译及调试了,步骤如下:
  1. 启动 android 的模拟器,保证 adb shell 能正常运行;
  2. 建一个 android arm 的项目(已上传一个demo项目:),选中debug并编译,并将此文件上传到模拟器;
  3. 在命令行运行:adb forward tcp:1234 tcp:1234,将本机端口和android 模拟器端口进行转接;
  4. 在命令行运行:adb shell,进入模拟器命令行后运行:gdbsever 10.0.2.2:1234 program_name(program_name就是你的可调试的程序名);
  5. 在Code::Blocks中设置断点,启动调试,项目的属性做如下设置(选中项目点右键,在弹出菜单中选取“Properties...”),在弹出的窗口中设置如下图:
Android原生开发之十一:用Code::Blocks+NDK开发调试
阅读(3191) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~