主要观点总结
本文介绍了Android系统中内存管理的机制,特别是系统可用内存不足时的处理方式和应用可用内存不足时的应对策略。文章详细解释了Android中的LMK(Low Memory Killer)机制,以及如何通过监控内存使用情况来回收Activity。
关键观点总结
关键观点1: 系统可用内存不足时,Android系统的LMK机制会根据进程的优先级来杀掉一部分进程,释放内存供后续启动的APP使用。
LMK机制基于Linux内核的OOM规则改进,通过两个文件(/sys/module/lowmemorykiller/parameters/minfree 和 /sys/module/lowmemorykiller/parameters/adj)来配置阈值和要杀掉的进程的优先级。
关键观点2: 应用可用内存不足时,如果应用使用内存接近堆的限制阈值并且尝试分配内存,很容易导致OOM。Android系统会在进程内存不足时,回收不可见的Task。
回收机制是在虚拟机GC时通过调用对象的finalize()方法来触发内存回收。当已用内存超过最大内存的3/4时,系统会开始回收不可见的Task,每次只回收一个Task。
关键观点3: 文章提供了关于Android进程优先级ADJ算法、LMK机制、内存监控机制等的详细解读,并进行了Demo验证。
文章还介绍了如何通过轮询当前可用内存来判断是否需要回收Activity,并给出了相关的参考文献和推荐网站。
免责声明
免责声明:本文内容摘要由平台算法生成,仅为信息导航参考,不代表原文立场或观点。
原文内容版权归原作者所有,如您为原作者并希望删除该摘要或链接,请通过
【版权申诉通道】联系我们处理。