Android 应用程序的优先级和进程状态
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 应用程序的优先级和进程状态相关推荐
- Android - 应用程序的优先级和进程状态
Android在回收资源的时候,进程被终止的顺序是由它们的应用程序的优先级所决定的.一个应用程序的优先级等同于它的优先级最高的组件的优先级. 当两个应用程序有相同的优先级时,在较低优先级状态运行时间最 ...
- android 后台程序 设置 优先级,Android应用程序防止被LMK干掉
引用 Android 系统对于内存管理有自己的一套方法,为了保障系统有序稳定的运信,系统内部会自动分配,控制程序的内存使用.当系统觉得当前的资源非常有限的时候,为了保 证一些优先级高的程序能运行,就会 ...
- android应用程序的生命周期,Android应用程序的生命周期.doc
Android应用程序的生命周期.doc Android应用程序的生命周期 描述:程序的生命周期是在Android系统中进程从启动到终止的所有阶段,也就是Android从启动到停止的全过程.==程序的 ...
- Android应用程序启动Binder线程源码分析
Android的应用程序包括Java应用及本地应用,Java应用运行在davik虚拟机中,由zygote进程来创建启动,而本地服务应用在Android系统启动时,通过配置init.rc文件来由Init ...
- Android中程序与Service交互的方式
本文将通过三大部分来讲解Android中程序与Service的交互方式,这里说的交互方式指的是如何与Service进行消息的传递,比如:从Service中获取信息,向Service发送信息等等.举个简 ...
- Android 中设置线程优先级的正确方式(2种方法)
Android 中设置线程优先级的正确方式(2种方法) 在 Android 中,有两种常见的设置线程优先级的方式: 第一种,使用 Thread 类实例的 setPriority 方法,来设置线程优先级 ...
- Xposed: 勾住(Hook) Android应用程序对象的方法,实现AOP
Xposed Xposed能够勾住(Hook) Android应用程序对象的方法,实现AOP,一个简单的例子: public class WebViewHook implements IXposedH ...
- Android应用程序消息处理机制(Looper、Handler)分析(2)
我们再回到NativeMessageQueue的构造函数中,看看JNI层的Looper对象的创建过程,即看看它的构造函数是如何实现的,这个Looper类实现在frameworks/base/libs/ ...
- 电子界卡组构建2019_2018–2019年构建现代Android应用程序的路线图
电子界卡组构建2019 Kriptofolio应用程序系列-简介 (Kriptofolio app series - Introduction) Welcome to this series of b ...
最新文章
- Docker:搭建RabbitMQ集群
- 开发日记-20190914 关键词 汇编语言王爽版 第二章
- python读音有道词典-利用python实现命令行有道词典的方法示例
- hdu2588 GCD
- boost::statechart模块实现延期测试的测试程序
- N551JM集显和独显切换
- 矩阵论基础知识2(正交、 Givens 变换、Householder变换)
- ubuntu10.4的更新源因过期无法更新的解决方法
- DM8168 TILER(2)
- NB-IoT终端进网检测介绍
- 权限设计(资源权限和数据权限)
- 我对TCP协议的一点形而上的看法
- [年度总结]我的ACM2013
- 同一工作组计算机无法查看,win7系统在同一个工作组看不到其他电脑怎么回事?...
- gltf 2.0快速入门
- IC验证培训——SystemVerilog通用程序库(上)
- TokenGazer:DeFi领域发展良好,量化模型显示MKR处于市值偏低区间
- [MOVE]-音频翻唱检索论文笔记
- 唐骏:身价10亿不买房 每月12万住宾馆
- MACBOOK 刻录系统盘及win7安装在mac上的步骤
热门文章
- 站外seo优化有用吗?值得投入时间和精力吗?
- twitter_如何将Twitter主题转化为可读的博客文章
- 仿百度壁纸客户端(五)——实现搜索动画GestureDetector手势识别,动态更新搜索关键字...
- ICML2020 文章目录及下载链接
- 交通银行java_交通银行(Java笔试2).doc
- 四元数微分方程的推导和代码实现
- Xamarin使用windows系统在ios上真机测试
- bfi中文是什么意思_微博里bot是什么意思 流行用语五花八门
- abap 实现F-47过账增强
- Cesium——创建天空盒(如何获取天空盒资源)