Android中的进程优先级

作者: zhangxuanchen | 来源:发表于2017-01-22 23:16 被阅读37次

转载:http://blog.csdn.net/codezjx/article/details/8854507

(1)前台进程
是用户操作所必须的,任一时间下,仅有少数进程会处于前台,这样的进程拥有一个在屏幕上显示并和用户交互的 activity 或者它的一个IntentReciver 正在运行。仅当内存实在无法供给它们维持同时运行时才会被杀死。一般来说,在这种情况下,设备依然处于使用虚拟内存的状态,必须要杀死一些前台进程以用户界面保持响应。

(2)可视进程
没有前台组件,但仍可被用户在屏幕上所见。当满足如下任一条件时,进程被认为是可视的:

●它包含着一个不在前台,但仍然为用户可见的activity(它的onPause()方法被调用)。这种情况可能出现在以下情况:比如说,前台activity是一个对话框,而之前的Activity位于其下并可以看到。

●它包含了一个绑定至一个可视的activity的服务。

可视进程依然被视为是很重要的,非到不杀死它们便无法维持前台进程运行时,才会被杀死。

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

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

(5)空进程
不包含任何活动应用程序组件。这种进程存在的唯一原因是做为缓存以改善组件再次于其中运行时的启动时间。系统经常会杀死这种进程以保持进程缓存和系统内核缓存之间的平衡。

注意以下几点:
(1)若我们直接在Activity中新开一条线程来做耗时操作,当该Activity退出到桌面这个线程将成为一个背景进程。

(2)若我们在Service中新启动线程,则此时Android会依据进程中当前活跃组件重要程度,将其判断为服务进程,优先级比(1)高。

(3)当一个Activity或者一个Service中启动一个线程,Activity调用了finish(),Service调用了stopService() ,而线程却没有被停止。这时这个线程就会变成一个背景进程,等待虚拟机的回收。这样做会大量消耗系统资源,所以还是在onDestory()方法中把该关的都关了吧。

相关文章

  • Android中关于cpu/cpuset/schedtune的应

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

  • Android进程基础知识

    Android 进程知识 进程优先级 Android系统的进程总共分为5级: Forground Process ...

  • Service

    1.基本概念 Service的特点 2.Android中的进程 在Android 中进程优先级由高到低,依次分为:...

  • Android进程保活

    Android进程保活 提高进程优先级,是指不容易被杀死 进程死亡后,及时拉起 方向一. 提高进程优先级 提高进程...

  • 技能树-android基础-四大组件

    进程优先级 android进程优先级有五个阶段 1.前台进程 与当前用户正在交互的组件所在的进程 2.可见进程 组...

  • Android周报第二十三期

    1)生还是死?Android 进程优先级详解 android中进程的分类 2)给 Android 开发者的 RxJ...

  • Android进程保活

    1、像素保活 2、提升进程优先级(前台进程) 3、进程间相互唤醒(Android5.0以前可用,Android 5...

  • Android进程优先级

    在安卓系统中: 当系统内存不足时,Android系统将根据进程的优先级选择杀死一 些不太重要的进程,优先级低的先杀...

  • Android进程优先级

    在安卓系统中:当系统内存不足时,Android系统将根据进程的优先级选择杀死一些不太重要的进程,优先级低的先杀死。...

  • Android进程的优先级问题

    在安卓系统中:当系统内存不足时,Android系统将根据进程的优先级选择杀死一些不太重要的进程,优先级低的先杀死。...

网友评论

    本文标题:Android中的进程优先级

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