Android 系统超级实用的分析调试命令

文章目录
- 1. 系统信息与状态查询
- 设备基础信息
- 系统状态监控
- 2. 应用分析与调试
- 包管理命令
- 活动管理器命令
- 3. 性能分析命令
- 内存分析
- CPU 分析
- 性能分析器
- 4. 日志分析命令
- logcat 基础用法
- 高级日志过滤
- 5. 网络分析命令
- 网络状态检查
- 网络调试
- 6. 显示与输入系统
- 显示系统分析
- 输入系统调试
- 7. 电源与硬件分析
- 电源管理
- 传感器分析
- 8. 存储与分析
- 存储分析
- 9. 高级调试技巧
- 进程与线程分析
- 系统服务状态
- 10. 自动化与脚本编写
- 常用调试脚本示例
- 性能监控脚本
- 实用技巧与最佳实践
Android 系统提供了大量强大的分析调试命令,涵盖了从应用层到内核层的各个层面。下面我将这些命令分门别类地进行详细介绍,并附上实用示例。
1. 系统信息与状态查询
设备基础信息
# 获取设备型号
adb shell getprop ro.product.model# 获取 Android 版本
adb shell getprop ro.build.version.release# 获取安全补丁级别
adb shell getprop ro.build.version.security_patch# 获取所有系统属性
adb shell getprop# 获取 CPU 信息
adb shell cat /proc/cpuinfo# 获取内存信息
adb shell cat /proc/meminfo
系统状态监控
# 查看磁盘空间
adb shell df -h# 查看电池状态
adb shell dumpsys battery# 设置电池状态(测试用)
adb shell dumpsys battery set level 50
adb shell dumpsys battery set status 2# 查看温度传感器
adb shell dumpsys thermalservice
2. 应用分析与调试
包管理命令
# 列出所有已安装应用
adb shell pm list packages# 列出第三方应用
adb shell pm list packages -3# 查找特定应用
adb shell pm list packages | grep "google"# 查看应用安装路径
adb shell pm path com.android.chrome# 清除应用数据
adb shell pm clear com.example.app# 禁用系统应用(需要 root)
adb shell pm disable-user com.example.bloatware
活动管理器命令
# 启动 Activity
adb shell am start -n com.android.settings/.Settings# 启动 Activity 并传递数据
adb shell am start -a android.intent.action.VIEW -d "https://www.example.com"# 强制停止应用
adb shell am force-stop com.example.app# 发送广播
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED# 测试应用启动时间
adb shell am start -W -n com.android.chrome/com.google.android.apps.chrome.Main
3. 性能分析命令
内存分析
# 查看系统内存使用情况
adb shell cat /proc/meminfo# 查看应用内存详情
adb shell dumpsys meminfo# 查看特定应用内存
adb shell dumpsys meminfo com.android.chrome# 内存压力测试
adb shell am memory-pressure# 查看进程内存映射
adb shell cat /proc/<pid>/maps
CPU 分析
# 实时监控进程 CPU 使用率
adb shell top# 监控特定进程
adb shell top -p <pid># 查看 CPU 使用详情
adb shell dumpsys cpuinfo# 查看各进程 CPU 时间
adb shell cat /proc/stat
性能分析器
# 启动系统跟踪(生成 .trace 文件)
adb shell am profile start <process> /sdcard/trace.trace# 停止系统跟踪
adb shell am profile stop <process># GPU 渲染分析
adb shell dumpsys gfxinfo <package-name># 重置 GPU 渲染统计
adb shell dumpsys gfxinfo <package-name> reset
4. 日志分析命令
logcat 基础用法
# 查看所有日志
adb logcat# 按标签过滤
adb logcat -s TAG_NAME# 按优先级过滤
adb logcat *:E # 只显示错误日志# 带时间戳
adb logcat -v time# 清空日志缓冲区
adb logcat -c
高级日志过滤
# 多条件过滤
adb logcat -s "TAG1:TAG2" *:E# 按进程ID过滤
adb logcat --pid=<pid># 按应用包名过滤
adb logcat --pid=$(adb shell pidof -s com.example.app)# 查看内核日志
adb shell dmesg# 查看系统启动日志
adb shell logcat -b all -d | grep -i "boot"
5. 网络分析命令
网络状态检查
# 查看网络连接
adb shell netstat -tunlp# 查看网络接口
adb shell ip addr show# 查看路由表
adb shell ip route# 网络统计信息
adb shell cat /proc/net/netstat# 查看 TCP 连接状态
adb shell cat /proc/net/tcp
网络调试
# 测试网络连通性
adb shell ping -c 4 8.8.8.8# 清除 DNS 缓存
adb shell ndc resolver flushdefaultif# 查看网络策略
adb shell dumpsys netpolicy# 查看 Wi-Fi 状态
adb shell dumpsys wifi# 查看网络强度
adb shell dumpsys telephony.registry | grep -i signal
6. 显示与输入系统
显示系统分析
# 查看显示信息
adb shell dumpsys display# 查看 SurfaceFlinger 状态
adb shell dumpsys SurfaceFlinger# 截图
adb shell screencap -p /sdcard/screenshot.png# 屏幕录制(Android 4.4+)
adb shell screenrecord /sdcard/demo.mp4# 获取屏幕分辨率
adb shell wm size# 获取显示密度
adb shell wm density
输入系统调试
# 模拟点击
adb shell input tap 500 500# 模拟滑动
adb shell input swipe 300 1000 300 500# 模拟按键
adb shell input keyevent KEYCODE_HOME# 输入文本
adb shell input text "Hello%sworld" # %s 表示空格# 查看输入设备
adb shell getevent -l
7. 电源与硬件分析
电源管理
# 查看电源统计
adb shell dumpsys batterystats# 重置电池统计
adb shell dumpsys batterystats --reset# 查看唤醒锁
adb shell dumpsys power# 查看休眠状态
adb shell dumpsys deviceidle
传感器分析
# 查看传感器列表
adb shell dumpsys sensorservice# 查看传感器数据
adb shell dumpsys sensorservice | grep -A 10 "Active sensors"# 查看硬件服务
adb shell dumpsys hardware_properties
8. 存储与分析
存储分析
# 查看存储空间详情
adb shell dumpsys diskstats# 查看挂载点信息
adb shell cat /proc/mounts# 查看应用存储使用
adb shell dumpsys package <package-name> | grep -A 10 "storage"# 查看媒体存储
adb shell dumpsys media.camera
9. 高级调试技巧
进程与线程分析
# 查看运行中的进程
adb shell ps -A# 查看特定应用的进程
adb shell ps -A | grep "chrome"# 查看线程信息
adb shell ps -T -p <pid># 查看进程优先级
adb shell cat /proc/<pid>/stat# 杀死进程
adb shell kill <pid>
系统服务状态
# 列出所有系统服务
adb shell service list# 查看特定服务状态
adb shell dumpsys activity
adb shell dumpsys window
adb shell dumpsys notification
adb shell dumpsys alarm
adb shell dumpsys location
10. 自动化与脚本编写
常用调试脚本示例
#!/bin/bash
# 自动化调试脚本示例# 获取设备信息
echo "=== Device Info ==="
adb shell getprop ro.product.model
adb shell getprop ro.build.version.release# 检查关键进程
echo "=== Process Check ==="
adb shell ps -A | grep -E "(systemui|launcher)"# 检查内存状态
echo "=== Memory Status ==="
adb shell dumpsys meminfo | head -20# 检查网络连接
echo "=== Network Status ==="
adb shell netstat -tunlp | grep ESTABLISHED# 监控应用启动
echo "=== App Launch Time ==="
adb shell am start -W -n com.android.settings/.Settings
性能监控脚本
#!/bin/bash
# 性能监控脚本while true; doclearecho "=== Performance Monitor ==="echo "Time: $(date)"echo "CPU:"adb shell top -n 1 -b | head -10echo ""echo "Memory:"adb shell dumpsys meminfo | grep -E "(Free|Used)" | head -5sleep 2
done
实用技巧与最佳实践
-
组合使用命令:
# 查找应用进程并监控其内存 PID=$(adb shell pidof -s com.example.app) adb shell dumpsys meminfo $PID -
输出重定向分析:
# 保存日志到文件分析 adb logcat -v time > logfile.txt# 使用 grep 过滤关键信息 adb logcat | grep -i "error\|exception\|fatal" -
定时监控:
# 每5秒监控一次内存 watch -n 5 "adb shell dumpsys meminfo | head -20"
这些命令覆盖了 Android 系统调试的各个方面,从基础信息获取到深度性能分析。掌握这些命令能够极大地提高 Android 开发和问题排查的效率。根据具体的使用场景,可以灵活组合这些命令来满足不同的调试需求。
结束语
Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!
