`

Android的5个进程等级 .

 
阅读更多
来自:http://blog.csdn.net/llbupt/article/details/7358360 
1、foreground process
    正处于activity resume状态
    正处于bound服务交互的状态
比如: 一个MainActivity调用了 百度定位,在没有定位完成的时候,MainActivity 就onDestroy 就会出现 bound错误。而没有销毁 百度定位服务。
    正处于服务在前台运行的状态(StartForeGround()被调用)
    Service生命周期正在被执行(onCreate(),onStart(),onDestroy())
    BroadcastReceiver正在执行onReceive()方法
    杀死foreground需要用户响应,因为这个安全优先级是最高的
    是用户操作所必须的,任一时间下,仅有少数进程会处于前台,仅当内存实在无法供给它们维持同时运行时才会被杀死。一般来说,在这种情况下,设备依然处于使用虚拟内存的状态,必须要杀死一些前台进程以用户界面保持响应。
•Android会依据进程中当前活跃组件的重要程度来尽可能高的估量一个进程的级别。比如说,如果一个进程中同时有一个服务和一个可视的activity,则进程会被判定为可视进程,而不是服务进程。
2、visible process
    activity不在前端显示,但也没有完全隐藏,能够看得见,比如弹出一个对话框
    一个bound到visible或者foreground的activity的service
    没有前台组件,但仍可被用户在屏幕上所见。当满足如下任一条件时,进程被认为是可视的:
• 它包含着一个不在前台,但仍然为用户可见的activity(它的onPause()方法被调用)。这种情况可能出现在以下情况:比如说,前台activity是一个对话框,而之前的    activity位于其下并可以看到。
• 它包含了一个绑定至一个可视的activity的服务。
可视进程依然被视为是很重要的,非到不杀死它们便无法维持前台进程运行时,才会被杀死。
3、Service process
    正在运行的,不在上述两种状态的service
是由 startService() 方法启动的服务,它不会变成上述两类。尽管服务进程不会直接为用户所见,但它们一般都在做着用户所关心的事情(比如在后台播放mp3或者从网上下载东 西)。所以系统会尽量维持它们的运行,除非系统内存不足以维持前台进程和可视进程的运行需要。
4、background process
    不可见状态的activity进程,onstop被调用
    包含目前不为用户所见的activity(Activity对象的 onStop() 方法已被调用)。这些进程与用户体验没有直接的联系,可以在任意时间被杀死以回收内存供前台进程、可视进程以及服务进程使用。一般来说,会有很多背景进程 运行,所以它们一般存放于一个LRU(最后使用)列表中以确保最后被用户使用的activity最后被杀死。如果一个activity正确的实现了生命周 期方法,并捕获了正确的状态,则杀死它的进程对用户体验不会有任何不良影响。
5、empty process
    没有运行任何component的进程,保留这个进程主要是为了缓存的需要
    不包含任何活动应用程序组件。这种进程存在的唯一原因是做为缓存以改善组件再次于其中运行时的启动时间。系统经常会杀死这种进程以保持进程缓存和系统内核缓存之间的平衡。
此外,一个进程的级别可能会由于其它进程依赖于它而升高。一个为其它进程提供 服务的进程级别永远高于使用它服务的进程。比如说,如果A进程中的内容提供者为进程B中的客户端提供服务,或进程A中的服务为进程B中的组件所绑定,则A 进程最低也会被视为与进程B拥有同样的重要性。
分享到:
评论

相关推荐

    Android-提高android服务进程的优先级

    首先,理解Android进程的生命周期和优先级至关重要。Android系统根据各个应用组件所处的进程的重要性,将其分为多个等级,包括前台进程、可见进程、重要服务进程、后台进程和服务进程。优先级越高,系统在内存不足时...

    【腾讯Bugly干货分享】Android 进程保活招式大全1

    Android将进程分为五个等级,按重要性排序: - **前台进程**:当前用户正在直接交互的进程,如运行中的Activity和前台Service,系统极少见会终止这类进程。 - **可见进程**:虽不处于前台,但对用户可见,如暂停的...

    android进程保活

    1. **进程等级**:Android系统根据进程与用户交互的重要性将其分为五级:前台进程、可见进程、服务进程、后台进程和空进程。保活策略主要针对服务进程和后台进程,因为它们较容易被系统回收。 2. **服务(Service)...

    基于Android系统的取证技术分析.pdf

    Root是获取Android设备最高等级权限的过程,这样用户就可以完全控制设备,包括修改系统文件、删除预装应用、提升设备性能等。对于取证人员来说,Root设备同样可以提供对设备文件系统的完全访问权限,从而更深入地...

    基于android模拟考试系统源代码.zip

    在移动设备日益普及的今天,教育领域的数字化进程也愈发加速,基于Android平台的模拟考试系统成为了教学辅助的重要工具。本系统采用Java编程语言,利用Apache开源技术,实现了包括单选题、多选题、判断题在内的全面...

    Android 5.0系统以上获取运行进程demo

    这个类提供了关于当前正在运行的应用进程的详细信息,包括进程的importance等级、进程名以及关联的包名等。你可以通过注册`BroadcastReceiver`监听`ACTION_TASK_RESUMED`和`ACTION_TASK_PAUSED`广播来间接获取进程...

    littlelight,Little Light是一款针对iOS和Android的Destiny 2库存管理器/配套应用程序。它帮助守护者移动他们的装备并跟踪他们的进程。.zip

    这时,一款名为"Little Light"的应用程序应运而生,它是一款专为iOS和Android用户设计的Destiny 2库存管理器和配套应用,旨在帮助守护者更高效地管理装备,轻松追踪游戏进程。 Little Light的核心功能在于其库存...

    Android 仿雷电简单飞行游戏.rar

    9. **进化功能**:游戏中的进化功能可能指的是飞机或武器随着游戏进程升级,这需要一个升级系统,可能包含经验值积累、等级提升、属性加成等。 10. **用户界面**(UI):游戏界面的设计和交互也是重要组成部分,...

    安卓Android源码——PixelTowers.zip

    除了四大组件,Android源码还包括了UI设计、资源管理、多线程处理、动画效果、内存管理等多个方面。例如: - UI设计:Android提供了丰富的View和Layout控件,如ImageView、TextView、LinearLayout等,PixelTowers的...

    获取手机正在运行的app,以及当前前台正在运行的app(兼容android6.0)

    `RunningAppProcessInfo`对象包含了关于正在运行的应用进程的信息,如进程ID、重要性等级和包名等。 3. **解析数据**:在获取到`RunningAppProcessInfo`列表后,你可以遍历它来获取每个应用的详细信息,比如找出...

    linux,Android基础知识总结.pdf

    【知识点详解】 1. **Android编译系统分析** ...以上知识点涵盖了Linux和Android的基础知识,包括编译系统、文件系统构建、网络启动、内核模块管理等多个方面,对于理解和开发Android系统至关重要。

    Android LMK机制简介

    1. **进程优先级**:根据进程的类型和当前状态,Android会赋予每个进程不同的优先级。 2. **生命周期管理**:进程的生命周期管理对于内存管理非常重要。例如,当内存紧张时,Android会优先终止那些处于非活跃状态的...

    小米刷机方法

    在Android系统中,ROOT权限是指获取到系统最高等级的控制权,类似于Windows系统中的管理员权限。获得ROOT权限后,用户可以修改系统文件,安装需要超级权限的应用,甚至对系统进行深度定制。但同时,ROOT也有风险,...

    Android清单权限中文详细说明.pdf

    ### Android清单权限中文详细说明 #### 概述 在Android应用开发过程中,权限管理是非常重要的一环。合理的权限设置不仅可以保障应用的安全性,还可以提升用户体验。本文档详细介绍了部分Android清单文件中的权限项...

    Activity_Hijack.apk

    用途:该工具主要用于APP劫持检测。 使用方法:安装HijackActivity.apk,使用 activity 界面...除此之外,因为Android进程栈的工作原理,建议开发客户端时针对进程栈进行相应的保护,可禁止其他进程放置于客户端之上。

    android SQLite保存多个选择题信息

    SQLite是一个开源的关系型数据库,它不需要单独的服务器进程,并且可以嵌入到应用程序中。在Android中,每个应用都有自己的SQLite数据库,可以通过`SQLiteOpenHelper`类来创建和管理数据库,以及通过`SQLiteDatabase...

    074集-进程的优先级

    2. Android进程生命周期和状态转换。 3. 进程优先级的分类及其影响因素。 4. 如何通过编程方式改变进程优先级。 5. OOM Killer的工作原理和内存管理策略。 6. JobScheduler和WorkManager的使用方法及其优势。 理解...

    android考试复习资料

    Android 系统中的进程优先级从高到低分为多个等级,这决定了应用的执行效率和资源分配。在 Android 应用中,主要的四大组件是 Activity、Service、BroadcastReceiver 和 ContentProvider。 Activity 是应用程序的...

    Android系统Root权限获取与检测.pdf

    当一个Android设备被Root,意味着获得了系统最高等级的权限,即root用户权限。Root用户可以无视原有的权限限制,执行各种高级操作,例如修改系统文件、删除预装应用、调整系统设置以及访问硬件接口等。然而,Root...

Global site tag (gtag.js) - Google Analytics