Android的内存分配、管理、OOM这一篇文章就够够的了!

本文详细探讨了Android系统的内存分配和管理机制,包括Android低内存杀手(LMK)如何工作,以及它如何影响用户体验。此外,还介绍了Android应用的内存使用情况,包括物理内存追踪和如何减少应用内存占用。最后,讨论了Java代码的内存分配,触发GC回收的条件,以及如何处理和定位内存泄漏问题,以防止OOM的发生。
摘要由CSDN通过智能技术生成

Android的内存分配和管理为两个大板块: (Android手机系统和手机应用APP)

一、Android 手机系统的内存分配和管理

主要3点内容介绍
-Android 系统的低内存工作机制:
-Android 应用内存的使用情况:
-如何减少Android 应用内存的占用:
1、Android 系统的低内存工作机制:

首先给大家提出一个问题,为什么有的手机打开应用多了,在使用的时候回特别卡呢。并且有时候回卡在APP里面好长时间呢?甚至黑屏,重启这些现象呢?那么今天我就给大家一一揭晓谜底:

先给大家介绍一个物理内存概念: 然后引入Android Low Memory Killer。(低内存杀手)

手机内存(物理内存): 设备的物理内存被分为很多页(Page),每页4KB, 不同的页用来做不同的事情:
-橘黄色代表已使用的页
-黄色代表缓存页(数据在磁盘上有备份,所以Cache Pages是可以被回收的)
-绿色是空闲页

在这里插入图片描述

用于回收Cached Pages(缓存页内存)的kswapd进程
Cached Pages缓存页什么时候被回收呢? 下面我们分析一下

下面是一个2GB内存的手机,X轴代表使用时间, Y轴代表内存情况。随着打开的应用越来越多,Userd Pages(使用内存)也越来越多,而Cached Pages(缓存页)和Free Pages(空闲页)越来越少。当Free Pages(空闲页)低于kswapd(回收进程)的阀值时,linux内核就会通过kswapd进程Cached Pages(缓存页)就行回收。当应用再次访问Cached Pages(缓存页)的内容时,就需要从磁盘上重新加载。如果Cached Pages(缓存页)太少,设备可能就死机。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值