用Android Studio 代码模板快速在JNI中添加Android log支持


在涉及C/C++开发的过程中,我们往往也和常规Android开发一样,习惯于通过log输出来观察和调试程序。当我们需要在native代码( C/C++)中打印log时,要怎么做呢?

IDE特性

在当前比较新的Android Studio版本上(笔者以Android Studio 3.2 为例),当新建工程时,如果勾选上C/C++代码支持,在工程初始化好以后,会默认生成CMakeLists.txt编译脚本文件,已经为我们添加好了Android log库文件的链接支持,不像以前ndk的mk文件,需要手动添加"LOCAL_LDLIBS :=-llog"等语句,这点还是做得很友好了。下面是一个默认生成的CMakeLists.txt文件部分内容:
在这里插入图片描述

需要怎么做?

我们需要做的,就是根据Android NDK 原生 API的建议,和参考NDK log参考文档,自行编写封装宏,方便以后试用。通常我们定义成下面这样:

#ifndef __CUSTOM_ANDROID_LOG_H
#define __CUSTOM_ANDROID_LOG_H

#include <android/log.h>

#define TAG "JniLog" // 这个是自定义的LOG的标识
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, TAG, __VA_ARGS__) // 定义LOGD类型
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, TAG, __VA_ARGS__) // 定义LOGI类型
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN, TAG, __VA_ARGS__) // 定义LOGW类型
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, TAG, __VA_ARGS__) // 定义LOGE类型
#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL, TAG, __VA_ARGS__) // 定义LOGF类型

#endif //__CUSTOM_ANDROID_LOG_H

如果我们比较频繁的在不同工程中用到这些log定义,一种方式是:直接拷贝一份其他工程中现成的;但如果手边不方便马上找到一份现成的,怎么办呢?下面就是更快捷的方法。

在Android Studio中添加一个代码模板

开打方式:File->Setting->Editor->File and Code Templates
点击“Files” Tab下面的“+”按钮,添加一个代码模板:
在这里插入图片描述
name是会出现将来的New菜单中的名字,自定义即可,如Android Log Header;extension改为h
在这里插入图片描述
然后将下面的内容添加到文本区域:

#[[#ifndef]]# __CUSTOM_ANDROID_LOG_H
#[[#define]]# __CUSTOM_ANDROID_LOG_H

#[[#include]]# <android/log.h>

#[[#define]]# TAG "JniLog" // 这个是自定义的LOG的标识
#[[#define]]# LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, TAG, __VA_ARGS__) // 定义LOGD类型
#[[#define]]# LOGI(...) __android_log_print(ANDROID_LOG_INFO, TAG, __VA_ARGS__) // 定义LOGI类型
#[[#define]]# LOGW(...) __android_log_print(ANDROID_LOG_WARN, TAG, __VA_ARGS__) // 定义LOGW类型
#[[#define]]# LOGE(...) __android_log_print(ANDROID_LOG_ERROR, TAG, __VA_ARGS__) // 定义LOGE类型
#[[#define]]# LOGF(...) __android_log_print(ANDROID_LOG_FATAL, TAG, __VA_ARGS__) // 定义LOGF类型

#[[#endif]]# //__CUSTOM_ANDROID_LOG_H

最后Apply -> OK保存。

使用

现在当我们在一个目录上右键选择New,就会展开显示我们添加的代码模板选项了:
在这里插入图片描述
然后输入一个文件名,就可以快速添加一个包含各种log宏定义的头文件了。
在这里插入图片描述在这里插入图片描述

发布了26 篇原创文章 · 获赞 7 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/China_Style/article/details/100660624
今日推荐