Android adb shell命令分析应用内存占用
不同方式:
1、打印某个具体应用的内存占用信息:
adb shell dumpsys meminfo 包名
2、以内存为标准,周期性打印排名top 10的应用,还有CPU等信息:
adb shell top -m 10 -s 1 -d 1 -o %CPU,%MEM,TIME+,PID,COMMAND,CMDLINE
3、只打印目标应用,根据包名。
adb shell top -n 1 | findstr "应用的包名"
输出的一行日志中,包含VSS和RSS内存。
● VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
● RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存)
例如:
29682 u0_a172 10 -10 22G 1.7G 1.1G R 403 24.4 1:49.45 应用的包名
1.7G是VSS,1.1G是RSS。
4、其中,adb shell top比较实用。
命令的相关参数:
-m max_procs 最多显示max_procs个进程
-n num 刷新num次数
-d num 刷新间隔时间num秒(默认5秒)
-s col 按col(cpu,vss,rss,thr)排序
-t Show threads instead of processes. 显示线程信息而不是进程
比如:
adb shell top -m 10 -s 6 -d 1
最多10个进程。每个1秒刷新一次。按照第6列(-s 6)排名,内存。
Uptime 表示启动到现在的时长,不包含休眠的时间,单位毫秒(ms)
Realtime 表示启动到现在的时长,包含休眠的时间,单位毫秒(ms)
Android卡顿丢帧低内存与adb shell内存状态_android kswapd0-CSDN博客文章浏览阅读751次,点赞5次,收藏5次。通常kswapd0占用大核,而且是满频在跑,耗电、温升,如果此时有前台应用主线程跑到与kswapd0相同的核上,很大可能会出现 cpu 竞争,导致调度不到而丢帧卡顿。系统中有些内存虽然已被使用但是可以回收的,比如cache/buffer,有一部分可以回收,所以MemFree不能代表全部可用的内存,这部分可回收的内存加上MemFree才是系统可用的内存,即:MemAvailable ≈ MemFree + Buffers + Cached,是一个估计值。表示系统尚未使用的内存。MemFree:空闲内存数。_android kswapd0https://blog.csdn.net/zhangphil/article/details/138819422adb shell top -m 10 -s 1 -d 1 -o %CPU,%MEM,TIME+,PID,COMMAND,CMDLINE_adb shell top -m 10 -s cpu-CSDN博客文章浏览阅读689次。文章介绍了如何使用ADBShell命令来获取Android设备的CPU信息、监控进程以及进行系统跟踪。具体包括`adbshelltop`命令的不同参数如-m,-s,-d和-o的用法,以及如何将结果保存到文件。此外,还提到了`dumpsysactivityactivities`用于dump当前活动,和如何捕获systemtrace文件。
https://zhangphil.blog.csdn.net/article/details/131412814Android adb shell命令捕获systemtrace_android 抓trace-CSDN博客文章浏览阅读3k次,点赞2次,收藏10次。本文介绍了如何使用adbshell命令配合perfetto工具来捕获Android设备的systemtrace文件,包括设置跟踪时长、保存文件路径、将文件从设备拉取到电脑以及通过PerfettoUI分析trace文件。这个过程对于性能优化和问题排查非常有用。
https://blog.csdn.net/zhangphil/article/details/131249820