一、先来说获得进程数。
1.正在运行的进程数
我们可以利用ActivityManager这个类getRunningAppProcesses().size,那么ActivityManager又是怎么来的呢?
我们可以利用上下文提供的系统服务获得,即
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
2.得到内存 总内存= 可用内存+每个进程占有的内存
可用内存很简单的得到,利用MemoryInfo这个类的对象做参数即返回,得到他的对象availMem就能得到可用内存
下面就是每个进程占有的内存,先将每个进程信息封装(进程id : pid)。
先得到包管理器
PackageManager pm = context.getPackageManager();
包名==进程名
List<RunningAppProcessInfo> RunningInfos = am.getRunningAppProcesses();
通过不断的遍历RunningInfos 将数据设置的TaskInfo中
通过包管理器利用包名的得到
ApplicationInfo appinfo = pm.getApplicationInfo(packageName, 0); Drawable icon = appinfo.loadIcon(pm); String name = (String) appinfo.loadLabel(pm); taskinfo.setIcon(icon); taskinfo.setTask_name(name); int pid = RunningInfo.pid; taskinfo.setPid(pid); //通过进程id 得到进程的内存信息 MemoryInfo[] outInfo = am.getProcessMemoryInfo(new int[]{pid}); long task_memory = outInfo[0].getTotalPrivateDirty(); taskinfo.setTask_memory(task_memory);