在android开发中,有时候我们想获取手机的一些硬件信息,比如android手机的总内存和可用内存大小。这个该如何实现呢?
通过 进程信息目录proc,读取文件"/proc/meminfo"的信息能够获取手机Memory的总量,而通过
"/proc/meminfo"文件记录了android手机的一些内存信息,在命令行窗口里输入"adb shell",进入shell环境,输入"cat /proc/meminfo"即可在命令行里显示meminfo文件的内容,具体如下所示。
C:/Users/Figo>adb shell
# cat /proc/meminfo
cat /proc/meminfo
MemTotal: 94096 kB
MemFree: 1684 kB
Buffers: 16 kB
Cached: 27160 kB
SwapCached: 0 kB
Active: 35392 kB
Inactive: 44180 kB
Active(anon): 26540 kB
Inactive(anon): 28244 kB
Active(file): 8852 kB
Inactive(file): 15936 kB
Unevictable: 280 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 52688 kB
Mapped: 17960 kB
Slab: 3816 kB
SReclaimable: 936 kB
SUnreclaim: 2880 kB
PageTables: 5260 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 47048 kB
Committed_AS: 1483784 kB
VmallocTotal: 876544 kB
VmallocUsed: 15456 kB
VmallocChunk: 829444 kB
#
下面先对"/proc/meminfo"文件里列出的字段进行粗略解释:
MemTotal: 所有可用RAM大小。
MemFree: LowFree与HighFree的总和,被系统留着未使用的内存。
Buffers: 用来给文件做缓冲大小。
Cached: 被高速缓冲存储器(cache memory)用的内存的大小(等于diskcache minus SwapCache)。
SwapCached:被高速缓冲存储器(cache memory)用的交换空间的大小。已经被交换出来的内存,仍然被存放在swapfile中,用来在需要的时候很快的被替换而不需要再次打开I/O端口。
Active: 在活跃使用中的缓冲或高速缓冲存储器页面文件的大小,除非非常必要,否则不会被移作他用。
Inactive: 在不经常使用中的缓冲或高速缓冲存储器页面文件的大小,可能被用于其他途径。
SwapTotal: 交换空间的总大小。
SwapFree: 未被使用交换空间的大小。
Dirty: 等待被写回到磁盘的内存大小。
Writeback: 正在被写回到磁盘的内存大小。
AnonPages:未映射页的内存大小。
Mapped: 设备和文件等映射的大小。
Slab: 内核数据结构缓存的大小,可以减少申请和释放内存带来的消耗。
SReclaimable:可收回Slab的大小。
SUnreclaim:不可收回Slab的大小(SUnreclaim+SReclaimable=Slab)。
PageTables:管理内存分页页面的索引表的大小。
NFS_Unstable:不稳定页表的大小。
分享到:
相关推荐
本文将深入探讨如何利用Unity调用Android原生API来查看内存信息,包括FPS(帧率)、系统总内存、系统可用内存以及Unity应用自身所占用的内存。这对于监控和优化游戏性能至关重要。 首先,我们关注的是"Unity调用...
这个类会包含调用Android系统API的方法,用于获取内存信息和FPS。 ```java // ShowAppBaseInfo.java package com.example.showappbaseinfo; import android.app.Activity; import android.os.Debug; import ...
在Android系统中,开发者可以通过Android提供的API来获取系统的内存信息以及正在运行的进程状态。这一功能主要涉及到`ActivityManager`类的使用。`ActivityManager`是Android SDK中的一个关键组件,它提供了对系统...
此外,还可以通过`/proc/meminfo`文件来获取更底层的内存信息,但同样可能需要额外权限。 至于磁盘使用率,Android并没有直接提供API来获取,开发者通常需要自己遍历文件系统统计各个分区的大小和已用空间。`java....
在Android系统中,获取手机的总内存和可用内存信息是开发者和普通用户都可能需要的操作。这涉及到系统层面的信息查询,通常需要通过编程接口(API)或者使用Android Debug Bridge(ADB)工具来实现。以下是对这个...
本篇文章将深入探讨Android内存管理的两个核心概念:堆(Heap)和栈(Stack),以及如何理解和解决Android内存溢出问题。 1. 堆与栈 堆和栈是Java虚拟机(JVM)中的两种主要内存区域,它们各自具有特定的用途和...
Android 开发中获取手机内存信息的方式 Android 开发中获取手机内存信息是非常重要的,了解手机的内存信息可以帮助开发者更好地优化应用程序的性能和资源利用率。在 Android 开发中,有时候我们想获取手机的一些...
这个程序可以通过ADB(Android Debug Bridge)推送到设备上,用于读取并导出内存信息。 ADB是Android开发环境中的一个重要工具,它允许开发者通过USB或Wi-Fi与设备进行通信,执行各种操作,如安装应用、查看日志、...
一个实用的Android 内存监测悬浮窗,可用于监视某个应用或显示监视信息,本源码中的悬浮...实时显示当前内存信息 3.上层数据表示可用内存值。 4.下层数据表示总内存值。 5.点击悬浮窗出现关闭小图标可直接关闭。
Android 通过shell脚本采集系统指定进程内存信息,方便python或其他工具读取
"Android 内存泄露 Mat工具分析" Android 内存泄露是一个常见的问题,它会导致应用程序的性能下降,甚至崩溃。Memory Analyzer Tool(MAT)是一个功能强大且广泛使用的内存泄露分析工具。本文将详细介绍如何使用 ...
本文将基于给定的信息,深入探讨Android内存泄露测试的关键知识点。 #### 一、内存泄露的原因与检测工具 内存泄露可能由多种原因引起,包括但不限于对象引用未正确管理、静态集合的过度使用、Handler和Runnable的...
在Android系统中,获取应用程序的内存信息是进行性能分析、优化和故障排查的重要步骤。针对Android 7.1,这个"android 7.1 获取各个应用的各种内存信息的app demo"是一个示例项目,旨在教开发者如何在不依赖外部开源...
### Android内存管理知识点总结 #### 一、Dalvik虚拟机及其优势 - **Dalvik虚拟机简介**:Dalvik虚拟机是Android系统的核心组件之一,它负责执行Android应用中的Java字节码。与传统的Java虚拟机(JVM)不同,Dalvik...
以下是关于Android内存管理的深入解析: 1. **进程分类**: - **前台进程(Foreground)**:正在用户交互界面中显示或关键系统进程,如Dialer、Storage、Google Search等,具有最高优先级,一般不会被系统自动结束...
**五、MAT与Android内存优化** MAT在Android开发中的应用主要是查找和修复内存泄漏,优化对象生命周期管理,减少内存占用,提升应用性能。开发者应定期进行内存分析,特别是在处理大量数据或长时间运行的应用中。 ...
在应用的Application类中安装LeakCanary,这样每当应用运行时,它就会自动检测内存泄露,并在检测到问题时通过通知栏提供详细的泄漏信息。点击通知可以直接查看泄漏的对象和引用链,极大地简化了内存泄露的诊断过程...
设备信息 白名单 应用截图 Open source projects ButterKnife WaveView Dagger 2 RxAndroid EventBus Stetho LeakCanary recycler-fast-scroll CircularFillableLoaders hellocharts-...
对于内存信息,我们可以使用Android提供的 `ActivityManager` 类来获取。这个类提供了 `getMemoryInfo()` 方法,返回一个 `ActivityManager.MemoryInfo` 对象,包含了总内存、可用内存等信息: ```java ...