package cn.jianhaozhan.utils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;
import android.app.ActivityManager;
import android.app.ActivityManager.MemoryInfo;
import android.app.ActivityManager.RunningAppProcessInfo;
import android.content.Context;
public class TaskUtil {
/**
* 获取正在运行的进程个数
*
* @author yousun
*
*/
public static int getProcessCount(Context context) {
ActivityManager am = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningAppProcessInfo> runningAppProcesses = am
.getRunningAppProcesses();
return runningAppProcesses.size();
}
/**
* 获取可用内存空间
*
* @param context
* @return
*/
public static long getAvailableRam(Context context) {
ActivityManager am = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
MemoryInfo outInfo = new MemoryInfo();
am.getMemoryInfo(outInfo);
return outInfo.availMem;
}
/**
* 获取总内存空间
*
* @param context
* @return
* @deprecated
*/
public static long getTotalRam(Context context) {
ActivityManager am = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
MemoryInfo outInfo = new MemoryInfo();
am.getMemoryInfo(outInfo);
return outInfo.totalMem;// 16版本以下不兼容
}
/**
* 版本16以下使用获取总内存空间
*
* @return
*/
public static long getTotalRam() {
File file = new File("/proc/meminfo");
StringBuilder sb = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String readLine = br.readLine();
// 获取数字
char[] charArray = readLine.toCharArray();
for (char c : charArray) {
if (c>='0' && c<='9') {
sb.append(c);
}
}
String string = sb.toString();
long parseLong = Long.parseLong(string);
return parseLong*1024;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return 0;
}
}