日志种类、日志命令、日志关键字
发布日期:2022-07-08 02:55:55 浏览次数:25 分类:技术文章

本文共 2879 字,大约阅读时间需要 9 分钟。

日志命令

Log信息获取

一般需要抓取logcat或者bugreport及对应的trace文件;

  • logcat获取

    • adb logcat > xxx.logadb logcat -b [main/system/event/radio...] > xxx.log默认adb logcat获取的是main log;
    • 通过在mainlog或者bugreport中搜索关键字am_anr,ANR in可以得到ANR发生的时间、对应的进程、原因描述等、CPU占用和iowait时间,有时也需要确定内存情况,可以通过在bugreport中查找mem info信息获取到;
  • bugreport获取

    • adb bugreport该命令执行完成,会出现一个进度条,耐心等待到100%即可; 有时候会由于adb版本较低,上述命令不能正常执行,可以执行如下命令,也可以得到所需文件; adb bugreport > bugreport.txtbugreport包含main、system、event、kernel**log**信息,还有设备的一些dump信息,内容较多、较完全;
    • 通过在mainlog或者bugreport中搜索关键字am_anr,ANR in可以得到ANR发生的时间、对应的进程、原因描述等、CPU占用和iowait时间,有时也需要确定内存情况,可以通过在bugreport中查找mem info信息获取到;
  • trace获取

    • Android系统有自身的设计,在应用运行时出现无响应时,会将该信息记录保存到data/anr/目录下,即为所需的trace文件,所以获取该文件的方式也就特别简单,执行如下命令即可;adb pull /data/anr/上述命令执行完成,在当前目录会有anr文件夹,里面就是所以的文件;
  • kernel log获取

    • 有时为了有助于定位问题,需要获取内核log信息,可以通过如下方式获取;adb shell dmesg > dmesg.log // 需要 root 权限 adb shell cat /proc/kmsg > /tmp/kernel.log // 需要 root 权限

根据缓冲区抓取日志

android log输出量巨大,特别是通信系统的log,因此,android把log输出到不同的缓冲区中,目前定义了四个log缓冲区:

1)Radio:输出通信系统的log2)System:输出系统组件的log3)Event:输出event模块的log4)Main:所有java层的log,遗迹不属于上面3层的log

缓冲区主要给系统组件使用,一般的应用不需要关心,应用的log都输出到main缓冲区中

默认log输出(不指定缓冲区的情况下)是输出System和Main缓冲区的log

adb logcat –b radioadb logcat –b systemadb logcat –b eventsadb logcat –b main

跟看日志级别抓取日志

根据进程号抓取日志

查看当前应用的进程号:adb  shell ps -A | grep settings( 设置)在终端打印设置对应的进程号的日志:adb  shell dumpsys | grep "进程号"例:adb  logcat | grep "7930"  根据进程号查找日志

根据特定名称过滤特定类型的日志

adb shell hilogcat | grep -E -i "ShortcutUtil|locale|onReceive|Gallery2|android.intent.action.LOCALE_CHANGED"

日志关键字

ANR关键字

  1. 确定无响应发生的时间:am_anr,ANR in;
  2. 查看trace文件,找到对应进程的文件;
  3. 查看系统耗时关键字:binder_sample,dvm_lock_sample,am_lifecycle_sample,binder thread;

软件的打开与停止

  1. WindowManager: Changing focus from null to window{
    1578093 uo com.tencent.mm/com.tencent.mm.ui.LauncherUI} //微信WindowManager: Chaging focus from windos{
    8b1b468 u0 com.tencetn.mm} //微信持续到现在(中途有切出过)
  2. ActivityManager:sendIntentSender target: PendingIntentRecord{
    d4a5f26 com.eg.android.AlipayGphone}//支付宝WindowManager:focus from null to window{
    3cf6e92 u0 com.eg.android.AlipayGphone}//中途在打开支付宝,之前一直在WindowManager: focus from Window{
    e505bc0 u0 com.eg.android.AlipayGphone}//支付宝使用结束

省电模式开启和关闭

  • 开启:log中存在关键字handlePowerModeSwitch to SaveMode, settings db SmartModeStatus=4
  • 关闭:log中存在关键字handlePowerModeSwitch to SmartMode, settings db SmartModeStatus=1

网络的稳定和不稳定

  • adb logcat | grep -e NetworkPredictMatcher -e Booster_Qoe  低于-60 就是网络问题WIFI :adb logcat | grep WifiNl80211Manager    低于-70     网络问题

智慧语音关键log

Line 18219: 08-22 16:23:42.931 30093 30093 I HwVA VassistantConfig: setStartMode: 0  //  电源键是11   //语音是4 Line 6826: 08-22 16:23:48.325 30093 30166 I VK VoiceDataProcess: handlePartialAsr =你说,我在听… Line 6842: 08-22 16:23:48.329 30093 30093 D HwVA FloatWindowView: handleText 你说,我在听…VK BaseActionGroup: speaking action start TTS, text = 好的.IntentionHandler: processCommandExecutionFinished //云侧意图是否已下发

转载地址:https://blog.csdn.net/jmzrj/article/details/125037928 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:日志系统代码
下一篇:日志相关知识点

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月08日 22时24分17秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章