Android手机的内存大小信息存放在手机系统的/proc/meminfo文件中,可以通过读取这个文件来获取内存信息。

adb shell查看

  • 通过adb shell命令,进入终端
adb shell 
  • 执行cat /proc/meminfo,查看内存信息,命令如下:
cat /proc/meminfo

输出信息为:

MemTotal:        5788180 kB
MemFree:          202400 kB
MemAvailable:    1862008 kB
Buffers:          137020 kB
Cached:          1670164 kB
SwapCached:         9972 kB
Active:          2311504 kB
Inactive:         811540 kB
Active(anon):    1050552 kB
Inactive(anon):   408972 kB
Active(file):    1260952 kB
Inactive(file):   402568 kB
Unevictable:      122932 kB
Mlocked:          118792 kB
SwapTotal:       2621436 kB
SwapFree:        1916732 kB
Dirty:               116 kB
Writeback:             0 kB
AnonPages:       1433504 kB
Mapped:           728712 kB
Shmem:             20948 kB
Slab:             375252 kB
SReclaimable:     133676 kB
SUnreclaim:       241576 kB
KernelStack:       73744 kB
PageTables:        99356 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     5515524 kB
Committed_AS:   165453160 kB
VmallocTotal:   263061440 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
CmaTotal:         204800 kB
CmaFree:            6112 kB

常用项介绍如下:

(1)MemTotal: 所有可用RAM大小。(即物理内存减去一些预留位和内核的二进制代码大小)
(2)MemFree: LowFree与HighFree的总和,被系统留着未使用的内存。
(3)Buffers: 用来给文件做缓冲大小。
(4)Cached: 被高速缓冲存储器(cache memory)用的内存的大小(等于diskcache minus SwapCache)。
(5)SwapCached:被高速缓冲存储器(cache memory)用的交换空间的大小。已经被交换出来的内存,仍然被存放在swapfile中,用来在需要的时候很快的被替换而不需要再次打开I/O端口。
(6)Active: 在活跃使用中的缓冲或高速缓冲存储器页面文件的大小,除非非常必要,否则不会被移作他用。
(7)Inactive: 在不经常使用中的缓冲或高速缓冲存储器页面文件的大小,可能被用于其他途径。
(8)SwapTotal: 交换空间的总大小。
(9)SwapFree: 未被使用交换空间的大小。
(10)Dirty: 等待被写回到磁盘的内存大小。
(11)Writeback: 正在被写回到磁盘的内存大小。
(12)AnonPages:未映射页的内存大小。
(13)Mapped: 设备和文件等映射的大小。
(14)Slab: 内核数据结构缓存的大小,可以减少申请和释放内存带来的消耗。
(15)SReclaimable:可收回Slab的大小。
(16)SUnreclaim:不可收回Slab的大小(SUnreclaim+SReclaimable=Slab)。
(17)PageTables:管理内存分页页面的索引表的大小。
(18)NFS_Unstable:不稳定页表的大小。

代码获取

获取内存总大小


