美文网首页
基础简介

基础简介

作者: 禅座 | 来源:发表于2019-06-14 13:50 被阅读0次

Android 系统将尽量长时间地保持应用进程,但为了新建进程或运行更重要的进程,需要清除旧进程来回收内存。
为了确定保留或终止哪些进程,系统会对进程进行分类。 需要时,系统会首先消除重要性最低的进程,然后是清除重要性稍低一级的进程,依此类推,以回收系统资源。
https://developer.android.google.cn/guide/components/processes-and-threads.html?hl=zh-cn

Low Memory Killer

系统出于体验和性能上的考虑,app在退到后台时系统并不会真正的kill掉这个进程,而是将其缓存起来。打开的应用越多,后台缓存的进程也越多。
在系统内存不足的情况下,系统开始依据自身的一套进程回收机制来判断要kill掉哪些进程,以腾出内存来供给需要的app, 这套杀进程回收内存的机制就叫 Low Memory Killer。

cat /sys/module/lowmemorykiller/parameters/minfree 

通过该命令可以查看内存阈值


image.png

内存阈值在不同的手机上不一样,一旦低于该值,Android便开始按顺序关闭进程. 因此Android开始结束优先级最低的空进程,即当可用内存小于180MB(46080)(这些数字的单位是page. 1 page = 4 kb)

  • 18432–前台进程
  • 23040–可见进程
  • 27648–服务进程
  • 32256–后台进程
  • 36864–contentProvider
  • 46080–空进程

oom_adj

进程的优先级通过进程的adj值来反映,它是linux内核分配给每个系统进程的一个值,进程回收机制根据这个值来决定是否进行回收。adj的值越小,进程的优先级越高。
可以通过以下命令可以看到当前进程的adj值。(需要[root]权限)

cat /proc/进程id/oom_adj
image.png
image.png
image.png

adj越大,占用内存越多会被最先kill掉,所以保活就成了降低oom_adj的值,以及如何使得我们应用占的内存最少.


image.png

相关文章

  • 基础-简介

    1. CocoaPods简介 CocoaPods是一个用来帮助我们管理iOS第三方依赖库的工具。它可以解决库与库之...

  • 基础简介

    Android 系统将尽量长时间地保持应用进程,但为了新建进程或运行更重要的进程,需要清除旧进程来回收内存。为了确...

  • UIButton

    目录:1、UIButton基础简介2、UIButton事件 1、UIButton基础简介 2、UIButton事件...

  • UILabel简介

    UILabel基础简介

  • 人工智能技术文章list

    理论基础部分: 人工智能基数算法简介 人工智能基础算法简介2 人工智能基础算法总结 TensorFlow 入门 T...

  • JMeter:基础_简介

    Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设...

  • Java基础简介

    Java是一门面向对象的程序设计语言,1995年由Sun公司发布,2010年被Oracle公司收购。 JVM(Ja...

  • Javascript基础简介

    1.javascript: 行内样式 ;内嵌样式 ;外链样式 2.使用javascript来输出一句话: 方式1...

  • python 基础 - 简介

    python 简介 前言 一种面向对象的解释型计算机程序设计语言 解释类:解释器通过解释器来翻译,类似于同声传译人...

  • 网络基础简介

    TCP/IP: 是以TCOP和IP为基础的不同层次商多个协议的集合 TCP:Transmission Contro...

网友评论

      本文标题:基础简介

      本文链接:https://www.haomeiwen.com/subject/zvqlxctx.html