news 2026/4/17 18:47:14

Android 默认的日志记录方式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Android 默认的日志记录方式

dumpsys 的作用

dumpsys是 Android 系统中一个功能强大的诊断工具,主要用于:

  1. 系统服务状态查询:获取正在运行的 system services 的状态信息
  2. 调试分析:检查内存、电池、网络、Activity、进程等状态
  3. 性能分析:分析应用性能问题,检查服务运行状况
  4. 故障排查:诊断系统或应用异常
  5. 信息导出:生成系统状态快照供后续分析

常用命令示例:

# 查看所有可用的系统服务dumpsys -l# 查看 Activity 状态dumpsys activity activities# 查看内存信息dumpsys meminfo# 查看电池状态dumpsys batterystats# 查看特定包名的信息dumpsys package com.example.app

Android 默认的日志记录方式

1.Logcat(最常用)

  • 系统日志:内核、系统服务、应用日志
  • 实时查看adb logcat
  • 过滤级别:V/D/I/W/E(Verbose/Debug/Info/Warning/Error)
  • 缓冲区:main, system, events, radio, crash 等

2.System Tracing (Perfetto/Systrace)

  • 性能跟踪:CPU、GPU、内存、功耗、应用启动等
  • 图形化分析:Chrome 浏览器打开.perfetto-trace.html文件
  • 启用方式:
    # 命令行捕获adb shell perfetto --config :test --out /data/misc/perfetto-traces/trace.perfetto-trace# 或使用 Systracepython systrace.py -o trace.html sched gfx view wm

3.Bug Report

  • 完整系统快照:包含 logs、dumpsys、tombstones、ANR traces 等
  • 生成方式:
    adb bugreport# 或设备上:设置 → 开发者选项 → 错误报告

4.ANR Traces

  • 应用无响应/data/anr/traces.txt
  • 获取方式:
    adb pull /data/anr/traces.txt

5.Tombstones

  • Native 层崩溃/data/tombstones/
  • 用于分析 C/C++ 层崩溃

6.Dropbox

  • 系统异常收集:crash、ANR、watchdog、低内存等
  • 位置:/data/system/dropbox/

7.Event Log (events 缓冲区)

  • 系统事件:安装、启动、点击等系统事件
  • 查看:adb logcat -b events

8.Kernel Log (kmsg/dmesg)

  • 内核日志:驱动程序、内核事件
  • 查看:
    adb shelldmesgadb shellcat/proc/kmsg

9.Mainline Logs

  • 模块化组件日志:Google Play 系统更新模块日志

控制台常用打印/调试命令

系统状态类

# 进程和内存adb shellps-A# 所有进程adb shelltop# 实时进程状态adb shell procrank# 进程内存排名adb shell showmap<pid># 进程内存映射# 系统属性adb shell getprop# 所有系统属性adb shell wm size# 屏幕分辨率adb shell dumpsys window displays# 显示信息# 包管理adb shell pm list packages# 所有应用包名adb shell dumpsys package<pkg># 包详细信息

性能分析类

# CPU/GPUadb shell cpuinfo# CPU信息adb shell dumpsys gfxinfo# 图形性能adb shell dumpsys SurfaceFlinger --latency# 帧率# 电池和功耗adb shell dumpsys batterystats --reset adb shell dumpsys battery# 电池状态# 网络adb shellnetstat# 网络连接adb shell dumpsys netstats# 网络统计adb shell dumpsys connectivity# 连接状态

存储和文件

adb shelldf# 磁盘空间adb shelldu-sh /path# 目录大小adb shellls-la /data/logs/# 日志文件列表

调试辅助

# 输入事件adb shell input keyevent KEYCODE_HOME# 模拟按键adb shell input tap x y# 模拟点击adb shell input swipe x1 y1 x2 y2# 模拟滑动# 截图和录屏adb shell screencap /sdcard/screen.png adb shell screenrecord /sdcard/demo.mp4

广播和组件

# 发送广播adb shell am broadcast -a<action># 启动组件adb shell am start -n<component>adb shell am startservice<component># Activity 栈adb shell dumpsys activity intents adb shell dumpsys activity broadcasts

实用技巧

# 同时查看多个日志源adb logcat -b main -b system -b events -b crash# 按优先级过滤adb logcat *:E# 只显示错误adb logcat *:W# 警告及以上# 按标签过滤adb logcat -s ActivityManager PackageManager# 清空日志adb logcat -c

这些工具组合使用可以全面诊断 Android 系统的各种问题,从应用崩溃到性能优化,从系统异常到功耗分析。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/22 17:47:47

手把手带你设计一个Java高并发系统!

设计一个高并发系统并非易事&#xff0c;如果不站在巨人的肩膀上来开展工作的话&#xff0c;这条路是很难保持一路畅通的&#xff01;所以&#xff0c;本着好东西就是要拿出来分享的原则&#xff0c;LZ就把前段时间从阿里的一位老哥手上捞到的百亿级系统架构设计实录分享给大家…

作者头像 李华
网站建设 2026/3/31 19:13:50

这次带你彻底搞定Java程序员必会的Redis!

大家都知道Redis的业务范围是非常广的&#xff0c;但是对于刚入行的小伙伴来说可能也就知道个缓存跟分布式锁。因为Redis的很多功能在一些小企业里&#xff0c;根本是用不到的&#xff0c;得等到并发量到了一定的程度&#xff0c;系统扛不住了&#xff0c;才会用到Redis那些高级…

作者头像 李华
网站建设 2026/4/16 14:03:35

基于机器学习的企业异常值检测实验报告(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于机器学习的企业异常值检测实验报告(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码摘要 随着我国经济不断蓬勃发展&#xff0c;非法集资案件涉及范围广、金额大&#xff0c;严重干了正常的经济、金融秩序&#xff0c;使参与…

作者头像 李华
网站建设 2026/4/18 5:54:42

LH Research CM-E3708208 1000W 电源

LH Research CM-E3708208 1000W 电源相关信息 LH Research CM-E3708208 是一款1000W功率的电源模块&#xff0c;通常用于工业、医疗或高端电子设备中。以下是关于该型号的一些关键信息&#xff1a; 主要参数 输入电压范围&#xff1a;85-264VAC输出电压&#xff1a;根据具体…

作者头像 李华
网站建设 2026/4/18 8:45:01

说说 Redis 缓存穿透场景与相应的解决方法

Redis 缓存主要缓存穿透、缓存击穿与缓存雪崩异常场景&#xff0c;今天我们来讲讲缓存穿透。1 场景描述缓存穿透是指客户端请求一个缓存和数据库中都不存在的 key。由于缓存中不存在&#xff0c;所以请求会透过缓存查询数据库&#xff1b;由于数据库中也不存在&#xff0c;所以…

作者头像 李华
网站建设 2026/3/27 21:53:00

【5分钟背八股】击穿、穿透、雪崩、预热解决方案?

缓存穿透 缓存穿透是指查询一个一定不存在的数据&#xff0c;由于缓存是不命中时被动写的&#xff0c;并且出于容错考虑&#xff0c;如果从存储层查不到数据则不写入缓存&#xff0c;这将导致这个不存在的数据每次请求都要到存储层去查询&#xff0c;失去了缓存的意义。在流量…

作者头像 李华