手机版

如何配置NDK的调试环境

时间:2021-09-05 来源:互联网 编辑:宝哥软件园 浏览:

在安卓的开发中,NDK具有代码保护和可移植的特点,也可以调用第三方C/C库。在NDK开发之初,Android Studio没有提供在原生C/C中设置断点的调试,我们都是通过输出日志进行调试,费时费力。安卓工作室应该只在2.2版本提供断点调试功能,在这个版本也提供cmake编译。

目前在做NDK开发的时候,还是习惯用NDK-Build(也就是设置Android.mk)进行开发。让我简单谈谈如何使用输出日志进行调试:

1.首先,在Android.mk中设置MODULE添加日志库,代码如下:

包括$(CLEAR_VARS)

LOCAL_MODULE :=ndktest

LOCAL _ SRC _ FILES :=native _ lib . c

LOCAL_LDLIBS=-llog

包含$(BUILD_SHARED_LIBRARY)

2.然后添加:

#包括

//为了方便调用,将输出宏定义。

#定义LOG_TAG 'NATIVE_OUTPUT '

#定义LOGI(.)((无效)_ _ _ ANDROID _ LOG _ print(ANDROID _ LOG _ INFO,LOG_TAG,__VA_ARGS__))

#定义LOGE(.)((void)_ _ _ ANDROID _ LOG _ print(ANDROID _ LOG _ ERROR,LOG_TAG,__VA_ARGS__))

3.最后,日志可以通过在native_lib.c中实现文件的方法输出,例如:

LOGI(《奔跑吧》);

LOGI('run i=%d ',I);

以上是一个繁琐的调试方法,每次写完日志都需要重新编译代码。现在描述如何构建本机C/C断点的调试方法:

1.首先,将您的Android Studio升级到2.2或更高版本,并将build.gradle的buildToolsVersion参数设置为Module:buildToolsVersion ' 25 . 0 . 0 '下的25或更高版本。

2.如果您是一个新创建的项目,您可以在“新建项目”中的“应用程序名称”选项下选择一个复选框(包括C支持),集成开发环境将帮助您在构建项目时配置调试环境。

3.如果你是从一个旧项目移植过来的(也就是之前用Android.mk配置的),你可以在Module下打开build.gradle文件。

在defaultConfig节点中,按如下方式添加ndk:

ndk {

moduleName 'imagetool '

AbiFilters 'armeabi'/编译支持的平台。

//.根据自己对Application.mk的配置,按照梯度规则进行配置。

}

然后,在安卓节点中,添加外部活动构建节点:

外部活动构建{

ndkBuild {

android.mk的相对路径。

路径' src/main/jni/Android.mk '

}

}

然后同步项目同步项目,您会看到项目中还有几个文件夹:

NDK的debug环境怎么配置

当您单击运行调试按钮右侧的将调试器附加到安卓进程按钮时,如果您有本机和双选项:

NDK的debug环境怎么配置

当您单击运行调试按钮右侧的将调试器附加到安卓进程按钮时,如果您有本机和双选项:

说明您已经成功配置,并且可以在本机-lib.c实现文件中设置断点进行调试。上面的截图弹出是调试程序配置,默认是自动选项。您可以将其设置为本机以调试您的natvie代码。

调试到本机如下:

NDK的debug环境怎么配置

可以使用LLDB作为自己的调试辅助工具,如何使用LLDB本章没有详细介绍,但是可以参考其他资料。

版权声明:如何配置NDK的调试环境是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。