Android 查看手机内存使用情况(/proc/meminfo)
(2017-08-15 18:06:21)| 分类: androidios |
-
cat
/proc/meminfo -
MemTotal:
2806760 kB -
MemFree:
197620 kB -
Buffers:
56696 kB -
Cached:
909360 kB -
SwapCached:
0 kB -
Active:
1406036 kB -
Inactive:
476540 kB -
Active(anon):
924492 kB -
Inactive(anon):
11664 kB -
Active(file):
481544 kB -
Inactive(file):
464876 kB -
Unevictable:
7832 kB -
Mlocked:
80 kB -
SwapTotal:
0 kB -
SwapFree:
0 kB -
Dirty:
0 kB -
Writeback:
0 kB -
AnonPages:
924252 kB -
Mapped:
217876 kB -
Shmem:
11884 kB -
Slab:
306808 kB -
SReclaimable:
78768 kB -
SUnreclaim:
228040 kB -
KernelStack:
33360 kB -
PageTables:
34480 kB -
NFS_Unstable:
0 kB -
Bounce:
0 kB -
WritebackTmp:
0 kB -
CommitLimit:
1403380 kB -
Committed_AS:
93553728 kB -
VmallocTotal:
251658176 kB -
VmallocUsed:
110656 kB -
VmallocChunk:
251386276 kB
MemTotal: 所有可用RAM大小(即物理内存减去一些预留位和内核的二进制代码大小)。
MemFree:被系统留着未使用的内存。
Buffers: 用来给文件做缓冲的大小。
Cached: 被高速缓冲存储器(cache memory)用的内存的大小(等于 diskcache minus SwapCache ).
SwapCached:swap 缓存的大小,Android很少使用swap的,经常为0。被高速缓冲存储器(cache memory)用来交换空间的大小,用来在需要的时候很快的被替换而不需要再次打开I/O端口。
Active: 在活跃使用中的缓冲或高速缓冲存储器页面文件的大小,除非非常必要,否则不会被移作他用。
Inactive: 在不经常使用中的缓冲或高速缓冲存储器页面文件的大小,可能被用于其他途径。
SwapTotal:
交换空间的总大小。
SwapFree:
未被使用交换空间的大小。
要获取android手机总内存大小,只需读取"/proc/meminfo"文件的第1行,并进行简单的字符串处理即可。
同时可以通过代码获取总内存和可用内存。
- private
String //getAvailMemory() { 获取android当前可用内存大小 -
-
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); -
MemoryInfo mi = new MemoryInfo(); -
am.getMemoryInfo(mi); -
//mi.availMem; 当前系统的可用内存 -
-
return Formatter.formatFileSize(getBaseContext(), //mi.availMem); 将获取的内存大小规格化 -
}
- private
String getTotalMemory() { -
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(getBaseContext(), //initial_memory); Byte转换为KB或者MB,内存大小规格化 - }

加载中…