ActivityManager(二)--获取应用所占内存大小

	private void getRunningAppProcessInfo() {
		mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);

		//获得系统里正在运行的所有进程
		List<RunningAppProcessInfo> runningAppProcessesList = mActivityManager.getRunningAppProcesses();

		for (RunningAppProcessInfo runningAppProcessInfo : runningAppProcessesList) {
			// 进程ID号
			int pid = runningAppProcessInfo.pid;
			// 用户ID
			int uid = runningAppProcessInfo.uid;
			// 进程名
			String processName = runningAppProcessInfo.processName;
			// 占用的内存
			int[] pids = new int[] {pid};
			Debug.MemoryInfo[] memoryInfo = mActivityManager.getProcessMemoryInfo(pids);
			int memorySize = memoryInfo[0].dalvikPrivateDirty;

			System.out.println("processName="+processName+",pid="+pid+",uid="+uid+",memorySize="+memorySize+"kb");
		}
	}

时间: 2024-10-29 19:08:26

ActivityManager(二)--获取应用所占内存大小的相关文章

php获取变量所占内存大小的方法

$start_memory = memory_get_usage();$foo = "Some variable";echo memory_get_usage() - $start_memory; 这个可以获取所有变量类型的大小 strlen($foo) 这个可以获取当前字符串的字节大小 除以8就是位大小 原文地址:https://www.cnblogs.com/ysbl/p/12590376.html

Android获取应用所占内存大小

private void getRunningAppProcessInfo() { mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); //获得系统里正在运行的所有进程 List<RunningAppProcessInfo> runningAppProcessesList = mActivityManager.getRunningAppProcesses(); for (Running

C++类所占内存大小计算

C++类所占内存大小计算 转载时请注明出处和作者联系方式文章出处:http://blog.csdn.net/chenchong08作者联系方式:[email protected] 说明:笔者的操作系统是32位的. class A {}; sizeof( A ) = ?sizeof( A ) = 1明明是空类,为什么编译器说它是1呢?空类同样可以实例化,每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址.所

结构体所占内存大小

结构体所占内存大小划分原则: 1.划分字节,按照当前结构体中,字节数最大的类型作为划分单元.[这里面还有一些前提.下面的例子会详细说到] 2.以矩形块儿的形式划分. #include <stdio.h> /**划分示意图: 最小单元是 double所以 这个 地方按照8个字节作为最小单元来划分. */ struct student1 { double avgMark; int ID; }; /**划分示意图: 最小单元不能是数组这个地方的最小单元是 1个字节 */ struct student

C语言结构体所占内存大小

用一道面试题题引入struct str1    {         char   a;         int    b;         float  c;     double d;  };char类型占用1个字节,int型占用4个字节,short类型占用2个字节,float占4字节,double占8字节:那么我们可能会犯一个错误就是直接1+4+2=7,认为该结构体占用7个字节.这是错的.百度一了下发现这是因为计算机中存在一种叫做内存对齐的机制导致了该结果的发生. 在计算机中通常会让CPU从

如何获取一个Java对象所占内存大小

新建一个maven工程 我们先在IDEA中新建一个名为ObjectSizeFetcherAgent的maven工程,如下图: 在maven项目中的pom.xml中新增一个打jar包的插件,如下: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId&g

结构体,共用体,枚举所占内存大小

结构体要注意位补齐(有4位补齐和8位补齐,默认8位) 1 #include<stdio.h> 2 #pragma pack(push) 3 #pragma pack(4) 4 struct test 5 { 6 7 char a; //补3位 8 long c; 9 char d; 10 char h;//补2位 11 int b; 12 char e; //补3位或补7位 13 double f; 14 char g; //补3位或补7位 15 }s1; 16 #pragma pack(po

为变量或字符串对象赋空值null、长度为0的字符串、不赋值 占不占内存

代码: public class TestNullAndNothing { int a;//自动赋值为0:如果是对象,自动赋值为null public static void main(String[] args) { String s=""; System.out.println("长度为0的字符串:"+RamUsageEstimator.sizeOf(s));//打印所占内存大小 String ss=null; System.out.println("

如何获取 Android 设备的CPU核数、时钟频率以及内存大小

因项目需要,分析了一下 Facebook 的开源项目 - Device Year Class. Device Year Class 的主要功能是根据 CPU核数.时钟频率 以及 内存大小 对设备进行分级.代码很简单,只包含两个类: DeviceInfo -> 获取设备参数, YearClass -> 根据参数进行分级. 下表是 Facebook 公司提供的分级标准,其中 Year 栏表示分级结果. Year Cores Clock RAM 2008 1 528MHz 192MB 2009 n/