/**
* Created by wofu on 2018/4/26.
* 进程管理--系统信息
*/
public class SystemjinchengManagerfoUtils extends Object {
/*
* 正在运行的进程数量
* */
public static int getRunningProgressCount(Context context){
//包程序管理器,程序管理器PackageManager 静态的
//进程管理器ActivityManger 动态的
ActivityManager am= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List infos =am.getRunningAppProcesses();
return infos.size();
}
/*
* 剩余内存信息
*
* */
public static long getAvailableMemory(Context context){
ActivityManager am= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
ActivityManager.MemoryInfo meminfo=new ActivityManager.MemoryInfo();
am.getMemoryInfo(meminfo);
return meminfo.availMem;
}
/*
* 总内存信息
*
* */
public static long totalMemory(Context context){
ActivityManager am= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
ActivityManager.MemoryInfo meminfo=new ActivityManager.MemoryInfo();
am.getMemoryInfo(meminfo);
return meminfo.totalMem;
}
}
/**
* Created by wofu on 2018/4/27.
* 具体进程信息,内存信息
*/
public class TaskInfoJinchengMananger extends Object {
/*
*
* */
public static List getTaskInfos(Context context) {
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
PackageManager pm = context.getPackageManager();
List progressInfos = new ArrayList();
List taskinfos=new ArrayList<>();
for (ActivityManager.RunningAppProcessInfo progressInfo : progressInfos) {
TaskinfoManager taskInfo=new TaskinfoManager();
//应用程序的包名
String packname = progressInfo.processName;
Debug.MemoryInfo[] memoryinfos = am.getProcessMemoryInfo(new int[]{progressInfo.pid});//内存信息
long memsize = memoryinfos[0].getTotalPrivateDirty() * 1000;
taskInfo.setMemsize(memsize);
try {
// pm.getPackageInfo(packname,0).applicationInfo;//或者用下面的方法
ApplicationInfo applicationinfo = pm.getApplicationInfo(packname, 0);
Drawable icon = applicationinfo.loadIcon(pm);
taskInfo.setIcon(icon);
String name = applicationinfo.loadLabel(pm).toString();
if ((applicationinfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0) {
//用户进程
} else {
//系统进程
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
taskinfos.add(taskInfo);
}
return taskinfos;
}
}
/**
* Created by wofu on 2018/4/27.
* 进程信息的业务bean
*/
public class TaskinfoManager extends Object {
private Drawable icon;
private String name;
private String packname;
private long memsize;
private boolean userTask;//是不是用户进程
public Drawable getIcon() {
return icon;
}
public String getName() {
return name;
}
public String getPackname() {
return packname;
}
public long getMemsize() {
return memsize;
}
public boolean isUserTask() {
return userTask;
}
public void setIcon(Drawable icon) {
this.icon = icon;
}
public void setName(String name) {
this.name = name;
}
public void setPackname(String packname) {
this.packname = packname;
}
public void setMemsize(long memsize) {
this.memsize = memsize;
}
public void setUserTask(boolean userTask) {
this.userTask = userTask;
}
}
---杀死进程-----java
/*
* 一键清理
* */
@SuppressLint("MissingPermission")
public void killAll(View view){
ActivityManager am= (ActivityManager) getSystemService(ACTIVITY_SERVICE);
Listinfos =TaskInfoJinchengMananger.getTaskInfos(this);
for(TaskinfoManager info:infos){
//若是被勾选,就杀死进程---勾选的这个没有作,
am.killBackgroundProcesses(info.getPackname());
}
}