android系统中查看内存信息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android系统中查看内存信息相关的知识,希望对你有一定的参考价值。
参考技术A 看下大致内存使用情况 (free+buffers+cached)proc/meminfo 机器的内存使用信息
/proc/pid/maps pid为进程号,显示当前进程所占用的虚拟地址。
/proc/pid/statm 进程所占用的内存
df 查看 存储空间使用情况
ps -t |grep system_server (或 surfaceflinger, service manager, media server,zygote) ( 倒数第二个是不是 s) 异常情况有如’D’, ‘T’, ‘Z’ , ‘R’等
dumpsys meminfo com.android.mms 打印一个app的mem信息
从以上打印可以看出,一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS
VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)是单个进程全部可访问的地址空间
RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)是单个进程实际占用的内存大小,对于单个共享库, 尽管无论多少个进程使用,实际该共享库只会被装入内存一次。
PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
USS 是针对某个进程开始有可疑内存泄露的情况,进行检测的最佳数字。怀疑某个程序有内存泄露可以查看这个值是否一直有增加
使用dumpsys meminfo查看内存信息
脚本:
adb shell ps -t> tsq/ps.txt
adb shell top -t -m 5 -n 2 > tsq/top.txt
adb shell service list > tsq/serviceList.txt
adb shell cat /proc/meminfo >tsq/meminfo
adb shell cat /proc/buddyinfo >tsq/buddyinfo
adb shell procrank > tsq/procrank.txt
adb shell cat proc/sched_debug >tsq/sched_debug.txt
adb shell cat proc/interrupts >tsq/interrupts.txt
adb shell dumpstate > tsq/dumpstate.txt
adb shell bugreport > tsq/bugreport.txt
@echo "finish."
pause
Linux系统中查看内存/CPU/进程/端口/硬盘信息
1. 系统分析
top 用于实时显示进程的动态。
1. 命令的第一行:系统负载信息,与 uptime 命令的结果一致。
top - 15:31:47 up 9:30, 3 users, load average: 0.00, 0.02, 0.05
系统当前时间 :15:31:47;
系统已运行时间 :9:30;
当前系统登录用户数量:3 users;
当前系统在一分钟、五分钟、十五分钟的负载情况:load average: 0.00, 0.02, 0.05;
2. 命令的第二行:进程状态信息。
Tasks: 133 total, 1 running, 132 sleeping, 0 stopped, 0 zombie
当前进程总数:Tasks: 133 total;
当前运行进程数量:1 running;
当前休眠进程数量:132 sleeping;
当前停止进程数量:0 stopped;
当前僵尸进程数量:0 zombie;
3. 命令的第三行:CPU状态。
%Cpu(s): 0.2 us, 0.4 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
用户空间占用CPU的百分比:%Cpu(s): 0.2 us;
内核空间占用CPU的百分比:0.4 sy;
改变过优先级的进程占用CPU的百分比:0.0 ni;
空闲CPU百分比:99.3 id;
IO等待占用CPU的百分比:0.0 wa;
硬中断占用CPU的百分比:0.0 hi;
软中断占用CPU的百分比:0.1 si;
虚拟机监控器占用的时间:0.0 st;
4. 命令的第四行:内存状态。
KiB Mem : 2897496 total, 1995628 free, 191852 used, 710016 buff/cache
总内存:KiB Mem : 2897496 total;
空闲内存:1995628 free;
已使用内存:191852 used;
缓冲区内存:710016 buff/cache;
5. 命令的第五行:交换分区信息。
KiB Swap: 1572860 total, 1572860 free, 0 used,2442804 avail Mem
缓冲区总大小:KiB Swap: 1572860 total;
空头缓冲区大小:1572860 free;
已使用缓冲区大小:0 used;
缓冲的交换区总大小:2442804 avail Mem;
6. 命令的第七行:所有进程的状态。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
PID:进程ID;
USER:进程所有者;
PR:进程优先级;
NI:精确值。负值表示高优先级,正值表示低优先级;
VIRT:进程使用的虚拟内存总量,单位 KB,VIRT=SWAP+RES;
RES:进程使用的且未被换出的物理内存大小,单位KB,RES=CODE+DATA;
SHR:共享内存大小,单位KB;
S:进程状态。D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程;
%CPU:上次更新到现在的CPU时间占用百分比;
%MEM:进程使用的物理内存百分比;
TIME+:进程使用的CPU时间总计,单位 1/100 秒;
COMMAND:进程名称(命令名/命令行)
2. 查看账户信息
who 显示当前正在系统中的所有用户名字,使用终端设备号,注册时间。
whoami 显示出当前终端上登录的用户。
last 显示近期用户或终端的登录情况。
3. 查看进程及关闭进程
1. 查看进程
pstree 显示主进程。
pstree -ap 显示主进程及其子进程,并显示进程号。
pstree | grep httpd 显示httpd这个主进程。
pstree -ap | grep httpd 显示httpd这个主进程及其子进程,并显示进程号。
2. 关闭进程
pkill httpd 结束httpd这个进程。
kill 2245 按进程号结束某个进程。
kill -9 1234 按进程号强制结束某个进程。
4. 查看端口信息
netstat -tunpl | grep httpd 显示httpd的端口信息。
-t 显示 TCP 传输协议的连线状况。
-u 显示 UDP 传输协议的连线状况。
-n 直接使用 IP 地址,而不通过域名服务器。
-p 显示正在使用 Socket 的程序识别码和程序名称。
-l 显示监控中的服务器的 Socket。
5. 查看硬盘信息
df 列出文件系统的整体磁盘空间使用情况。
df -h 对空间大小进行单位换算后显示磁盘的空间使用情况。
df /home 查看该home文件夹所在磁盘的使用情况。
以上是关于android系统中查看内存信息的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向Android 权限 ( 查看内存信息 | 查看 CPU 信息 | 查看电池信息 | 查看账户信息 | 查看 Activity 信息 | 查看 Package 信息 )
Android 逆向Android 系统文件分析 ( Android 系统 root 环境准备 | 查看 Android 根目录信息 )
Android 逆向Android 系统文件分析 ( Android 系统 root 环境准备 | 查看 Android 根目录信息 )