public static long getTotalMem() {try {FileReader fr = new FileReader(FILE_MEMORY);BufferedReader br = new BufferedReader(fr);String text = br.readLine();String[] array = text.split("\\s+");Log.w(TAG, text);// 单位为KBreturn Long.valueOf(array[1]);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return -1;}

获取可用内存大小

public static long getFreeMem(Context context) {ActivityManager manager = (ActivityManager) context.getSystemService(Activity.ACTIVITY_SERVICE);ActivityManager.MemoryInfo info = new ActivityManager.MemoryInfo();manager.getMemoryInfo(info);// 单位Bytereturn info.availMem;}

小结

以上,亲测可用,如有问题欢迎留言交流~

获取Android手机总内存和可用内存最佳方案相关推荐

  1. 获取Android手机总内存和可用内存

    在android开发中,有时候我们想获取手机的一些硬件信息,比如android手机的总内存和可用内存大小.这个该如何实现呢? 通过读取文件"/proc/meminfo"的信息能够获 ...

  2. Android 获取手机总内存和可用内存等信息

    在android开发中,有时候我们想获取手机的一些硬件信息,比如android手机的总内存和可用内存大小.这个该如何实现呢? 通过读取文件"/proc/meminfo"的信息能够获 ...

  3. android每个程序的内存大小,如何获取Android手机全部内存和可用内存尺寸

    通过读取文件"/proc/meminfo"的信息能够获取手机Memory的总量,而通过ActivityManager.getMemoryInfo(ActivityManager.M ...

  4. Android手机总内存和可用内存

    在android开发中,有时候我们想获取手机的一些硬件信息,比如android手机的总内存和可用内存大小.这个该如何实现呢? 通过读取文件"/proc/meminfo"的信息能够获 ...

  5. Unity实现在Android端获取Android手机的唯一ID(设备号)(亲测Android11可用)

    Unity实现在Android端获取Android手机的唯一ID(设备号)(亲测Android11可用) 备注:测试版本Unity2020,理论上Unity2018以上都可用,未做测试 - 文章初衷 ...

  6. Unity获取Android手机的RAM和剩余RAM和ROM

    Unity获取Android手机的RAM和剩余RAM和ROM 前言 一.Android工程方法的实现 二.生成aar 三.Untiy中的调用 前言 项目工作需要,在游戏APP运行时,获取当前手机的剩余 ...

  7. android开发获取手机,通过ADB获取Android手机信息,获取手机信息

    通过ADB获取Android手机信息,获取手机信息 原文:https://blog.csdn.net/fasfaf454/article/details/51438743 1.获取手机系统信息( CP ...

  8. 获取Android手机的分辨率通过ADB命令

    获取Android手机的分辨率通过ADB命令 adb shell dumpsys window displays//此命令即可获取 WINDOW MANAGER DISPLAY CONTENTS (d ...

  9. 获取Android 手机设备信息:包括机型、操作系统版本号、手机分辨率、运营商、当前联网方式、IMEI、MEID、MAC地址

    获取Android 手机设备信息:操作系统版本号.手机分辨率.运营商.当前联网方式.IMEI.MEID.MAC地址 包括双卡机型上的两个IMEI信息 /*** Created by Administr ...

最新文章

  1. jQuery 实现 select模糊查询 反射机制
  2. 微信小程序的tab选项卡的实现
  3. NHibernate概括
  4. DirectUpdateHandler2 Solr commit
  5. elasticsearch映射相关字段定义,属性定义,及动态映射(marvel插件方式)mapping
  6. thinkphp数据表操作恐怖事件。
  7. 基于灰度的模板匹配算法
  8. 前后端python简单模拟api接口返回json,以及采集数据
  9. 扒开系统调用的三层皮(上)
  10. ​以数据科学家的眼光投资,你可能会一夜暴富
  11. 2014年4月底至5月初51Aspx源码发布详情
  12. what is AOP
  13. 机器学习常用数据处理
  14. 背包三讲(感谢崔添翼 (Tianyi Cui)大佬的无私奉献)
  15. conv1d(): argument ‘padding‘ (position 5) must be tuple of ints, not str 这个错误是怎么回事呀?请各位帮忙看看,万分感谢
  16. 关于宠物饮水机的问题与设计
  17. HFS+和HFSX的区别
  18. C++ 值传递、指针传递、引用传递详解
  19. 西安交通大学计算机在线作业,西交《计算机组成原理》在线作业.docx
  20. linux在3T的分区磁盘上追加空间

热门文章

  1. 免费的ERP系统哪个好?这款让管理更高效
  2. 《Java语言程序设计——坦克大战单机游戏》源码以及实验报告
  3. Likely root cause: java.lang.IllegalStateException: jar hell!
  4. 电脑的的load是什么意思?
  5. U盘自动清空数据怎么回事?U盘自动清空怎么恢复数据
  6. 中国制药设备行业销售现状及竞争策略建议报告2022-2027年版
  7. Dialogs API: Using Dialogs API
  8. Dialogs 介绍 和 dialog.setContentView(R.layout.custom_dialog);
  9. 【2023注册测绘师考试综合能力考试攻略】 ——大地测量的考点试题汇编及参考答案
  10. 构建追溯一体化平台 赋能企业数字化转型——专访爱创科技董事长、CEO谢朝晖