Android中C++文件logcat打印

本文深入讲解Android设备上基于Kernel v4.4.159、rk3328芯片及Android 9.0系统的Logcat日志打印机制。详细解析预定义的log函数及其在系统中的定义路径,介绍如何在项目中引入liblog库并使用这些函数进行日志记录,包括条件打印功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Kernel: v4.4.159
Device: rk3328
Platform Version: Android 9.0

查看已定义的log打印函数

已定义的打印函数定义路径
AOSP/system/core/liblog/include/log/log_main.h

下面是它们的包含关系:

AOSP/system/core/libutils/include/utils/Log.h
------->AOSP/system/core/liblog/include/log/log.h
---------->AOSP/system/core/liblog/include/log/log.h
------------->AOSP/system/core/liblog/include/log/log_main.h

使用时只需要:#include <utils/Log.h>

常用的log函数(只列出10个):

#define ALOGV(...)
#define ALOGI(...)
#define ALOGD(...)
#define ALOGE(...)
#define ALOGW(...)
//如果cond为true才会打印,多数情况此cond为false,此定义与unlikely(汇编优化有关暂不讨论)
#define ALOGV_IF(cond, ...)
#define ALOGI_IF(cond, ...)
#define ALOGD_IF(cond, ...)
#define ALOGE_IF(cond, ...)
#define ALOGW_IF(cond, ...)

使用已定义的log打印函数

  1. 需要在Android.mk中

     LOCAL_SHARED_LIBRARIES := liblog
    
  2. 在需要使用的源文件中

     #include <utils/Log.h>
    
  3. 在需要使用的源文件开头位置

     #define LOG_TAG "Test"
     #define LOG_NDEBUG 1
    
  4. 如果需要使用ALOGV(…)和ALOGV_IF(cond, …)

     #define LOG_NDEBUG 0//一般不要开
    

测试已定义的log打印函数

  1. 如果定义了LOG_TAG并且#define LOG_NDEBUG 1

    1

  2. 如果定义LOG_TAG并且#define LOG_NDEBUG 1

    1

  3. 如果定义了LOG_TAG并且#define LOG_NDEBUG 0

    1

个人博客:http://www.wolfnx.com/2018/06/21/AndroidCplusCplusLogcat

作者 : wolfnx
邮箱 : wolfnx@outlook.com
邮箱2 : lostnx@gmail.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值