hal的调试基础

本文介绍了Android Log的五个等级:Verbose、Debug、Info、Warn和Error,详细阐述了它们在开发和调试过程中的使用场景和调用方式。在Java层通过Log.v、Log.d、Log.i、Log.w、Log.e进行调用,而在C/C++层则使用ALOGV等宏。还提到了如何在运行时开启或关闭Debug等级的log,并强调了Log的Tag和内容规范,以提高问题排查效率。

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

现在的工作,需要经常去关注hal层,为了debug,先去了解一下

aloge alogw alogi alogd alogv


为了规范软件工程师在 android 代码编写过程中输出 Log 的行为,使得发布的产品中打印的 Log 是必须的,打印的 Log 的级别是能真实反映此 Log 对应的级别,标签、 Log 内容具有很好的可读性。

android平台javac++c代码编写。

 Log的调用及等级介绍

(1)Log的等级有Verbose,Debug,Info,Warn,Error

(2)java层调用:在java层调用import android.util.Log,在需要打印Log的地方执行Log.v,Log.d,Log.i,Log.w,Log.e.

(3)cc++层调用:在c,c++层包含此头文件:#include <cutils/log.h>,在需要调用Log的地方执行:ALOGV,ALOGD,ALOGI,ALOGW,ALOGE


Verbose: 开发调试过程中一些详细信息,不应该编译进产品中,只在开发阶段使用。

JAVA: Log.v(LOG_TAG,LOG_MESSAGE);

C/C++: ALOGV();

Debug: 用于调试的信息,编译进产品,但可以在运行时关闭。Debug等级的log,默认不开启,通过终端命令开启。

  JAVA:Log.d(LOG_TAG,LOG_MESSAGE);

运行时开启log: 在终端输入:setprop log.tag.MyActivity DEBUG

运行时关闭log: 在终端输入:setprop log.tag.MyActivity INFO

C/C++:  ALOGD();

运行时开启log: 在终端输入:setpropdebug.MyActivity.enablelog 1

运行时关闭log: 在终端输入:setpropdebug.MyActivity.enablelog 0


Info:例如一些运行时的状态信息,这些状态信息在出现问题的时候能提供帮助。

Warn:警告系统出现了异常,即将出现错误。

Error:系统已经出现了错误。

InfoWarnError这三个等级的Log的警示作用依次提高,需要一直保留。这些信息在系统异常时能提供有价值的分析线索。


Logtag命名,使用Activity名称或者类、模块的名称,不要出现自己的姓名拼音或其他简称。在c++/c代码中调用ALOGD等宏函数,参数没有传入tag,需要在文件头部#define LOG_TAG"YOUR_TAG_NAME"


Log的内容,不要出现公司名称、个人名称或相关简称,Log内容不要出现无意义的内容,如连续的等号或星号或连续的数字等,Log内容要方便其他分析Log的人员查看。


Log 输出的频率需要控制 , 例如 1s 打印一次的 Log ,尽量只在 eng 版本使用, user 版本如需开启,请默认关闭,通过设置 setprop 命令来开启。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值