Android通過MemoryInfo對象獲取內存信息

// 獲得設備內存信息
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"


 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章