Android的5个进程等级

Android  2018年7月26日 pm4:35发布6年前 (2018)更新 91es.com站长
46 0 0

 

一、进程:

进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。进程是系统进行资源分配和调度的一个独立单位。可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体,是一个“执行中的程序”。不只是程序的代码,还包括当前的活动。

二、线程:

线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程比进程更小,基本上不拥有系统资源,故对它的调度所用资源小,能更高效的提高系统内多个程序间并发执行的程度。

三、Android的5个进程等级:

Foreground process(前台进程)

1、正处于activity resume状态

2、正处于bound服务交互的状态

3、正处于服务在前台运行的状态(StartForeGround()被调用)

4、Service生命周期正在被执行(onCreate(),onStart(),onDestroy())

5、BroadcastReceiver正在执行onReceive()方法

6、杀死foreground需要用户响应,因为这个安全优先级是最高的

是用户操作所必须的,任一时间下,仅有少数进程会处于前台,仅当内存实在无法供给它们维持同时运行时才会被杀死。一般来说,在这种情况下,设备依然处于使用虚拟内存的状态,必须要杀死一些前台进程以用户界面保持响应。

Android会依据进程中当前活跃组件的重要程度来尽可能高的估量一个进程的级别。比如说,如果一个进程中同时有一个服务和一个可视的activity,则进程会被判定为可视进程,而不是服务进程。

Visible process(可见进程)

    activity不在前端显示,但也没有完全隐藏,能够看得见,比如弹出一个对话框
    一个bound到visible或者foreground的activity的service
    没有前台组件,但仍可被用户在屏幕上所见。当满足如下任一条件时,进程被认为是可视的:
它包含着一个不在前台,但仍然为用户可见的activity(它的onPause()方法被调用)。这种情况可能出现在以下情况:比如说,前台activity是一个对话框,而之前的    activity位于其下并可以看到。
它包含了一个绑定至一个可视的activity的服务。
可视进程依然被视为是很重要的,非到不杀死它们便无法维持前台进程运行时,才会被杀死。

Service process(服务进程)

    正在运行的,不在上述两种状态的service
是由 startService() 方法启动的服务,它不会变成上述两类。尽管服务进程不会直接为用户所见,但它们一般都在做着用户所关心的事情(比如在后台播放mp3或者从网上下载东 西)。所以系统会尽量维持它们的运行,除非系统内存不足以维持前台进程和可视进程的运行需要。

Background process(后台进程)

    不可见状态的activity进程,onstop被调用
    包含目前不为用户所见的activity(Activity对象的 onStop() 方法已被调用)。这些进程与用户体验没有直接的联系,可以在任意时间被杀死以回收内存供前台进程、可视进程以及服务进程使用。一般来说,会有很多背景进程 运行,所以它们一般存放于一个LRU(最后使用)列表中以确保最后被用户使用的activity最后被杀死。如果一个activity正确的实现了生命周 期方法,并捕获了正确的状态,则杀死它的进程对用户体验不会有任何不良影响。

Empty process(空进程)

    没有运行任何component的进程,保留这个进程主要是为了缓存的需要
    不包含任何活动应用程序组件。这种进程存在的唯一原因是做为缓存以改善组件再次于其中运行时的启动时间。系统经常会杀死这种进程以保持进程缓存和系统内核缓存之间的平衡。
此外,一个进程的级别可能会由于其它进程依赖于它而升高。一个为其它进程提供 服务的进程级别永远高于使用它服务的进程。比如说,如果A进程中的内容提供者为进程B中的客户端提供服务,或进程A中的服务为进程B中的组件所绑定,则A 进程最低也会被视为与进程B拥有同样的重要性。
PS:这个是以前摘抄于有道笔记上的,忘记附上来源,不好意思。

 历史上的今天

  1. 2023: JNI之数组简单操作(0条评论)
  2. 2021: 刘年:写给儿子刘云帆(0条评论)
  3. 2019: 刘瑜:适应孤独,就像适应一种残疾(0条评论)
版权声明 1、 本站名称: 91易搜
2、 本站网址: 91es.com3xcn.com
3、 本站内容: 部分来源于网络,仅供学习和参考,若侵权请留言
3、 本站申明: 个人流水账日记,内容并不保证有效

暂无评论

暂无评论...

随机推荐

拜伦:当初我们俩分别

想从前我们俩分手, 默默无言地流着泪, 预感到多年的隔离, 我们忍不住心碎; 你的脸冰凉、发白, 你的吻更似冷冰, 呵,那一刻正预兆了 我今日的悲痛。 清早凝结着寒露, 冷彻了我的额角, 那种感觉仿佛是 对我此刻的警告。 你的誓言全破碎了, 你的行为如此轻浮: 人家提起你的名字, 我听了也感...

海子:面朝大海,春暖花开

从明天起,做一个幸福的人喂马,劈柴,周游世界从明天起,关心粮食和蔬菜我有一所房子,面朝大海,春暖花开 从明天起,和每一个亲人通信告诉他们我的幸福那幸福的闪电告诉我的我将告诉每一个人 给每一条河每一座山取一个温暖的名字陌生人,我也为你祝福愿你有一个灿烂的前程...

adb shell settings 参数命令集合

前言Android中配置有很多参数,一般可以通过Log日志打印,但是想偷懒因此这里介绍部分参数可以通过命令直接查看配置的值。下面就介绍一些使用adb shell settings 等命令获取Android中配置的值。PS:注意红色字体,不同的settings参数获取的方式不同小结用了ge...

Thread.join()简单介绍

前言简单记录一下Thread.join()的作用。这里只是简单记录一下,方便自己回顾而已。正文join()是在Thread.java中定义join源码/** * Waits for this thread to die.[等待这个线程死亡] * @throws Interrupt...

麦芒:今夜的火花今夜就会熄灭

今夜的火花今夜就会熄灭告诉我的不是一个人而是两个人、三个人……先微笑,然后是沉默和迷惘在数着星星的过程中也许会忘记自己眉毛底下两颗最有人性的眸子它们离我一样遥不可及而我多么疲惫,多么恍惚好像一个白昼尚未结疤的伤口,有着腐败的肉和新鲜的血,无人用嘴吮吸手指,手指在跳动,仿佛弹...

Bing(必应)不收录网站或被K的申诉方法

前言简单记录一下Bing不收录或被kill问题。我这站之前是有收录的,不知道为啥突然Bing不显示收录的内容了。正文这里只是记录一下,以前被kill也是这样解决的。第一步登入Bing站长工具官网https://www.bing.com/webmasters/home如果没有注册就新注...