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

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

关于Android 需要用到的源码的下载及Code::Blocks的下载配置,大家请参考前面的Blog:
  • Android原生(Native)C开发之八:Toolchain环境搭建篇(仅参考源码下载及Cygwin相关内容)
  • Android原生(Native)C开发之十:用Code::Blocks来开发(仅参考Code::Blocks的下载配置相关内容)
下载完的源码目录应如下图所示:

当然,如果有条件也可以下载全部源码供研究使用。但基本的Native开发,有这些源码及头文件差不多就够了。
NDK假定是下载最新的r4b版本: http://dl.google.com/android/ndk/android-ndk-r4b-windows.zip,并解压在目录: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”。
如下图:


再选中“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
如下图:



再在“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项目:ftest.zip),选中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...”),在弹出的窗口中设置如下图:


转自http://blog.sina.com.cn/s/blog_4a0a39c30100l324.html

更多相关文章

  1. Windows环境下Android(安卓)NDK的开发
  2. 通过 WIFI 用 adb 调试 Android(安卓)设备
  3. 阿里安卓高级架构师推荐——Android程序员必备的六大顶级开发工
  4. Android(安卓)NDK开发扫盲及最新CMake的编译使用
  5. Android(安卓)开发中使用广播的那些事儿
  6. Android之Http通信——5.开发中遇到的一些问题
  7. Android开发之ListView页眉页脚效果VS android背景渐变
  8. Android百度地图开发之开发第一个小应用,显示基础的地图页面
  9. 最近对招聘Android开发人员的一些思考

随机推荐

  1. [Android]权限处理
  2. 让 Android(安卓)应用跑在 Windows 平台
  3. kotlin协程库报错“Program type already
  4. Android布局之相对布局——RelativeLayou
  5. Android(安卓)UI设计
  6. Android(安卓)python开发
  7. 如何解决android studio常见安装完成后出
  8. Android中的Handler和Thread详解及应用
  9. Android输入系统
  10. Android(安卓)P 正式到来