A. android 怎样获取当前apk所占用的内存
这个方法有很多,常用的是 adb shell mpsys meminfo <package_name> 这可以看到比较全面的信息,由于Android是有内存共享的,所以通常有 VSS,RSS,PSS,USS等不同的内存表述,比较常用的是PSS,会将共享库按照比例分配给当前内存
B. android 高通cpu怎么用adb查看mem
.一、利用Android API函数查看
1.1 ActivityManager查看可用内存。
ActivityManager.MemoryInfo outInfo = new ActivityManager.MemoryInfo();
am.getMemoryInfo(outInfo);
outInfo.availMem即为可用空闲凯亩睁内存。
1.2、android.os.Debug查询PSS,VSS,USS等单个进程使用内存信息
MemoryInfo[] memoryInfoArray = am.getProcessMemoryInfo(pids);
MemoryInfo pidMemoryInfo=memoryInfoArray[0];
pidMemoryInfo.getTotalPrivateDirty();
getTotalPrivateDirty()
Return total private dirty memory usage in kB. USS
getTotalPss()
Return total PSS memory usage in kB.
PSS
getTotalSharedDirty()
Return total shared dirty memory usage in kB. RSS
二、直接对Android文件进行解析查询,
/proc/cpuinfo系统CPU的类型等多种信息。
/proc/meminfo 系统内存使用信息
如
/proc/meminfo
MemTotal: 16344972 kB
MemFree: 13634064 kB
Buffers: 3656 kB
Cached: 1195708 kB
我们查看机器内存时,会发现MemFree的值很小。这主要是因为,在linux中有这么一种思想,内存不用白不用,因此它尽可能的cache和buffer一些数据,以方便下次使用。但实际上这些内存也是可以立刻拿来使用的。
所以 空闲内存=free+buffers+cached=total-used
通过读取文件/proc/meminfo的信息获取Memory的总量。
ActivityManager. getMemoryInfo(ActivityManager.MemoryInfo)获取当前的可用Memory量。
三、通过Android系统提供的Runtime类,执行adb 命令(top,procrank,ps...等命令)查询
通过对执行结果的标准控制台输出进行解析。这样大大的扩展了Android查询功能.例如:
final Process m_process = Runtime.getRuntime().exec("/system/bin/top -n 1");
final StringBuilder sbread = new StringBuilder();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(m_process.getInputStream()), 8192);
# procrank
Runtime.getRuntime().exec("/system/xbin/procrank");
内存耗用:VSS/RSS/PSS/USS
Terms
• VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的耐孝内存)
• RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
• PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
• USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
一般来说内存占用大小有盯岁如下规律:VSS >= RSS >= PSS >= USS
USS is the total private memory for a process, i.e. that memory that is completely unique to that process.USS is an extremely useful number because it indicates the true incremental cost of running a particular process. When a process is killed, the USS is the total memory that is actually returned to the system. USS is the best number to watch when initially suspicious of memory leaks in a process.
转载
C. android系统中查看内存信息
看下大致内存使用情况 (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’等
mpsys 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 是针对某个进程开始有可疑内存泄露的情况,进行检测的最佳数字。怀疑某个程序有内存泄露可以查看这个值是否一直有增加
使用mpsys 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 mpstate > tsq/mpstate.txt
adb shell bugreport > tsq/bugreport.txt
@echo "finish."
pause
D. 安卓怎么看内存占用
工具/材料:
腾讯手机管家
有很多小伙伴在使用手机的时候,偶尔会出现手机卡顿,或者是手机自动显示内存不足的情况,很多小伙伴就觉得非常奇怪,自己的内存明明是足够的,为什么说内存不足呢?怎么样才能准确的查看自己的内存呢?想必很多小伙伴都比较迫切的想要知道,今天写这篇经验就是和大家分享一些办法,希望对大家有所帮助
【查看物理内存】
1,查看手机的物理内存,就是查看手机的自带内存和SD卡的存储,我们首先打开手机的设置功能,然后在里面可以看到【存储】选项
2,打开存储选项后,在里面就会看到你手机自带内存、内置内存、SD卡或者TF卡的内存容量了,然后互相进行调整,安装软件
【运行内存查看】
1,查看运行内存的方法很简单的,我们同样是打开手机的设置功能,然后在里面找到【应用】这个选项,因为运行内存就是看你运行程序所占的内存,和电脑的内存条一样
2,打开应用功能后,最下面可以看到一个进度条,这个就代表了你目前运行内存的使用情况,如果占用过多,就关闭一些程序吧
【优化手机内存】
1,其实想要优化手机的内存很简单,我们可以使用腾讯手机管家——手机加速功能,对手机的运行内存进行整理和清除
2,如果是物理内存的话,我们可以使用腾讯手机管家的【空间管理】和【垃圾清理】这两个功能进行管理和释放。
【注意事项】
1,垃圾缓存是会不断产生的所以需要定期清理才行
2,垃圾缓存清理的时候,看好清理的每一项,避免误删重要文件?
内存
编辑于2019-02-28,内容仅供参考并受版权保护
赞踩分享
阅读全文