获取手机内存可用内存单个APP运行内存

 1 /** 手机总内存 */
 2     private String getTotalMemory() {
 3         // 系统内存信息文件
 4         String str1 = "/proc/meminfo";
 5         String str2;
 6         String[] arrayOfString;
 7         long initial_memory = 0;
 8 
 9         try {
10             FileReader localFileReader = new FileReader(str1);
11             BufferedReader localBufferedReader = new BufferedReader(
12                     localFileReader, 8192);
13             // 读取meminfo第一行,系统总内存大小
14             str2 = localBufferedReader.readLine();
15 
16             arrayOfString = str2.split("\s+");
17             for (String num : arrayOfString) {
18                 Log.i(str2, num + "	");
19             }
20             // 获得系统总内存,单位是KB,乘以1024转换为Byte
21             initial_memory = Integer.valueOf(arrayOfString[1]).intValue() * 1024;
22             localBufferedReader.close();
23         } catch (IOException e) {
24         }
25         // Byte转换为KB或者MB,内存大小规格化
26         return Formatter.formatFileSize(getBaseContext(), initial_memory);
27     }
1 /** 获取android当前可用内存大小 */ 
2     private String getAvailMemory() {
3         ActivityManager am = (ActivityManager) getSystemService(
Context.ACTIVITY_SERVICE);
4 MemoryInfo mi = new MemoryInfo(); 5 am.getMemoryInfo(mi); 6 // mi.availMem; 当前系统的可用内存 7 // 将获取的内存大小规格化 8 return Formatter.formatFileSize(getBaseContext(), mi.availMem); 9 }
 1 /** Android获取应用所占内存大小 */ 
 2 private void getRunningAppProcessInfo() {
 3   ActivityManager mActivityManager = (ActivityManager) getSystemService(
 4       Context.ACTIVITY_SERVICE);
 5 
 6    // 获得系统里正在运行的所有进程
 7    List<RunningAppProcessInfo> runningAppProcessesList = mActivityManager
 8         .getRunningAppProcesses();
 9 
10    for (RunningAppProcessInfo runningAppProcessInfo : runningAppProcessesList) {
11       // 进程ID号
12       int pid = runningAppProcessInfo.pid;
13       // 用户ID
14       int uid = runningAppProcessInfo.uid;
15       // 进程名
16       String processName = runningAppProcessInfo.processName;
17       // 占用的内存
18       int[] pids = new int[] { pid };
19       Debug.MemoryInfo[] memoryInfo = mActivityManager
20              .getProcessMemoryInfo(pids);
21       int memorySize = memoryInfo[0].dalvikPrivateDirty;
22  
23       Log.i(TAG, "processName=" + processName + ",pid=" + pid + ",uid="
24             + uid + ",memorySize=" + memorySize + "kb");
25     }
26 }
 1 /**
 2   * 获取单个 app 内存限制大小
 3   * 返回以 M 为单位的数字,
 4   * 可能在不同的平台或者设备上值都不太一样
 5  */
 6  private void test01() {
 7    ActivityManager activityManager2 = (ActivityManager) getSystemService(
 8       Context.ACTIVITY_SERVICE);
 9    activityManager2.getMemoryClass();
10  }
原文地址:https://www.cnblogs.com/androidsj/p/3992320.html