[√]获取Android内存情况

763 阅读3分钟

/proc/meminfo 是一个特殊文件在 Linux 和 Android 系统上提供了有关内存使用情况的详细信息。它包含的信息是从系统启动以来关于物理内存、可用内存、缓存和交换空间等方面的统计数据。

在Android上可以通过 ActivityManager.getMemoryInfo(ActivityManager.MemoryInfo)获取当前可用的内存使用情况。

要获取android手机总内存大小,只需读取"/proc/meminfo"文件的第1行,并进行简单的字符串处理即可。

  • /proc/meminfo
MemTotal:        3809036 kB   系统总内存大小
MemFree:          282012 kB   可用的空闲内存大小
MemAvailable:     865620 kB   当前可用的内存大小,包括缓存和页面文件
Buffers:               0 kB   用于块设备的缓冲区的内存大小
Cached:           854972 kB   用于文件缓存的内存大小
SwapCached:       130900 kB   缓存的交换空间大小
Active:          1308168 kB   活跃内存大小,正在使用或最近被使用的内存
Inactive:        1758160 kB   非活跃内存大小,最近没有被使用的内存
Active(anon):    1010416 kB 
Inactive(anon):  1370480 kB
Active(file):     297752 kB
Inactive(file):   387680 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       4063228 kB   交换空间总大小
SwapFree:        3357108 kB   可用的空闲交换空间大小
Dirty:                 0 kB   等待写入到磁盘的内存大小
Writeback:             0 kB   写回磁盘的内存大小
AnonPages:       2104412 kB   匿名页的大小,不属于文件的内存页面
Mapped:            40988 kB   映射的文件和设备的内存大小
Shmem:            169540 kB
Slab:             225420 kB   内核数据结构的内存使用量(如缓存、目录项等)
SReclaimable:     134220 kB   SReclaimable: 可回收的 Slab 对象内存大小
SUnreclaim:        91200 kB   不可回收的 Slab 对象内存大小
KernelStack:        5936 kB
PageTables:        35628 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     5967744 kB
Committed_AS:    5626436 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      351900 kB
VmallocChunk:   34359363652 kB
HardwareCorrupted:     0 kB
AnonHugePages:    139264 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      204484 kB
DirectMap2M:     3915776 kB

MemFree

MemFree/proc/meminfo 文件中的一个字段,表示系统当前的空闲内存大小。它指示了当前没有被任何进程使用的可供系统和应用程序使用的内存量。

/proc/meminfo 文件中,MemFree 字段的单位是 kB(千字节)。你可以查看该字段以了解系统当前可用的内存数量。请注意,这里的 "空闲" 内存是指未被分配给任何特定任务或缓存的内存。

值得注意的是,虽然 MemFree 提供了关于系统内存空闲情况的信息,但这并不意味着所有的空闲内存都可以立即分配给新的进程使用。一部分内存可能被操作系统保留或用于其他目的,比如文件系统缓存等。

总的来说,MemFree 字段可以帮助开发者和系统管理员了解系统中可用的内存资源,并根据需要做出相应的决策,比如调整应用程序的内存使用或进行系统优化。