Android进程类型及优先级(前台进程/可见进程/服务进程/缓存进程/空进程)

Android进程类型及优先级

一、Android 进程优先级

Android 进程优先级 :前台进程 > 可见进程 >服务进程 >缓存进程 > 空进程 ;

  • 关键优先级进程 : 活动进程 ;
  • 高优先级进程 : 可见进程 , 服务进程 ;
  • 低优先级进程 : 后台进程 , 空进程 ;

Android 系统中会尽量保证优先级高的进程的存在时间尽可能长 ;如果资源不足 ( 这里的资源最主要的是内存 ) , 为了可以新建进程 , 以及重要进程的运行 , 系统会杀死一些低优先级进程 , 并回收该进程所占用的内存 ;如果出现内存不足的情况 , 会按照上述进程优先级顺序进行回收 , 从低到高进行

二、前台进程

前台进程的条件:

  1. 前台 Activity 进程 : 当前展示的 Activity 所在的进程 , 即已经调用了 onResume 方法 , 处于前台的界面进程 ;
  2. 绑定前台 Activity 的 Service 进程 : 绑定在 前台正在交互 Activity 上的 Service 进程 ;
  3. 前台运行的 Service 进程 : 在前台运行的 Service 服务 , Service 调用了 startForeground 方法后的状态 ;
  4. 处理生命周期回调的 Service 进程 : 正在执行生命周期回调方法的 Service 服务进程 , 如正在执行 onCreate , onStart , onDestory 方法的 Service 进程 ;
  5. 处理 onReceive 回调的 BroadcastReceiver 进程 : 接收到信息 , 执行 onReceive 方法的 BroadcastReceiver 广播接收者 ;

一般情况下 , 前台进程不会被回收 , 只有内存非常低时 , 无法正常响应用户操作 , 才回收前台进程 ;

三、可见进程

可见进程 : 不是前台组件 , 但是出于用户可见范围内 ;

  1. 绑定 onPause 界面的 Service 进程 : Activity 组件调用 onPause 生命周期函数 , 但是没有调用 onStop 方法彻底不可见的 Activity 组件 , 如弹出对话框 , 对话框是前台进程 , 后面被覆盖的 Activity 就变成了可见进程 ;
  2. 绑定在 可见 Activity 组件上的 Service 进程 , 也被称为可见进程 ;

可见进程也是很重要的进程 , 除非为了保证前台进程的运行 , 一般不会被回收 ;

四、服务进程

  1. 服务进程 : 调用 startService 方法启动的 Service 进程组件 , 就是服务进程 , 其没有与 Activity 组件绑定 , 因此该 Service 组件的优先级要降低一个等级 , 称为服务进程 ;

服务进程没有与用户可见的 Activity 界面有关联 ;服务进程操作一般是比较重要的操作 , 如后台下载 , 数据传输等 , 除非内存不足 , 无法维持可见进程与前台进程 , 一般不会被回收

五、后台进程

后台进程 :

  1. 用户不可见的 Activity 进程 , 如调用了 onStop 方法的 Activity 组件 , 但是没有调用 onDestroy 方法销毁的界面组件 ;

出现后台进程的几种情况 :

  • 打开了新的 Activity 页面 , 没有 finish 掉当前界面 ;
  • 点击 Home 键 , 任务栈进入后台 ;
  • 点击 Menu 键 , 切换了其它任务栈 ;

六、空进程

空进程中不包含任何应用组件 ( Activity , Service , BroadcastReceiver , ContentProvider ) ;
空进程一般用于缓存数据 , 优先级最低 , 系统随时都会终止空进程 ;

附录

相关推荐

  1. <span style='color:red;'>进程</span>

    进程

    2024-04-12 09:16:04      33 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-12 09:16:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-12 09:16:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-12 09:16:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-12 09:16:04       20 阅读

热门阅读

  1. sky07笔记

    2024-04-12 09:16:04       14 阅读
  2. Objective-C学习笔记(基本语法)4.6

    2024-04-12 09:16:04       15 阅读
  3. Django域名根目录文件验证

    2024-04-12 09:16:04       12 阅读
  4. VSCode 作者插件大全

    2024-04-12 09:16:04       14 阅读
  5. html单页使用vue

    2024-04-12 09:16:04       12 阅读
  6. 成为一名程序员:兴趣与职业发展的交汇点

    2024-04-12 09:16:04       13 阅读
  7. 一探究竟:选择排序原理、实现与应用分析

    2024-04-12 09:16:04       16 阅读
  8. linux c多线程简单队列实现

    2024-04-12 09:16:04       14 阅读
  9. 嵌入式之面向对象篇(四)

    2024-04-12 09:16:04       15 阅读
  10. 2812: 【算法思想】【双指针】最小差

    2024-04-12 09:16:04       13 阅读