Android之获得内存剩余大小与总大小
转自:?http://www.cnblogs.com/lee0oo0/archive/2012/11/23/2784642.html
?
public class memInfo {
?
? ? // 获得可用的内存
? ? public static long getmem_UNUSED(Context mContext) {
? ? ? ? long MEM_UNUSED;
// 得到ActivityManager
? ? ? ? ActivityManager am = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);// 创建ActivityManager.MemoryInfo对象 ? ? ? ? ?ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();
? ? ? ? am.getMemoryInfo(mi);
// 取得剩余的内存空间 ? ? ? ? MEM_UNUSED = mi.availMem / 1024;
? ? ? ? return MEM_UNUSED;
? ? }
?
? ? // 获得总内存
? ? public static long getmem_TOLAL() {
? ? ? ? long mTotal;
? ? ? ? // /proc/meminfo读出的内核信息进行解释
? ? ? ? String path = "/proc/meminfo";
? ? ? ? String content = null;
? ? ? ? BufferedReader br = null;
? ? ? ? try {
? ? ? ? ? ? br = new BufferedReader(new FileReader(path), 8);
? ? ? ? ? ? String line;
? ? ? ? ? ? if ((line = br.readLine()) != null) {
? ? ? ? ? ? ? ? content = line;
? ? ? ? ? ? }
? ? ? ? } catch (FileNotFoundException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? } catch (IOException e) {
? ? ? ? ? ? e.printStackTrace();
? ? ? ? } finally {
? ? ? ? ? ? if (br != null) {
? ? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? br.close();
? ? ? ? ? ? ? ? } catch (IOException e) {
? ? ? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? // beginIndex
? ? ? ? int begin = content.indexOf(':');
? ? ? ? // endIndex
? ? ? ? int end = content.indexOf('k');
? ? ? ? // 截取字符串信息content = content.substring(begin + 1, end).trim();
? ? ? ? mTotal = Integer.parseInt(content);
? ? ? ? return mTotal;
? ? }
}