您的位置:首页 > 其它

获取系统运行的所有进程的信息

2014-12-16 08:47 459 查看
自己写的一些工具类

public class TaskInfoUtils {
/**
* 获取全部进程的信息
*
* @param pContext
* @return
*/
public static List<TaskInfo> getTaskInfos(Context pContext) {
// 1获取到ActivityManager和PackageManager
ActivityManager _ActivityManager = (ActivityManager) pContext
.getSystemService(pContext.ACTIVITY_SERVICE);
PackageManager _PackageManager = pContext.getPackageManager();
List<TaskInfo> _TaskInfos = new ArrayList<TaskInfo>();
// 2获取到所有在运行的进程
List<RunningAppProcessInfo> _RunningAppProcessInfos = _ActivityManager
.getRunningAppProcesses();
//3 遍历进程,获取他的信息
for (RunningAppProcessInfo runningAppProcessInfo : _RunningAppProcessInfos) {
TaskInfo _TaskInfo = new TaskInfo();
MemoryInfo[] memoryInfos = _ActivityManager
.getProcessMemoryInfo(new int[] { runningAppProcessInfo.pid });
long _MemSize = memoryInfos[0].getTotalPrivateDirty() * 1024;// 进程消耗的内存
String _packageName = runningAppProcessInfo.processName;// 进程的包
ApplicationInfo _ApplicationInfo;
try {
_ApplicationInfo = _PackageManager.getApplicationInfo(
_packageName, 0);
Drawable _Icon = _ApplicationInfo.loadIcon(_PackageManager);// 程序图标
String _Name = _ApplicationInfo.loadLabel(_PackageManager)
.toString();// 程序名

_TaskInfo.setIcon(_Icon);
_TaskInfo.setMemsize(_MemSize);
_TaskInfo.setName(_Name);
_TaskInfo.setPackname(_packageName);
if ((_ApplicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
// 用户进程
_TaskInfo.setUserTask(true);
} else {
// 系统进程
_TaskInfo.setUserTask(false);
}
_TaskInfos.add(_TaskInfo);
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
return _TaskInfos;
}
class TaskInfo {
private Drawable icon;
private String name;
private long memsize;
private boolean userTask;
private String packname;

public Drawable getIcon() {
return icon;
}

public void setIcon(Drawable icon) {
this.icon = icon;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public long getMemsize() {
return memsize;
}

public void setMemsize(long memsize) {
this.memsize = memsize;
}

public boolean isUserTask() {
return userTask;
}

public void setUserTask(boolean userTask) {
this.userTask = userTask;
}

public String getPackname() {
return packname;
}

public void setPackname(String packname) {
this.packname = packname;
}

@Override
public String toString() {
return "TaskInfo [ name=" + name + ", memsize="
+ memsize + ", userTask=" + userTask + ", packname=" + packname
+ "]";
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: