作为一个多任务的系统,Android 系统当然能够尽可能长的保留一个应用进程,但是由于新的或者更重要的进程需要更多的内存,系统不得不逐渐终结老的进程来获取内存。为了声明哪些进程需要保留,哪些需要kill,系统根据这些进程里面的组件以及这些组件的状态为每个进程生成了一个“重要性层级” 。处于最低重要性层级的进程将会第一时间被清除,接着时重要性高一点,然后依此类推,根据系统需要来终结进程。

在这个重要性层级里面有5个等级。下面按照重要性排序展示了不同类型的进程(第一种进程是最重要的,因此将会在最后被kill):

Android中进程优先级顺序如下:

第一高:前台进程 (Foreground 进程)

前台进程是Android系统中最重要的进程,是与用户正在交互的进程。(当前处于最前端的activity,也就是Android最后考虑杀死的对象。一般来说,前台进程Android系统是不会杀死的。)

第二高:可见进程 (Visible 进程)

可见进程指部分程序界面能够被用户看见,却不在前台与用户交互。可以理解为当前屏幕上可以看到的activity,例如显示一个对话框的activity,那么对话框变成了前台进程,而调用他的activity是可见进程,但并不是前台的。

第三高:服务进程 (Service 进程)

一个包含已启动服务的进程就是服务进程,服务没有用户界面,不与用户直接交互,但能够在后台长期运行,提供用户所关心的重要功能。亦即Service,当系统资源不足时,系统可能会杀掉正在执行任务的Service。因此在Service执行比较耗时的操作,并不能保证一定能执行完毕。

第四高:后台进程 (Background 进程)

如果一个进程不包含任何已经启动的服务,而且没有用户可见的Activity,则这个进程就是后台进程。(包含不可见的Activity,即跳转到其他activity后,由于资源不足,系统会将原来的activity杀死(即跳转的来源)。)

第五高:空进程 (Empty 进程)

空进程是不包含任何活跃组件的进程。在系统资源紧张时会被首先清除。(这是Android系统优先杀死的,因为此时该进程已经没有任何用途。)

56. Android中进程优先级小结的更多相关文章

  1. android中listView下拉刷新

    Android的ListView是应用最广的一个组件,功能强大,扩展性灵活(不局限于ListView本身一个类),前面的文章有介绍分组,拖拽,3D立体,游标,圆角,而今天我们要介绍的是另外一个扩展Li ...

  2. Android中Fragment与Activity之间的交互(两种实现方式)

    (未给Fragment的布局设置BackGound) 之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文<Android中Fragment的两种创建方式>,就如 ...

  3. Android中关于cpu/cpuset/schedtune的应用

    Android中关于cpu/cpuset/schedtune的应用都是基于进程优先级的,根据不同优先级划分进程类型.AMS(ActivityManagerService)和PMS(PackageMan ...

  4. Android中后台的劳动者“服务”

    前言 作为四大组件之一的Service,想必不少开发者都是了解的,那具体熟悉吗?是不是对Service中的每个知识点是否了解,它与Activity的关系又是什么样的,我们所理解的后台服务跟Servic ...

  5. Ionic中使用Chart.js进行图表展示以及在iOS/Android中的性能差异

    Angular Chart 简介 在之前的文章中介绍了使用 Ionic 开发跨平台(iOS & Android)应用中遇到的一些问题的解决方案. 在更新0.1.3版本的过程中遇到了需要使用图表 ...

  6. Android中的颜色设置

    1.在android中经常看到设置的颜色为八位的十六进制的颜色值,例如 public static final class color { public static final int lightb ...

  7. Android中使用AlarmManager进程被删除的解决办法

    http://blog.csdn.net/zhouzhiwengang/article/details/13022325 在Android中,AlarmManager提供了不受休眠状态的系统定时功能, ...

  8. Android中如何设置RadioButton在文字的右边,图标在左边

    from:http://blog.csdn.net/sunnyfans/article/details/7901592?utm_source=tuicool&utm_medium=referr ...

  9. Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878本文出自[DylanAndroid的博客] Android中Vie ...

随机推荐

  1. apt-get update更新源时,出现“Hash Sum mismatch”问题

    当使用apt-get update更新源时,出现下面"Hash Sum mismatch"的报错,具体如下:root@localhost:~# apt-get update.... ...

  2. JavaScript中正则表达式test()、exec()、match() 方法区别

    1.test test 返回 Boolean,查找对应的字符串中是否存在模式.var str = "1a1b1c";var reg = new RegExp("1.&qu ...

  3. github上传

    创建全局的name和email 1.创建ssh(使用命令)$ssh-keygen -t rsa -C xxxxx@gmail.com(注册github时的email)2.在github中添加ssh 登 ...

  4. 让 HTML5 来为你定位

    Geolocation HTML5 的 geolocation 是一个令人兴奋的 API,通过这套 API,Javascript 代码就能够访问到用户的当前位置.当然,访问之前必须得到用户的明确认可, ...

  5. Nginx+Varnish 实现动静分离,为服务器分流,降低服务器负载

    相必大家在看加快网站响应速度方面的文章时,都提过这么一条:动静分离.那怎样实现动静分离呢,这里笔者就亲自搭建相关服务实现动静分离. 动静分离是一种架构,就是把静态文件,比如JS.CSS.图片甚至有些静 ...

  6. ASP.NET 系列:单元测试之SmtpClient

    使用SmtpClient发送Email时,我们可以创建ISmtpClient接口和SmtpClientWrapper适配类,在单元测试中对ISmtpClient进行Mock或自定义FackeSmtpC ...

  7. 项目分享二:APP 小红点中数字的处理

    小红点,是 APP 中最常见的一个功能,我们先来看一下面的案例,下图中,待评价的商品有 2 个,点击“评价晒单”按钮进行评价后,那么待评价数量应该变成 1,那么这个功能是如何去实现的呢? 一般来说,实 ...

  8. 网页样式——各种炫酷效果持续更新ing...

    1.evanyou效果-彩带的实现,效果如下 注:这个主要用的是Canvas画布实现的,点击背景绘制新的图形,代码如下: /*Html代码:*/ <canvas id=">< ...

  9. HIbernate的对象状态

    *临时状态对象: session中没有缓存,且在数据库中没有对应数据. User user1=new User(null,"c50",18); *持久化状态对象: session中 ...

  10. java 数据绑定的几种方式及相关注意事项-持续更新

    spring mvc 中会遇到各种数据绑定,有些不常用的,但是千万不要觉得不可以,没有什么是不可以的,只要能够想到,就可以. 数据绑定方式: 1. 注意: 当数据为包装类型的数字型时,如果Long h ...