1.前台进程(foreground):

目前正在屏幕上显示的进程和一些系统进程。举例来说,Dialer Storage,Google Search等系统进程就是前台进程;再举例来说,当你运行一个程序,如浏览器,当浏览器界面在前台显示时,浏览器属于前台进程(foreground),但一旦你按home回到主界面,浏览器就变成了后台程序(background)。我们最不希望终止的进程就是前台进程。

2.可见进程(visible):

可见进程是一些不再前台,但用户依然可见的进程,举个例来说:widget、输入法等,都属于visible。这部分进程虽然不在前台,但与我们的使用也密切相关,我们也不希望它们被终止(你肯定不希望时钟、天气,新闻等widget被终止,那它们将无法同步,你也不希望输入法被终止,否则你每次输入时都需要重新启动输入法)

3.次要服务(secondary server):

目前正在运行的一些服务(主要服务,如拨号等,是不可能被进程管理终止的,故这里只谈次要服务),举例来说:谷歌企业套件,Gmail内部存储,联系人内部存储等。这部分服务虽然属于次要服务,但很一些系统功能依然息息相关,我们时常需要用到它们,所以也太希望他们被终止

4.后台进程(hidden):

虽然作者用了hidden这个词,但实际即是后台进程(background),就是我们通常意义上理解的启动后被切换到后台的进程,如浏览器,阅读器等。当程序显示在屏幕上时,他所运行的进程即为前台进程(foreground),一旦我们按home返回主界面(注意是按 home,不是按back),程序就驻留在后台,成为后台进程(background)。后台进程的管理策略有多种:有较为积极的方式,一旦程序到达后台立即终止,这种方式会提高程序的运行速度,但无法加速程序的再次启动;也有较消极的方式,尽可能多的保留后台程序,虽然可能会影响到单个程序的运行速度,但在再次启动已启动的程序时,速度会有所提升。这里就需要用户根据自己的使用习惯找到一个平衡点

5.内容供应节点(content provider):

没有程序实体,进提供内容供别的程序去用的,比如日历供应节点,邮件供应节点等。在终止进程时,这类程序应该有较高的优先权

6.空进程(empty):

没有任何东西在内运行的进程,有些程序,比如BTE,在程序退出后,依然会在进程中驻留一个空进程,这个进程里没有任何数据在运行,作用往往是提高该程序下次的启动速度或者记录程序的一些历史信息。这部分进程无疑是应该最先终止的。

总结

简单来说,就是选择退出程序时,并不是完全退出程序,该程序仍然会在后台驻留一个进程,以便下次更快的打开。那什么时候完全关闭该程序呢?这取决于该程序的类型(就是上面讲的那几个类型)。系统会给每个类型的程序一个内存值阈(阀门),也就是说当运行内存低于某个值时,系统会自动按照打开的先后顺序来关闭该类型的程序。例如,当运存小于24MB时,系统才会自动关闭空进程这一类型的程序,释放出更多的内存来供新程序使用,已保证新开程序的正常运行。

综上所述,我们不难看出,很多时候我们没必要过多的去关注系统的空闲内存(RAM)是多少,也没必要特意的去杀掉后台程序,因为系统会自动分配内存,以保证新程序的运行,特殊情况除外,比如你马上就要开一个非常大的游戏,需要更多的内存,这个时候就可以手动杀掉一些后台程序,以保证游戏的流畅。

