Android NDK 开发教程七:调试
2012-05-14 08:16
225 查看
开发应用一个关键的步骤是调试,对于NDK的C代码调试有很多种方法,
对于和Android平台相关性不大的部分代码,可以单独创建一个C/C++项目,编写测试代码,测试完成后,再编译成NDK动态库或静态库模块。
使用NDK-GDB,NDK-GDB的命令行调试方法和GDB类似,网络有很多关于GDB的教程
使用Eclipse+CDT+GDB调试android NDK程序 实时调试,不过这种方法设置起来不是十分方便,调试起来需要在GDB和Eclipse之间来回切换,适合于有经验的程序员。
这里介绍一个开发嵌入式系统调试的“终极工具:-)”-printf. 开发嵌入式系统调试常用的也是最简单的方法,是使用printf 打印调试信息。
修改一下two-lib 的例子 ,使用first.c 中的first 函数实现一个加法计算器
这里我们想在调用first(int x,int y) 显示出传入的x ,y 值。Android NDK 中提供了一个Log库,其头文件为android/log.h ,可以提供Androd Java代码中的Log功能,也是可以在LogCat中打印信息。
具体方法如下:
1. 修改first.c ,添加合适的打印语句
2. 修改android.mk 文件,添加需要链接的Log库
LOCAL_PATH:= $(call my-dir)
# first lib, which will be built statically
#
include $(CLEAR_VARS)
LOCAL_MODULE := libtwolib-first
LOCAL_SRC_FILES := first.c
include $(BUILD_STATIC_LIBRARY)
# second lib, which will depend on and include the first one
#
include $(CLEAR_VARS)
LOCAL_MODULE := libtwolib-second
LOCAL_SRC_FILES := second.c
LOCAL_LDLIBS := -llog
LOCAL_STATIC_LIBRARIES := libtwolib-first
include $(BUILD_SHARED_LIBRARY)
然后就可以编译Native C代码,运行这个例子,可以在LogCat看到打印的信息:
本例下载
对于和Android平台相关性不大的部分代码,可以单独创建一个C/C++项目,编写测试代码,测试完成后,再编译成NDK动态库或静态库模块。
使用NDK-GDB,NDK-GDB的命令行调试方法和GDB类似,网络有很多关于GDB的教程
使用Eclipse+CDT+GDB调试android NDK程序 实时调试,不过这种方法设置起来不是十分方便,调试起来需要在GDB和Eclipse之间来回切换,适合于有经验的程序员。
这里介绍一个开发嵌入式系统调试的“终极工具:-)”-printf. 开发嵌入式系统调试常用的也是最简单的方法,是使用printf 打印调试信息。
修改一下two-lib 的例子 ,使用first.c 中的first 函数实现一个加法计算器
这里我们想在调用first(int x,int y) 显示出传入的x ,y 值。Android NDK 中提供了一个Log库,其头文件为android/log.h ,可以提供Androd Java代码中的Log功能,也是可以在LogCat中打印信息。
具体方法如下:
1. 修改first.c ,添加合适的打印语句
#include "first.h" #include <android/log.h> int first(int x, int y) { __android_log_print(ANDROID_LOG_INFO, "MYPROG", "x = %d, y =%d", x,y); return x + y; }
2. 修改android.mk 文件,添加需要链接的Log库
LOCAL_PATH:= $(call my-dir)
# first lib, which will be built statically
#
include $(CLEAR_VARS)
LOCAL_MODULE := libtwolib-first
LOCAL_SRC_FILES := first.c
include $(BUILD_STATIC_LIBRARY)
# second lib, which will depend on and include the first one
#
include $(CLEAR_VARS)
LOCAL_MODULE := libtwolib-second
LOCAL_SRC_FILES := second.c
LOCAL_LDLIBS := -llog
LOCAL_STATIC_LIBRARIES := libtwolib-first
include $(BUILD_SHARED_LIBRARY)
然后就可以编译Native C代码,运行这个例子,可以在LogCat看到打印的信息:
本例下载
相关文章推荐
- Android NDK 开发教程八:调试
- Android NDK 开发教程:调试
- android NDK开发在本地C/C++源码中设置断点单步调试具体教程
- Android NDK 开发教程:调试
- android NDK开发在本地C/C++源代码中设置断点单步调试详细教程
- android NDK开发在本地C/C++源代码中设置断点单步调试详细教程
- Android NDK开发之C调用Java及原生代码断点调试(二)
- Android NDK 开发教程
- 前端教程&开发模块化/规范化/工程化/优化&工具/调试&值得关注的博客/Git&面试-资源汇总
- 使用GDB调试Android NDK开发的程序
- Android NDK 开发教程一:安装NDK
- android开发教程之ubuntu使用adb连接小米2的步骤和adb调试方法
- 前端教程&开发模块化/规范化/工程化/优化&工具/调试&值得关注的博客/Git&面试-资源汇总
- Android NDK 开发教程五:Android.mk文件
- 用VS2005开发WinCE程序调试图文教程
- [微信开发利器]微信内移动前端开发抓包调试工具fiddler使用教程
- 微信开发获取出错信息,进行debug错误调试-微信开发教程8
- Android NDK开发、编译、调试环境搭建与操作入门
- 微信小程序开发系列教程三:微信小程序的调试方法
- Android NDK 开发的栈错误调试