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(缓存页)太少,设备可能就死机。