查看 android 的使用内存 情况 和cpu 信息

一、利用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.

时间: 2024-11-05 18:49:43

查看 android 的使用内存 情况 和cpu 信息的相关文章

Linux下查看操作系统信息、内存情况及cpu信息:cpu个数、核心数、线程数

文章转载:http://blog.snsgou.com/post-793.html 1.查看物理CPU的个数 [[email protected] ~]# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l1 2.查看逻辑CPU的个数 [[email protected] ~]# cat /proc/cpuinfo |grep "processor"|wc -l4 3.查看CPU是几核(即,核心数) [[em

查看进程占用的内存情况

可以直接使用top命令后,查看%MEM的内容.可以选择按进程查看或者按用户查看,如想查看java用户的进程内存使用情况的话可以使用如下的命令: (1)top top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器 可以直接使用top命令后,查看%MEM的内容.可以选择按进程查看或者按用户查看,如想查看tomcat用户的进程内存使用情况的话可以使用如下的命令: $ top -u tomcat 内容解释: PID:进程的ID    US

查看程序占用tomcat内存情况

近期,公司线上tomcat常常无缘无辜宕机.总结了一下定位问题的方法,仅供參考: 报错信息: Maximum number of threads (200) created for connector with address null and port 9443 # There is insufficient memory for the Java Runtime Environment to continue. # Cannot create GC thread. Out of system

Linux Shell查看磁盘分区,内存使用,CPU使用率

#!/bin/bash #disk_used_rate Location=/dev/xvdb Disk_Used_Rate=$(df -h | grep $Location | awk '{print $5}') echo "Disk Used Rate : $Disk_Used_Rate" #memory_used_rate LoadMemory=$(cat /proc/meminfo | awk '{print $2}') Total=$(echo $LoadMemory | aw

怎么去查看android studio中自己设置的log信息

1.点击Edit Filter Congfiguration 2.在弹出中的小框框里中的filter name那一栏里写上你自己起的别名.如System.out(随便起),然后在Log Tag那一栏写上Log.i的key值,如输出语句为Log.i("msg","Hello world!");那你就应该在你的Log Tag那一栏里写上msg.其它可不填,Log Level默认的就好,你想要换成别的也行. 3.编辑完成后选中你起的别名就可以看到你的输出语句啦

【Android】开发优化之——查看内存情况,找到内存泄露

虽说知道一般性的开发android应用需要注意的问题,可是也有水平参差不齐的情况,特别是维护代码,如果内存占用大,内存溢出严重,又怎么解决呢?  --  通过DDMS把heap抓出来分析 1.打开DDMS 2.选中需要查看的程序,并且点击Update Heap图标 3.查看Heap情况 但是这仅仅是查看一下Heap的使用情况,那如果发现内存占用或者溢出很严重,动不动就OOM了.通过这个是看不出啥东西的,这个时候就需要把Heap抓出来分析,在UpdateHeap边上还有一个按钮. 点一下,会生成一

linux top命令查看内存及多核CPU的使用讲述

查看多核CPU命令 mpstat -P ALL  和  sar -P ALL 说明:sar -P ALL > aaa.txt   重定向输出内容到文件 aaa.txt top命令 经常用来监控linux的系统状况,比如cpu.内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解.本文通过一个运行中的WEB服务器的top监控截图,讲述top视图中的各种数据的含义,还包括视图中各进程(任务)的字段的排序. top进入视图 第一行: 

如何检查 Android 应用的内存使用情况

Android是为移动设备而设计的,所以应该关注应用的内存使用情况.尽管Android的Dalvik虚拟机会定期执行垃圾回收操作,但这也不意味着就可以忽视应用在何时何处进行内存分配和释放.为了提供良好的用户体验,做到系统在不同应用间流畅切换,当用户和应用无交互时,避免应用不必要的内存消耗是很重要的. 尽管在开发过程中很好的遵守了<管理应用内存>(Managing Your App Memory )中的原则(也是应该遵守的),仍然可能会有对象泄露或引入其他的内存bug.对此的安全性,可以采取的措

查看Android内存的8中方法

方法一: 通过手机上Running services的Activity查看,可以通过Setting->Applications->Running services进. 关于Running services的详细内容请参考<Android中使用"running services"查看service进程内存>http://hubingforever.blog.163.com/blog/static/17104057920114201075692/ 方法二: 使用Ac