Android内存优化实战篇

Android内存优化实战篇
作为⼀名Android开发者,对APP内存优化必须要有⼀定的了解,今天就总结下Android内存优化那些事。
什么是内存arx
⾸先看下这⾥的内存到底指的是什么?可以看下⾯这张图:
Android存储
⼿机中主要的存储部分分两块RAM和ROM,RAM存储程序的运⾏时数据,设备关机就会清空,我们也称之为内存;ROM也就是磁盘,存放⼀些永久的数据。
上图我们看到这个RAM中还有⼀个zRAM分区,这个zRAM分区会在内存不⾜时发挥作⽤,稍后会说到。
到这⾥简单介绍了⼿机的内存是指什么,当我们不断打开APP时,⼿机的内存会被占的越来越多,⽽我们知道我们的⼿机总内存是⼀定的,那么当内存不够时⼿机会发⽣什么呢?
内存不够怎么办
黄冈职业技术学院
当我们⼿机内存不⾜时,系统会有两套机制发挥作⽤。分别是内核交换守护进程和低内存终⽌守护进程
内核交换守护进程(kswapd)
内核交换守护进程 (kswapd) 是 Linux 内核的⼀部分,⽤于将已使⽤内存转换为可⽤内存。当设备上的可⽤内存不⾜时,该守护进程将变为活动状态。Linux 内核设有可⽤内存上下限阈值。当可⽤内存降⾄下限阈值以下时,kswapd 开始回收内存。当可⽤内存达到上限阈值时,kswapd 停⽌回收内存。
kswapd可以删除不再被使⽤到的内存,如下图:
2G
简单分析下,上图展⽰了2G内存设备的内存使⽤情况,当可⽤内存下降到某⼀阈值,即图中的kswapd threshold,这时kswapd会发挥作⽤,将缓存的内存转为使⽤内存。如果使⽤的内存越来越多,达到lmk threshold,那么低内存终⽌守护进程就会发挥作⽤,根据上⾯的优先级来杀死后台进程获取更多内存。
512M内存
512M
前列舒安
上图显⽰了只有512M内存的设备内存使⽤情况,可以看到由于总内存很⼩,随着使⽤时长的增加,内存很快就到了低内存终⽌守护进程阈值线,基本打开⼀个应⽤就会杀死后台⼀个应⽤,使⽤体验很差。鸟嘌呤核苷
接下来看下下⾯这张图:
上图显⽰了应⽤数据量和内存占⽤关系PSS(下⾯会讲到),⼀般数据量越多内存占⽤越多,红黄绿分别代表不同的⼿机设备,⼿机配置依次升⾼。RSS、PSS和USS
接下来看⼏个内存概念:RSS、PSS和USS。在讲这⼏个概念前⾸先来了解下内存的占⽤量是如何计算的,内存是分页计算的,⼀个应⽤内存可能会占⽤好⼏页,如下图所⽰:
当然,也会存在⼏个应⽤共享内存页⾯,例如,Google Play 服务和某个游戏应⽤可能会共享位置信息服务,如下所⽰:
野兔的生活习性>异常蛋
为了确定应⽤的内存占⽤量,可以使⽤以下任⼀指标:

本文发布于:2024-09-23 16:28:26,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/359991.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:内存   进程   守护   阈值
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议