系統信息的工具類(內存狀態、運行的程序數)
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;
}
}
}