// 獲得設備內存信息
public static Object[] getMemInfo(Context mContext) {
float availMem;
float totalMem;
boolean lowMem;
// 得到ActivityManager
ActivityManager am = SystemManagerUtils.getActivityManager(mContext);
// 創建ActivityManager.MemoryInfo對象
ActivityManager.MemoryInfo mi = new ActivityManager.MemoryInfo();
am.getMemoryInfo(mi);
// 取得剩餘的內存空間
availMem = mi.availMem / 1024 / 1024 / 1024f;
totalMem = mi.totalMem / 1024 / 1024 / 1024f;
lowMem = mi.lowMemory;
System.out.println("設備總內存:" + String.format("%.2f", totalMem) + "G");
System.out.println("設備可用內存:" + String.format("%.2f", availMem) + "G");
System.out.println("是否低內存狀態:" + mi.lowMemory);
return new Object[]{totalMem, availMem, lowMem};
}
//打印設備/App內存信息
public static void printMemore(Context ctx){
float M = 1024*1024;
Runtime r = Runtime.getRuntime();
getMemInfo(ctx);
System.out.println("APP最大可用內存:" + String.format("%.2f", r.maxMemory() / M) + "M");
System.out.println("APP當前可用內存:" + String.format("%.2f", r.totalMemory()/ M) + "M");
System.out.println("APP當前空閒內存:" + String.format("%.2f", r.freeMemory() / M )+ "M");
System.out.println("APP當前已使用內存:" + String.format("%.2f", (r.totalMemory() - r.freeMemory()) / M) + "M");
}
另外在Manifest application 裏面添加一下屬性可以增加最大可用內存
android:allowBackup="true"
android:largeHeap="true"