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 系统文件分析 ( Android 系统 root 环境准备 | 查看 Android 根目录信息 )

Android 逆向Android 系统文件分析 ( Android 系统 root 环境准备 | 查看 Android 根目录信息 )

Android 进阶——Framework 核心之dumpsys命令浅析

Android 进阶——Framework 核心之dumpsys命令浅析