Android的六大进程相关推荐

  1. Android应用程序进程启动过程的源代码分析(1)

    Android应用程序框架层创建的应用程序进程具有两个特点,一是进程的入口函数是ActivityThread.main,二是进程天然支持Binder进程间通信机制:这两个特点都是在进程的初始化过程中实 ...

  2. Android MarsDaemon实现进程及Service常驻

    前段时间.就讨论过关于怎样让Service常驻于内存而不被杀死,最后的结论就是使用JNI实现守护进程,可是不得不说的是,在没有改动系统源代码的情况下,想真正实现杀不死服务,是一件非常难的事情.眼下除了 ...

  3. Android 解决不同进程发送KeyEvent 的问题

    Android 解决不同进程发送KeyEvent 的问题 参考文章: (1)Android 解决不同进程发送KeyEvent 的问题 (2)https://www.cnblogs.com/TerryB ...

  4. Android中的进程

    2019独角兽企业重金招聘Python工程师标准>>> Android将进程分为6个等级,它们按优先级顺序由高到低依次是: 1.前台进程( FOREGROUND_APP) 2.可视进 ...

  5. 从源码角度看Android系统SystemServer进程启动过程

    SystemServer进程是由Zygote进程fork生成,进程名为system_server,主要用于创建系统服务. 备注:本文将结合Android8.0的源码看SystemServer进程的启动 ...

  6. 从源码角度看Android系统Zygote进程启动过程

    在Android系统中,DVM.ART.应用程序进程和SystemServer进程都是由Zygote进程创建的,因此Zygote又称为"孵化器".它是通过fork的形式来创建应用程 ...

  7. Linux 进程内 全局看见,Android获得全局进程信息以及进程使用的内存情况

    Android获得全部进程信息,并获得该进程使用的内存情况. package linuxidc.process; import java.util.List; import android.os.Bu ...

  8. Android 保持Service不被Kill掉的方法--双Service守护 Android实现双进程守护

    本文分为两个部分,第一部分为双Service守护,第二部分为双进程守护 第一部分: 一.Service简介:Java.lang.Object ↳Android.content.Context  ↳an ...

  9. android任务 进程 线程详解,Android任务、进程、线程详解

    singleTop模式,基本上于standard分歧,仅正在请求的Activity反好位于栈顶时,无所区别.此时,配放成singleTop的Activity,不再会构制新的实例加入到Task栈外,而是 ...

最新文章

  1. iOS开发异常错误总结之——wait_fences: failed to receive reply: 10004003
  2. 在alv list小计之后输出分割线
  3. linux系统中安装和使用rz/sz命令详解
  4. springboot项目修改个人头像
  5. 到底什么是P问题,NP问题,NPC问题,NP-hard问题?什么是规约(或约化)?
  6. 机器学习从零开始-常见算法手推pure python
  7. 安装成功后python报错_python安装Graphviz后报错及解决方法
  8. 现在的00后都这么牛X的吗?
  9. 基于jquery.fixedheadertable 表格插件左侧固定 对齐
  10. anaconda下安装库出现UnsatisfiableError问题的解决办法
  11. ubuntu 挂载优盘
  12. Maven下载及安装配置
  13. 【AAAI 2021】全部接受论文列表(一)
  14. day14_html和css
  15. php 百度地图导航代码,百度地图API自动定位和3种导航
  16. 网易云音乐 linux x32,网易云音乐 Win10 UWP 正式变为 Win32 转制版
  17. linux filp open,Linux Kernel 'do_filp_open()'本地拒绝服务漏洞
  18. 我手机中的舍不得删除的48条笑话,条条经典!! (转自猫扑)
  19. 用户画像 | 标签数据存储之Elasticsearch真实应用
  20. 营销自动化如何帮助你挖掘潜在客户?

热门文章

  1. R语言数学建模(2):how to build a graph
  2. 实现JPanel切换
  3. 计算机专业毕业设计答辩ppt案例,计算机专业 毕业设计答辩PPT.ppt
  4. windows10 javac错误:javac不是内部或外部命令 也不是可运行的程序
  5. 数据库(Mysql)学习
  6. 互联网晚报 | 11/21 星期一 | 31省平均工资发布;​九城不排除重新接盘暴雪魔兽世界;iPhone14Pro发货再次延期...
  7. vue触发模拟点击效果功能
  8. 将远程桌面连接的快捷方式发送到电脑桌面上
  9. Excel的公式:公式基本使用、单元格地址引用、错误值利用、追踪公式利用与追踪错误
  10. BUUCTF笔记之Misc系列部分WriteUp(二)