/** * 作者:alex chen on 2016/9/10. */ public class MemoryUtils { /** * 获取手机内存大小 * * @return */ // public static String getTotalMemory(Context mContext) { // String str1 = "/proc/meminfo";// 系统内存信息文件 // String str2; // String[] arrayOfString; // long initial_memory = 0; // try { // FileReader localFileReader = new FileReader(str1); // BufferedReader localBufferedReader = new BufferedReader(localFileReader, 8192); // str2 = localBufferedReader.readLine();// 读取meminfo第一行,系统总内存大小 // arrayOfString = str2.split("\\s+"); // for (String num : arrayOfString) { // Log.i(str2, num + "\t"); // } // initial_memory = Integer.valueOf(arrayOfString[1]).intValue() * 1024;// 获得系统总内存,单位是KB,乘以1024转换为Byte // localBufferedReader.close(); // // } catch (IOException e) { // } // return Formatter.formatFileSize(mContext, initial_memory);// Byte转换为KB或者MB,内存大小规格化 // } public static String getAvailMemory(Context mContext) {// 获取android当前可用内存大小 ActivityManager am = (ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE); ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo(); am.getMemoryInfo(mi); return Formatter.formatFileSize(mContext, mi.availMem);// 将获取的内存大小规格化 } public static String getTotalMemory(Context mContext) {// 获取android当前可用内存大小 ActivityManager am = (ActivityManager)mContext.getSystemService(Context.ACTIVITY_SERVICE); ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo(); am.getMemoryInfo(mi); return Formatter.formatFileSize(mContext, mi.totalMem);// 将获取的内存大小规格化 } }
网上搜的"/proc/meminfo"可以显示系统内存,
结果发现在某些手机内存显示不对
建议使用新的API直接显示