如何解决如何动态调试android native c / c ++日志?
我想调试一些android native c / c ++代码,例如
PROJECT_NAME/frameworks/av/media/libaudioclient/AudioTrack.cpp
等。
但是当我使用cmd logcat
时,我无法获得D&I&VI之类的日志级别,试图在//#define LOG_NDEBUG 0
文件顶部取消对AudioTrack.cpp
的注释,但是我有两个问题,:
我想动态地打开或关闭日志,但是在这种方法中,我必须注释/取消注释#define LOG_NDEBUG 0
。
另一个是尽管我取消了对#define LOG_NDEBUG 0
的注释并为make target-files-package -j12
忍受了很长时间,但是它在终端中不能作为打印输出日志级别“ Verbose”使用。
我的问题是是否有某种方式可以动态地(例如读取和编辑xxx.xml
)来捕获android native c / c ++调试日志(包括详细信息,信息,调试级别)?
解决方法
您可以定义 cppFlags ,您可以基于此来切换本机代码中的日志
app build.gradle-
externalNativeBuild {
cmake {
cppFlags += "-DBUILD_DEBUG"
}
}
在本机代码中创建日志常量(可能在某些头文件中)-
#ifdef BUILD_DEBUG
#include<android/log.h>
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE,"tag",__VA_ARGS__)
#else
#define LOGV(...)
#endif
最终像-LOGV("log to print")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。