56. Android中进程优先级小结
作为一个多任务的系统,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中进程优先级小结的更多相关文章
- android中listView下拉刷新
Android的ListView是应用最广的一个组件,功能强大,扩展性灵活(不局限于ListView本身一个类),前面的文章有介绍分组,拖拽,3D立体,游标,圆角,而今天我们要介绍的是另外一个扩展Li ...
- Android中Fragment与Activity之间的交互(两种实现方式)
(未给Fragment的布局设置BackGound) 之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文<Android中Fragment的两种创建方式>,就如 ...
- Android中关于cpu/cpuset/schedtune的应用
Android中关于cpu/cpuset/schedtune的应用都是基于进程优先级的,根据不同优先级划分进程类型.AMS(ActivityManagerService)和PMS(PackageMan ...
- Android中后台的劳动者“服务”
前言 作为四大组件之一的Service,想必不少开发者都是了解的,那具体熟悉吗?是不是对Service中的每个知识点是否了解,它与Activity的关系又是什么样的,我们所理解的后台服务跟Servic ...
- Ionic中使用Chart.js进行图表展示以及在iOS/Android中的性能差异
Angular Chart 简介 在之前的文章中介绍了使用 Ionic 开发跨平台(iOS & Android)应用中遇到的一些问题的解决方案. 在更新0.1.3版本的过程中遇到了需要使用图表 ...
- Android中的颜色设置
1.在android中经常看到设置的颜色为八位的十六进制的颜色值,例如 public static final class color { public static final int lightb ...
- Android中使用AlarmManager进程被删除的解决办法
http://blog.csdn.net/zhouzhiwengang/article/details/13022325 在Android中,AlarmManager提供了不受休眠状态的系统定时功能, ...
- Android中如何设置RadioButton在文字的右边,图标在左边
from:http://blog.csdn.net/sunnyfans/article/details/7901592?utm_source=tuicool&utm_medium=referr ...
- Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案
转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53205878本文出自[DylanAndroid的博客] Android中Vie ...
随机推荐
- NOIP2015 Revenge
辣鸡出题人,毁我比赛,颓我精神,耗我钱财,废我青春. 去年成绩惨不忍睹就不说了...好像是100+80+0+100+50+60. 大概列一下算法. 幻方:模拟 #include <iostrea ...
- html post和get的区别
一直以来,都对这两个概念有一个感性的认识,今天总结一下: 1.Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据. 2.Get将表单中数据的按照variable=value的形式,添加 ...
- QT QT练习一
界面中通过三个 QLineEdit控件,一个QPushButton实现+ - * /四则运算,点击pushbutton后将运算结果显示在QLabel控件上. #ifndef WIDGET_H #def ...
- 详解c++指针的指针和指针的引用
展示一下使用指针的指针和指针的引用修改传递给方法的指针,以便更好的使用它.(这里说的指针的指针不是一个二维数组) 为什么需要使用它们 当我们把一个指针做为参数传一个方法时,其实是把指针的复本传递给了方 ...
- Webwork 学习之路【05】请求跳转前 xwork.xml 的读取
个人理解 WebWork 与 Struts2 都是将xml配置文件作为 Controler 跳转的基本依据,WebWork 跳转 Action 前 xml 文件的读取依赖 xwork-1.0.jar, ...
- PHP 对于 MYSQL 基础操作
基础 <?php // 不打印 notice info // error_reporting(0); // 连接 mysql $con = mysql_connect("localho ...
- Jump Game 的三种思路 - leetcode 55. Jump Game
Jump Game 是一道有意思的题目.题意很简单,给你一个数组,数组的每个元素表示你能前进的最大步数,最开始时你在第一个元素所在的位置,之后你可以前进,问能不能到达最后一个元素位置. 比如: A = ...
- 开源--豆瓣小组UWP,已上架应用商店
1.前言 豆瓣小组是我和我老婆都比较喜欢的豆瓣家族里面的一款产品.平时加入了一些小组,偶尔打开看下新鲜的帖子,可以打发一下无聊的时间. 豆瓣小组UWP是我前几周在家里开发的一款windows 10应用 ...
- jQuery操作单选按钮(radio)用法
1.获取选中值,四种方法都可以: $('input:radio:checked').val():$("input[type='radio']:checked").val(); $( ...
- Code First操作Mysql数据库
前面博客也讲了,自己做一个网站,选用的是MVC+EF Code First+MySql+EasyUI,先说下技术选型.一.为什么选择MVC? 因为之前自己做的系统大部分是webForm,MVC的之前也 ...