/** * Created by wofu on 2018/4/26. * Process management--system information */ public class SystemjinchengManagerfoUtils extends Object { /* * the number of running processes * */ public static int getRunningProgressCount(Context context){ //Package program manager, program manager PackageManager static //Process manager ActivityManger dynamic ActivityManager am= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningAppProcessInfo> infos =am.getRunningAppProcesses(); return infos.size(); } /* * Remaining memory information * * */ 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; } /* * Total memory information * * */ 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. * Specific process information, memory information */ public class TaskInfoJinchengMananger extends Object { /* * * */ public static List<TaskinfoManager> getTaskInfos(Context context) { ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); PackageManager pm = context.getPackageManager(); List<ActivityManager.RunningAppProcessInfo> progressInfos = new ArrayList<ActivityManager.RunningAppProcessInfo>(); List<TaskinfoManager> taskinfos=new ArrayList<>(); for (ActivityManager.RunningAppProcessInfo progressInfo : progressInfos) { TaskinfoManager taskInfo=new TaskinfoManager(); // package name of the application String packname = progressInfo.processName; Debug.MemoryInfo[] memoryinfos = am.getProcessMemoryInfo(new int[]{progressInfo.pid});//Memory information long memsize = memoryinfos[0].getTotalPrivateDirty() * 1000; taskInfo.setMemsize(memsize); try { // pm.getPackageInfo(packname,0).applicationInfo;//or use the following method 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) { // user process } else { //system process } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace (); } taskinfos.add(taskInfo); } return taskinfos; } }
/** * Created by wofu on 2018/4/27. * Business bean for process information */ public class TaskinfoManager extends Object { private Drawable icon; private String name; private String packname; private long memsize; private boolean userTask;//Is it a user process 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; } }
---KILL PROCESS-----
/* * One-click cleaning * */ @SuppressLint("MissingPermission") public void killAll(View view){ ActivityManager am= (ActivityManager) getSystemService(ACTIVITY_SERVICE); List<TaskinfoManager>infos =TaskInfoJinchengMananger.getTaskInfos(this); for(TaskinfoManager info:infos){ //If it is checked, kill the process---the checked one is not done, am.killBackgroundProcesses(info.getPackname()); } }