系统信息的工具类(内存状态、运行的程序数)
package com.flyou.utils; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.util.List; import android.app.ActivityManager; import android.app.ActivityManager.MemoryInfo; import android.app.ActivityManager.RunningAppProcessInfo; import android.content.Context; /** * 系统信息的工具类 * */ public class SystemInfoUtils { /** * 获取正在运行的进程的数量 * @param context 上下文 * @return */ public static int getRunningProcessCount(Context context){ //PackageManager //包管理器 相当于程序管理器。静态的内容。 //ActivityManager 进程管理器。管理的手机的活动信息。动态的内容。 ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<RunningAppProcessInfo> infos = am.getRunningAppProcesses(); return infos.size(); } /** * 获取手机可用的剩余内存 * @param context 上下文 * @return */ public static long getAvailMem(Context context){ ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); MemoryInfo outInfo = new MemoryInfo(); am.getMemoryInfo(outInfo); return outInfo.availMem; } /** * 获取手机可用的总内存 * @param context 上下文 * @return long byte */ public static long getTotalMem(Context context){ // ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); // MemoryInfo outInfo = new MemoryInfo(); // am.getMemoryInfo(outInfo); // return outInfo.totalMem; try { File file = new File("/proc/meminfo"); FileInputStream fis = new FileInputStream(file); BufferedReader br = new BufferedReader(new InputStreamReader(fis)); String line = br.readLine(); //MemTotal: 513000 kB StringBuilder sb = new StringBuilder(); for(char c: line.toCharArray()){ if(c>='0'&&c<='9'){ sb.append(c); } } return Long.parseLong(sb.toString())*1024; } catch (Exception e) { e.printStackTrace(); return 0; } } }
时间: 2024-10-30 01:37:49