进程信息获取

package com.home.engine;


import java.util.ArrayList;


import java.util.List;


import android.app.ActivityManager;
import android.app.ActivityManager.RunningAppProcessInfo;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.drawable.Drawable;


import com.example.mobilesafe.R;
import com.home.bean.ProcessInfo;


/**
 * 进程信息的业务类
 * 
 * @author HQ
 * 
 */
public class ProcessInfoProvider {


public static List<ProcessInfo> getRunningProcessInfos(Context context) {
ActivityManager am = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
PackageManager pm = context.getPackageManager();
List<RunningAppProcessInfo> infos = am.getRunningAppProcesses();
List<ProcessInfo> list = new ArrayList<ProcessInfo>();
for (RunningAppProcessInfo info : infos) {
ProcessInfo processInfo = new ProcessInfo();
String packName = info.processName;
processInfo.setPackName(packName);
long memSize = am.getProcessMemoryInfo(new int[] { info.pid })[0]
.getTotalPrivateDirty() * 1024;
processInfo.setMemSize(memSize);
try {
PackageInfo packInfo = pm.getPackageInfo(packName, 0);
Drawable appIcon = packInfo.applicationInfo.loadIcon(pm);
processInfo.setAppIcon(appIcon);
String appName = packInfo.applicationInfo.loadLabel(pm)
.toString();
processInfo.setAppName(appName);
if ((packInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {// 系统进程
processInfo.setUserProcess(false);
} else {// 用户进程
processInfo.setUserProcess(true);
}
} catch (NameNotFoundException e) {
e.printStackTrace();
processInfo.setAppName(packName);
processInfo.setAppIcon(context.getResources().getDrawable(R.drawable.ic_launcher));
}
list.add(processInfo);
}
return list;
}

}


业务bean


package com.home.bean;


import android.graphics.drawable.Drawable;


/**
 * 进程信息的数据实体
 * 
 * @author HQ
 * 
 */
public class ProcessInfo {
/**
* 进程图标,应用程序图标
*/
private Drawable appIcon;
/**
* 应用程序的包名
*/
private String appName;
/**
* 内存占用的大小
*/
private String packName;
/**
* 内存占用的大小
*/
private long memSize;
/**
* 是否是用户进程
*/
private boolean userProcess;


public Drawable getAppIcon() {
return appIcon;
}


public void setAppIcon(Drawable appIcon) {
this.appIcon = appIcon;
}


public String getAppName() {
return appName;
}


public void setAppName(String appName) {
this.appName = appName;
}


public String getPackName() {
return packName;
}


public void setPackName(String packName) {
this.packName = packName;
}


public long getMemSize() {
return memSize;
}


public void setMemSize(long memSize) {
this.memSize = memSize;
}


public boolean isUserProcess() {
return userProcess;
}


public void setUserProcess(boolean userProcess) {
this.userProcess = userProcess;
}


@Override
public String toString() {
return "ProcessInfo [appName=" + appName + ", packName=" + packName
+ ", memSize=" + memSize + ", userProcess=" + userProcess + "]";
}


}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值