本篇主要简单记录下,如何获取App的内存使用状态,在这之前我们首先了解下手机系统的内存总量、可用内存、低内存等的获取,代码如下:
val activityManager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
val memoryInfo = ActivityManager.MemoryInfo()
activityManager.getMemoryInfo(memoryInfo)
//手机系统的物理内存总量
val totalMem = memoryInfo.totalMem
//系统可用内寸
val availMem = memoryInfo.availMem
//低内存阈值,当 availMem 低于该值时,系统会开始终止后台服务和其他非无关进程
val threshold= memoryInfo.threshold
//如果系统认为自身当前处于内存不足的情况,则设置为 true
val lowMemory= memoryInfo.lowMemory
以上是系统级的内存状况,即整个设备的内存情况。通常用于 监控系统的整体内存状态,而非单一应用的内存。
应用场景:卡顿优化相关业务处理,比如:在低内存时,禁止播放动画或动效。
App 的内存大致划分,如下图所示: