获取Android手机总内存和可用内存最佳方案
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手机总内存和可用内存最佳方案相关推荐
- 获取Android手机总内存和可用内存
在android开发中,有时候我们想获取手机的一些硬件信息,比如android手机的总内存和可用内存大小.这个该如何实现呢? 通过读取文件"/proc/meminfo"的信息能够获 ...
- Android 获取手机总内存和可用内存等信息
在android开发中,有时候我们想获取手机的一些硬件信息,比如android手机的总内存和可用内存大小.这个该如何实现呢? 通过读取文件"/proc/meminfo"的信息能够获 ...
- android每个程序的内存大小,如何获取Android手机全部内存和可用内存尺寸
通过读取文件"/proc/meminfo"的信息能够获取手机Memory的总量,而通过ActivityManager.getMemoryInfo(ActivityManager.M ...
- Android手机总内存和可用内存
在android开发中,有时候我们想获取手机的一些硬件信息,比如android手机的总内存和可用内存大小.这个该如何实现呢? 通过读取文件"/proc/meminfo"的信息能够获 ...
- Unity实现在Android端获取Android手机的唯一ID(设备号)(亲测Android11可用)
Unity实现在Android端获取Android手机的唯一ID(设备号)(亲测Android11可用) 备注:测试版本Unity2020,理论上Unity2018以上都可用,未做测试 - 文章初衷 ...
- Unity获取Android手机的RAM和剩余RAM和ROM
Unity获取Android手机的RAM和剩余RAM和ROM 前言 一.Android工程方法的实现 二.生成aar 三.Untiy中的调用 前言 项目工作需要,在游戏APP运行时,获取当前手机的剩余 ...
- android开发获取手机,通过ADB获取Android手机信息,获取手机信息
通过ADB获取Android手机信息,获取手机信息 原文:https://blog.csdn.net/fasfaf454/article/details/51438743 1.获取手机系统信息( CP ...
- 获取Android手机的分辨率通过ADB命令
获取Android手机的分辨率通过ADB命令 adb shell dumpsys window displays//此命令即可获取 WINDOW MANAGER DISPLAY CONTENTS (d ...
- 获取Android 手机设备信息:包括机型、操作系统版本号、手机分辨率、运营商、当前联网方式、IMEI、MEID、MAC地址
获取Android 手机设备信息:操作系统版本号.手机分辨率.运营商.当前联网方式.IMEI.MEID.MAC地址 包括双卡机型上的两个IMEI信息 /*** Created by Administr ...
最新文章
- jQuery 实现 select模糊查询 反射机制
- 微信小程序的tab选项卡的实现
- NHibernate概括
- DirectUpdateHandler2 Solr commit
- elasticsearch映射相关字段定义,属性定义,及动态映射(marvel插件方式)mapping
- thinkphp数据表操作恐怖事件。
- 基于灰度的模板匹配算法
- 前后端python简单模拟api接口返回json,以及采集数据
- 扒开系统调用的三层皮(上)
- ​以数据科学家的眼光投资,你可能会一夜暴富
- 2014年4月底至5月初51Aspx源码发布详情
- what is AOP
- 机器学习常用数据处理
- 背包三讲(感谢崔添翼 (Tianyi Cui)大佬的无私奉献)
- conv1d(): argument ‘padding‘ (position 5) must be tuple of ints, not str 这个错误是怎么回事呀?请各位帮忙看看,万分感谢
- 关于宠物饮水机的问题与设计
- HFS+和HFSX的区别
- C++ 值传递、指针传递、引用传递详解
- 西安交通大学计算机在线作业,西交《计算机组成原理》在线作业.docx
- linux在3T的分区磁盘上追加空间
热门文章
- 免费的ERP系统哪个好?这款让管理更高效
- 《Java语言程序设计——坦克大战单机游戏》源码以及实验报告
- Likely root cause: java.lang.IllegalStateException: jar hell!
- 电脑的的load是什么意思?
- U盘自动清空数据怎么回事?U盘自动清空怎么恢复数据
- 中国制药设备行业销售现状及竞争策略建议报告2022-2027年版
- Dialogs API: Using Dialogs API
- Dialogs 介绍 和 dialog.setContentView(R.layout.custom_dialog);
- 【2023注册测绘师考试综合能力考试攻略】 ——大地测量的考点试题汇编及参考答案
- 构建追溯一体化平台 赋能企业数字化转型——专访爱创科技董事长、CEO谢朝晖