/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
字段可以帮助开发者和系统管理员了解系统中可用的内存资源,并根据需要做出相应的决策,比如调整应用程序的内存使用或进行系统优化。