use of com.ningcui.mylibrary.model.AbProcessInfo in project JustAndroid by chinaltz.
the class AbAppUtil method getRunningAppProcesses.
/**
* 获取运行的进程列表.
*
* @param context
* @return
*/
public static List<AbAppProcessInfo> getRunningAppProcesses(Context context) {
ActivityManager activityManager = null;
List<AbAppProcessInfo> list = null;
PackageManager packageManager = null;
try {
activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
packageManager = context.getApplicationContext().getPackageManager();
list = new ArrayList<AbAppProcessInfo>();
//所有运行的进程
List<RunningAppProcessInfo> appProcessList = activityManager.getRunningAppProcesses();
ApplicationInfo appInfo = null;
AbAppProcessInfo abAppProcessInfo = null;
PackageInfo packageInfo = getPackageInfo(context);
if (mProcessList != null) {
mProcessList.clear();
}
mProcessList = getProcessRunningInfo();
for (RunningAppProcessInfo appProcessInfo : appProcessList) {
abAppProcessInfo = new AbAppProcessInfo(appProcessInfo.processName, appProcessInfo.pid, appProcessInfo.uid);
appInfo = getApplicationInfo(context, appProcessInfo.processName);
if (appInfo != null) {
Drawable icon = appInfo.loadIcon(packageManager);
String appName = appInfo.loadLabel(packageManager).toString();
abAppProcessInfo.icon = icon;
abAppProcessInfo.appName = appName;
} else {
//:服务的命名
if (appProcessInfo.processName.indexOf(":") != -1) {
appInfo = getApplicationInfo(context, appProcessInfo.processName.split(":")[0]);
Drawable icon = appInfo.loadIcon(packageManager);
abAppProcessInfo.icon = icon;
}
abAppProcessInfo.appName = appProcessInfo.processName;
}
/*AbPsRow psRow = getPsRow(appProcessInfo.processName);
if(psRow!=null){
abAppProcessInfo.memory = psRow.mem;
}*/
AbProcessInfo processInfo = getMemInfo(appProcessInfo.processName);
abAppProcessInfo.memory = processInfo.memory;
abAppProcessInfo.cpu = processInfo.cpu;
abAppProcessInfo.status = processInfo.status;
abAppProcessInfo.threadsCount = processInfo.threadsCount;
list.add(abAppProcessInfo);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
use of com.ningcui.mylibrary.model.AbProcessInfo in project JustAndroid by chinaltz.
the class AbAppUtil method getMemInfo.
/**
* 根据进程ID获取CPU和内存信息.
*
* @param pid
* @return
*/
public static AbProcessInfo getMemInfo(int pid) {
AbProcessInfo process = new AbProcessInfo();
if (mProcessList == null) {
mProcessList = getProcessRunningInfo();
}
String tempPidString = "";
int tempPid = 0;
int count = mProcessList.size();
for (int i = 0; i < count; i++) {
String[] item = mProcessList.get(i);
tempPidString = item[0];
if (tempPidString == null) {
continue;
}
//AbLogUtil.d(AbAppUtil.class, "##"+item[9]+",PID:"+tempPid);
tempPid = Integer.parseInt(tempPidString);
if (tempPid == pid) {
//AbLogUtil.d(AbAppUtil.class, "##"+item[9]+","+process.memory);
//Process ID
process.pid = Integer.parseInt(item[0]);
//CPU
process.cpu = item[2];
//S
process.status = item[3];
//thread
process.threadsCount = item[4];
//Mem
long mem = 0;
if (item[6].indexOf("M") != -1) {
mem = Long.parseLong(item[6].replace("M", "")) * 1000 * 1024;
} else if (item[6].indexOf("K") != -1) {
mem = Long.parseLong(item[6].replace("K", "")) * 1000;
} else if (item[6].indexOf("G") != -1) {
mem = Long.parseLong(item[6].replace("G", "")) * 1000 * 1024 * 1024;
}
process.memory = mem;
//UID
process.uid = item[8];
//Process Name
process.processName = item[9];
break;
}
}
return process;
}
use of com.ningcui.mylibrary.model.AbProcessInfo in project JustAndroid by chinaltz.
the class AbAppUtil method getMemInfo.
/**
* 根据进程名获取CPU和内存信息.
*
* @param processName
* @return
*/
public static AbProcessInfo getMemInfo(String processName) {
AbProcessInfo process = new AbProcessInfo();
if (mProcessList == null) {
mProcessList = getProcessRunningInfo();
}
String processNameTemp = "";
for (Iterator<String[]> iterator = mProcessList.iterator(); iterator.hasNext(); ) {
String[] item = (String[]) iterator.next();
processNameTemp = item[9];
//AbLogUtil.d(AbAppUtil.class, "##"+item[9]+",NAME:"+processNameTemp);
if (processNameTemp != null && processNameTemp.equals(processName)) {
//AbLogUtil.d(AbAppUtil.class, "##"+item[9]+","+process.memory);
//Process ID
process.pid = Integer.parseInt(item[0]);
//CPU
process.cpu = item[2];
//S
process.status = item[3];
//thread
process.threadsCount = item[4];
//Mem
long mem = 0;
if (item[6].indexOf("M") != -1) {
mem = Long.parseLong(item[6].replace("M", "")) * 1000 * 1024;
} else if (item[6].indexOf("K") != -1) {
mem = Long.parseLong(item[6].replace("K", "")) * 1000;
} else if (item[6].indexOf("G") != -1) {
mem = Long.parseLong(item[6].replace("G", "")) * 1000 * 1024 * 1024;
}
process.memory = mem;
//UID
process.uid = item[8];
//Process Name
process.processName = item[9];
break;
}
}
if (process.memory == 0) {
AbLogUtil.d(AbAppUtil.class, "##" + processName + ",top -n 1未找到");
}
return process;
}
Aggregations