`

Android 的应用程序的优先级和进程状态

阅读更多

 回收资源的时候,进程被终止的顺序是由它们的承载(hosted)应用程序的优先级所决定的。一个应用程序的优先级等同于它优先级最高的组件的优先级。(一个应用程序的优先级是根据 组件的优先级进行判断的(组件有 活动(Activity),后台(Service),内容提供者(ContentProvider),Intent(内容通信协议),广播(BroadcastReceiver)))

当两个应用程序有相同的优先级时,处于较低优先级且运行时间最长的进程将会首先被终止。
进程的优先级也受到进程间依赖性的影响,如果一个应用程序依赖于第二个应用程序所提供的服务或者内容提供器,那么第二个应用程序至少会拥有与它所支持的这个应用程序相同的优先级。

通过合理地组织应用程序来保证它具有能够正常工作的适当的优先级是非常重要的。如果没有做到这一点,则应用程序就可能在某些比较重要的时刻被终止。

 

应用程序优先级树



 

1.活动进程
  活动(前台)的进程是指那些有组件正和用户进行交互的承载应用程序的进程。这些都是Android尝试通过回收资源来保持效应的进程。这些进程的数量非常少,只有到最后的关头才会终止这些进程。
  活动进程包括:
 · 处于“活动”状态的Activity(活动),也就是说,它们位于前台对用户事件进行响应。
        · 正在执行onReceive 事件处理函数的活动、服务或者广播接收器。
 · 正在执行onStart、onCreate或者onDestroy事件处理函数的服务。
2.可见进程
  可见、但是非活动的进程,是指那些承载“可见”活动的进程。可见的活动能被用户看到,但是它们并不在前台运行或者能对用户事件做出反应。eg:当一个活动被部分遮挡时(被一个非全屏或者半透明的活动遮挡)就会出现这种情况。这些进程的数量也很少,只有在资源极度缺乏的环境下,为了保证活动进程继续执行时才会终止这些进程。
3.启动服务进程
  已经启动的承载服务进程。服务支持在没有可见界面的情况下,仍然能够继续不间断的处理。因为服务进程没有直接和用户交互,所以它们的优先级要比可见进程低一些。但是它们仍然被认为是前台进程,直到活动或者可见的进程需要资源的时候,才会终止它们。
4.后台进程
  那些承载不可见活动的,并且也没有已经启动的任何服务的进程即为后台进程。通常会有大量的后台进程,Android将使用“最后一个被看到,第一个被杀死”的方式来终止它们,从而为前台进程提供资源。
5.空进程
  为了提高系统整体性能,Android经常在应用程序的生存期结束之后仍然把它们保存在内存中。Android通过维护这个缓存来减少应用程序被再次启动时的启动时间。通常这些进程会按照要求被定期终止。

 

活动状态:



 

 

  • 大小: 108 KB
  • 大小: 120 KB
分享到:
评论

相关推荐

    Android高级编程--源代码

    3.5 理解应用程序的优先级和进程状态 49 3.6 分离资源 50 3.6.1 创建资源 50 3.6.2 使用资源 57 3.6.3 To-Do List资源示例 60 3.6.4 为不同的语言和硬件创建资源 61 3.6.5 运行时配置更改 62 3.7 深入探讨...

    Android高级编程 part1

     3.5 理解应用程序的优先级和进程状态  3.6 分离资源  3.6.1 创建资源  3.6.2 使用资源  3.6.3 To-DoList资源示例  3.6.4 为不同的语言和硬件创建资源  3.6.5 运行时配置更改  3.7 深入探讨Android活动  ...

    Android高级编程 part2

     3.5 理解应用程序的优先级和进程状态  3.6 分离资源  3.6.1 创建资源  3.6.2 使用资源  3.6.3 To-DoList资源示例  3.6.4 为不同的语言和硬件创建资源  3.6.5 运行时配置更改  3.7 深入探讨Android活动  ...

    《Android高级编程》

    2.5 小结 第3章 创建应用程序和活动 3.1 Android应用程序的组成部分 3.2 程序清单简介 3.3 使用清单编辑器 3.4 Android应用程序生命周期 3.5 理解应用程序的优先级和进程状态 3.6 分离资源 3.6.1 创建资源 3.6.2 ...

    Android高级编程.pdf

    3.5 理解应用程序的优先级和进程状态 3.6 分离资源 3.6.1 创建资源 3.6.2 使用资源 3.6.3 To-DoList资源示例 3.6.4 为不同的语言和硬件创建资源 3.6.5 运行时配置更改 3.7 深入探讨Android活动 3.7.1 创建一个活动 ...

    四、Android程序生命周期-Android开发与实践

    了解Android系统的进程优先级的变化方式 了解Android系统的四大基本组件 了解Activity的生命周期中各状态的变化关系 掌握Activity事件回调函数的作用和调用顺序 ... 掌握Android应用程序的调试方法和工具

    Android系统中的进程管理:进程的创建

    对于操作系统来说,进程管理是其最重要的...通过proc文件系统来查询和调整进程状态等对于Android来说,进程管理的主要内容包括以下几个部分内容:1.进程的创建2.进程的优先级管理3.进程的内存管理4.进程的回收和死亡处

    新版Android开发教程.rar

    Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...

    android开发秘籍

    1.5.1 多进程和应用程序微件 8 1.5.2 触摸、手势和多点触控 8 1.5.3 硬键盘和软键盘 8 1.6 android 开发 8 1.6.1 如何使用本书中的秘诀 8 .1.6.2 好好设计应用程序 9 1.6.3 保持向前兼容 9 1.6.4 健壮性 10 ...

    3C Toolbox Pro 1.9.9.7.6C.apk

    ◊所有的Android应用程序或全部进程,电池,CPU,网络,内存 ◊组件状态(WiFi,蓝牙,GPS,3G,电话,APN) ►状态栏通知 ◊电池,CPU,内存,SD,温度可选配下拉图形 ◊在顶部或底部添加电池剩余条 ◊取出原装电池...

    安卓复习.Part1

    安卓架构图 XML资源文件 Android的资源可分为两...Android根据应用程序的组件及其组件当前的运行状态将所有的进程按照重要性程度从高到低分为了五个优先级: 前台进程; 可见进程; 服务进程; 后台进程; 空进程; A

    androidReview:青岛理工大学15级安卓复习知识点

    其他特性很像Activity比后台Activity优先级高,不会被轻易终止即使service被终止,当系统资源恢复的时候,也将自动恢复运行状态,(onStartCommand 返回 START_STICKY)用于进程之间通信,解决两个安卓应用程序之间...

Global site tag (gtag.js) - Google Analytics