Android会主动管理自己的资源,它会采取任何措施来保证稳定流畅的用户体验。这就意味着,在android管理进程的时候,会在没有任何提示或警告的前提下,终止一些进程,以便为优先级高的进程提供资源。

在Android回收资源的时候,进程的终止顺序是根据进程的优先级来决定的。一个应用程序的优先级等同于它所包含最高优先级的组件的优先级。

当两个应用程序具有相同优先级,Android需要释放资源时,运行时间最长的应用程序会首先被终止(释放资源)。

当一个应用程序A依赖于另一个应用程序B所提供的某些支持(Service或Content Provider),那么应用程序B会拥有与应用程序A相同的优先级。

所有的应用程序都会保持在内存中,直到Android需要释放它的资源提供给其它应用程序为止。

Android进程从优先级角度可以分为以下几个类型(优先级由高到低排列):

1.Active进程(前台进程),它的组件正在与用户交互,为保证稳定流畅的交互,Android都是通过释放其它进程资源以保持前台进程的响应,所以Active进程拥有最高的优先级。

2.可见进程:是指被用户“可见”的,但是不响应用户操作的进程,比如被一个非全屏或半透明的activity遮挡时,就会出现可见进程

3.Service进程,Service没有用户界面,一般在后台提供服务,比如音乐、下载;除非可见进程或者Active进程需要资源时,这一类进程不会轻易的终止,再终止过后,当系统有资源时,这类进程会重新启动。

4.后台进程:指不可见,也不提供任何服务的进程,这类进程会按照last-seen-first-killed(最后看见最先终止)的方式来终止他们。

5.空进程:为了提供系统整体性能,Android会为已经停止的进程提供缓存来减少再次启动时所消耗的时间,这些进程会被定期终止。

Android 应用程序的优先级和进程状态相关推荐

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

    Android在回收资源的时候,进程被终止的顺序是由它们的应用程序的优先级所决定的.一个应用程序的优先级等同于它的优先级最高的组件的优先级. 当两个应用程序有相同的优先级时,在较低优先级状态运行时间最 ...

  2. android 后台程序 设置 优先级,Android应用程序防止被LMK干掉

    引用 Android 系统对于内存管理有自己的一套方法,为了保障系统有序稳定的运信,系统内部会自动分配,控制程序的内存使用.当系统觉得当前的资源非常有限的时候,为了保 证一些优先级高的程序能运行,就会 ...

  3. android应用程序的生命周期,Android应用程序的生命周期.doc

    Android应用程序的生命周期.doc Android应用程序的生命周期 描述:程序的生命周期是在Android系统中进程从启动到终止的所有阶段,也就是Android从启动到停止的全过程.==程序的 ...

  4. Android应用程序启动Binder线程源码分析

    Android的应用程序包括Java应用及本地应用,Java应用运行在davik虚拟机中,由zygote进程来创建启动,而本地服务应用在Android系统启动时,通过配置init.rc文件来由Init ...

  5. Android中程序与Service交互的方式

    本文将通过三大部分来讲解Android中程序与Service的交互方式,这里说的交互方式指的是如何与Service进行消息的传递,比如:从Service中获取信息,向Service发送信息等等.举个简 ...

  6. Android 中设置线程优先级的正确方式(2种方法)

    Android 中设置线程优先级的正确方式(2种方法) 在 Android 中,有两种常见的设置线程优先级的方式: 第一种,使用 Thread 类实例的 setPriority 方法,来设置线程优先级 ...

  7. Xposed: 勾住(Hook) Android应用程序对象的方法,实现AOP

    Xposed Xposed能够勾住(Hook) Android应用程序对象的方法,实现AOP,一个简单的例子: public class WebViewHook implements IXposedH ...

  8. Android应用程序消息处理机制(Looper、Handler)分析(2)

    我们再回到NativeMessageQueue的构造函数中,看看JNI层的Looper对象的创建过程,即看看它的构造函数是如何实现的,这个Looper类实现在frameworks/base/libs/ ...

  9. 电子界卡组构建2019_2018–2019年构建现代Android应用程序的路线图

    电子界卡组构建2019 Kriptofolio应用程序系列-简介 (Kriptofolio app series - Introduction) Welcome to this series of b ...

最新文章

  1. Docker:搭建RabbitMQ集群
  2. 开发日记-20190914 关键词 汇编语言王爽版 第二章
  3. python读音有道词典-利用python实现命令行有道词典的方法示例
  4. hdu2588 GCD
  5. boost::statechart模块实现延期测试的测试程序
  6. N551JM集显和独显切换
  7. 矩阵论基础知识2(正交、 Givens 变换、Householder变换)
  8. ubuntu10.4的更新源因过期无法更新的解决方法
  9. DM8168 TILER(2)
  10. NB-IoT终端进网检测介绍
  11. 权限设计(资源权限和数据权限)
  12. 我对TCP协议的一点形而上的看法
  13. [年度总结]我的ACM2013
  14. 同一工作组计算机无法查看,win7系统在同一个工作组看不到其他电脑怎么回事?...
  15. gltf 2.0快速入门
  16. IC验证培训——SystemVerilog通用程序库(上)
  17. TokenGazer:DeFi领域发展良好,量化模型显示MKR处于市值偏低区间
  18. [MOVE]-音频翻唱检索论文笔记
  19. 唐骏:身价10亿不买房 每月12万住宾馆
  20. MACBOOK 刻录系统盘及win7安装在mac上的步骤

热门文章

  1. 站外seo优化有用吗?值得投入时间和精力吗?
  2. twitter_如何将Twitter主题转化为可读的博客文章
  3. 仿百度壁纸客户端(五)——实现搜索动画GestureDetector手势识别,动态更新搜索关键字...
  4. ICML2020 文章目录及下载链接
  5. 交通银行java_交通银行(Java笔试2).doc
  6. 四元数微分方程的推导和代码实现
  7. Xamarin使用windows系统在ios上真机测试
  8. bfi中文是什么意思_微博里bot是什么意思 流行用语五花八门
  9. abap 实现F-47过账增强
  10. Cesium——创建天空盒(如何获取天空盒资源)