本文共 2026 字,大约阅读时间需要 6 分钟。
public static ListgetTaskInfos(Context context) { //首先获取到进程管理器 ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); //获取到运行的进程 List runningAppProcesses = activityManager.getRunningAppProcesses(); //初始化进程的集合 List taskInfos = new ArrayList<>(); //迭代所有正在运行的进程 for (ActivityManager.RunningAppProcessInfo runningAppProcess : runningAppProcesses) { TaskInfo taskInfo = new TaskInfo(); //获取到进程的名字 String processName = runningAppProcess.processName; taskInfo.setAppPackageName(processName); //获取到进程的内存的基本信息 Debug.MemoryInfo[] processMemoryInfo = activityManager.getProcessMemoryInfo(new int[]{runningAppProcess.pid}); int totalPrivateDirty = processMemoryInfo[0].getTotalPrivateDirty() * 1024; taskInfo.setMemorySize(totalPrivateDirty); } return taskInfos; }
通过读取系统文件的方式,获得运行内存大小
//获取总内存的大小 private long getTotalMemory() {// MemTotal: 341780 kB try { FileInputStream fis = new FileInputStream(new File("/proc/meminfo")); //包装一个一行行读取的流 BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fis)); //取到所有的内存信息 String memTotal = bufferedReader.readLine(); StringBuffer sb = new StringBuffer(); for (char c : memTotal.toCharArray()) { if (c >= '0' && c <= '9') { sb.append(c); } } //为了方便格式化 所以乘以1024 long totalMemory = Long.parseLong(sb.toString()) * 1024; return totalMemory; } catch (Exception e) { e.printStackTrace(); return 0; } }杀死进程(重要系统进程杀不掉)
//获取到进程管理者 ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); //杀死后台进程 activityManager.killBackgroundProcesses(应用程序包名);
转载地址:http://pbxui.baihongyu.com/