Android系统的常见的debug方式

一、Framework层debug 方法

1.1、Dumpsys工具

Dumpsys 工具是Android系统中自带的一款调试工具,运行在shell环境下,提供系统运行的服务状态信息功能。我们知道Android app 是由activity 和 service 构成的,activity(界面) 主要是负责和用户交互,service(后台服务)主要是处理数据存储、网络请求等后台任务。dumpsys 工具就是用来查看正在运行app 的 service信息的。

dumpsys 输出打印的条件:
(1)、只能打印已经加载到 ServiceManager中的服务;
(2)、如果服务端代码中的 dump 函数没有被实现,则没有信息输出。

1.2、常用的命令

1.2.1、输出所有服务的信息

dumpsys -l

1.2.2、输出指定服务的信息

dumpsys [servicename]

1.2.3、输出指定的服务和进程的信息

dumpsys [servicename][应用名]

二、Hal 层debug 方法

2.1、Logcat 工具

Logcat 工具是Android日志系统提供记录和查看系统调试信息的功能。日志是从各种软件和一些系统的缓冲区中记录下来。

2.2、常用命令使用

2.2.1、只输出error/warning标签的日志

adb logcat *:E

adb logcat *:W

2.2.2、只输出特定标签的日志

adb logcat -s XXX

2.2.3、只输出特定标签和优先级的日志

adb logcat XXX:I *:S //输出优先级为Info, 标签为XXX 的日志

adb logcat XXX:D *:S //输出优先级为Debug,标签为XXX的日志

2.3、Procrank 工具

Android自带的一款调试工具,运行在设备测得shell环境,用来输出进程的内存快照,便于观察进程的内存占用情况。

包括的内存信息:

  • VSS:Virtual Set Size 虚拟耗用内存大小(包含共享库占用的内存)
  • RSS:Resident Set Size 实际使用物理内存大小(包含共享库占用的内存)
  • PSS:Proportional Set Size 实际使用的物理内存大小(比例分配共享库占用的内存)
  • USS:Unique Set Size 进程独自占用的物理内存大小(不包含共享库占用的内存)
  • 注意:
  • USS 大小代表只属于本进程正在使用的内存大小,进程被杀死后会被完整回收;
  • VSS/RSS 包含了共享库使用的内存,对查看单一进程内存状态没有参考价值;
  • PSS 是按照比例将共享内存分割后,某单一进程对共享内存区的占用情况

2.3.1 常用的命令

命令格式:

procrank [-w] [-v | -r | -p | -u | -h]  表示以上的首字母

2.3.2、查看指定进程的内存占用状态

procrank | grep [pid | process name]

2.3.3、跟踪进程内存状态

通过adb 工具连接手机,执行.sh脚本,进而跟踪内存的占用状态,分析进程是否存在泄露场景

#!/bin/bash
while true;do
adb root && adb shell procrank |grep "com.android.systemui"
sleep 1
done

四、Kernel 层debug 方法

4.1 Dmesg 工具

dmesg是Linux系统中用于查看和管理内核环形缓冲区消息的核心工具,其功能覆盖系统启动诊断、硬件检测、驱动调试等多个关键领域。

dmesg通过访问/proc/kmsg接口获取内核环形缓冲区中的日志数据。该缓冲区默认存储容量为16392字节(可通过内核参数dmesg -s调整),以循环队列形式保存最新生成的内核级事件记录,包括:

  • 系统启动阶段的硬件初始化日志
  • 设备驱动程序加载状态
  • 内存管理异常报告
  • 文件系统挂载错误信息

 4.2 常用的命令

4.2.1、过滤特定的内核信息

adb shell "dmesg |grep xxx"

4.2.2、动态过滤特定的信息

adb shell "dmesg -w xxx"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值