
文章目录
-
- [1. 系统信息与状态查询](#1. 系统信息与状态查询)
- [2. 应用分析与调试](#2. 应用分析与调试)
- [3. 性能分析命令](#3. 性能分析命令)
- [4. 日志分析命令](#4. 日志分析命令)
-
- [logcat 基础用法](#logcat 基础用法)
- 高级日志过滤
- [5. 网络分析命令](#5. 网络分析命令)
- [6. 显示与输入系统](#6. 显示与输入系统)
- [7. 电源与硬件分析](#7. 电源与硬件分析)
- [8. 存储与分析](#8. 存储与分析)
- [9. 高级调试技巧](#9. 高级调试技巧)
- [10. 自动化与脚本编写](#10. 自动化与脚本编写)
- 实用技巧与最佳实践
Android 系统提供了大量强大的分析调试命令,涵盖了从应用层到内核层的各个层面。下面我将这些命令分门别类地进行详细介绍,并附上实用示例。
1. 系统信息与状态查询
设备基础信息
bash
# 获取设备型号
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
系统状态监控
bash
# 查看磁盘空间
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. 应用分析与调试
包管理命令
bash
# 列出所有已安装应用
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
活动管理器命令
bash
# 启动 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. 性能分析命令
内存分析
bash
# 查看系统内存使用情况
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 分析
bash
# 实时监控进程 CPU 使用率
adb shell top
# 监控特定进程
adb shell top -p <pid>
# 查看 CPU 使用详情
adb shell dumpsys cpuinfo
# 查看各进程 CPU 时间
adb shell cat /proc/stat
性能分析器
bash
# 启动系统跟踪(生成 .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 基础用法
bash
# 查看所有日志
adb logcat
# 按标签过滤
adb logcat -s TAG_NAME
# 按优先级过滤
adb logcat *:E # 只显示错误日志
# 带时间戳
adb logcat -v time
# 清空日志缓冲区
adb logcat -c
高级日志过滤
bash
# 多条件过滤
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. 网络分析命令
网络状态检查
bash
# 查看网络连接
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
网络调试
bash
# 测试网络连通性
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. 显示与输入系统
显示系统分析
bash
# 查看显示信息
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
输入系统调试
bash
# 模拟点击
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. 电源与硬件分析
电源管理
bash
# 查看电源统计
adb shell dumpsys batterystats
# 重置电池统计
adb shell dumpsys batterystats --reset
# 查看唤醒锁
adb shell dumpsys power
# 查看休眠状态
adb shell dumpsys deviceidle
传感器分析
bash
# 查看传感器列表
adb shell dumpsys sensorservice
# 查看传感器数据
adb shell dumpsys sensorservice | grep -A 10 "Active sensors"
# 查看硬件服务
adb shell dumpsys hardware_properties
8. 存储与分析
存储分析
bash
# 查看存储空间详情
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. 高级调试技巧
进程与线程分析
bash
# 查看运行中的进程
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>
系统服务状态
bash
# 列出所有系统服务
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. 自动化与脚本编写
常用调试脚本示例
bash
#!/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
性能监控脚本
bash
#!/bin/bash
# 性能监控脚本
while true; do
clear
echo "=== Performance Monitor ==="
echo "Time: $(date)"
echo "CPU:"
adb shell top -n 1 -b | head -10
echo ""
echo "Memory:"
adb shell dumpsys meminfo | grep -E "(Free|Used)" | head -5
sleep 2
done
实用技巧与最佳实践
-
组合使用命令:
bash# 查找应用进程并监控其内存 PID=$(adb shell pidof -s com.example.app) adb shell dumpsys meminfo $PID -
输出重定向分析:
bash# 保存日志到文件分析 adb logcat -v time > logfile.txt # 使用 grep 过滤关键信息 adb logcat | grep -i "error\|exception\|fatal" -
定时监控:
bash# 每5秒监控一次内存 watch -n 5 "adb shell dumpsys meminfo | head -20"
这些命令覆盖了 Android 系统调试的各个方面,从基础信息获取到深度性能分析。掌握这些命令能够极大地提高 Android 开发和问题排查的效率。根据具体的使用场景,可以灵活组合这些命令来满足不同的调试需求。
结束语
Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!