Android NDK 开发教程:调试

开发应用一个关键的步骤是调试,对于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 ,添加合适的打印语句

1
2
3
4
5
6
7
8
#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看到打印的信息:

转载自:http://www.imobilebbs.com/wordpress/?p=2937

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值