Android-四种进程类型
来源:互联网 发布:网购数据 编辑:程序博客网 时间:2024/06/16 09:04
程序与进程
程序:存储在磁盘上的可运行的代码和数据的集合,是个静态的概念
进程:程序的执行过程,是操作系统进行资源分配的基本单位,是个动态概念
程序由一个或多个相互协作的进程组合而成。
进程的创建
当程序启动运行时,系统就会为之创建相应的进程。在进程当中,调用系统资源,执行程序的逻辑。
进程的销毁
进程什么时候会销毁呢?进程的销毁场景有两种,1.程序不需要继续执行代码,运行结束;2.系统为回收内存,强制销毁。
进程类型
系统强制销毁进程时,面临一个问题:系统当中可能会运行多个进程,销毁哪些进程合适呢? 这就是我们要讨论的进程的优先级问题。进程被系统强制销毁时,是按照进程的优先级进行的。而进程的优先级主要和应用包含的组件相关。进程优先级从高到低可分为四种:前台进程、可视进程、服务进程、缓存进程。
前台进程(foreground process):需要用户当前正在进行的操作。一般满足以下条件:
1. 屏幕顶层运行Activity(处于onResume()状态),用户正与之交互
2. 有BroadcastReceiver正在执行代码
3. 有Service在其回调方法(onCreate()、onStart()、onDestroy())中正在执行代码
这种进程较少,一般来作为最后的手段来回收内存
可视进程(visible process):做用户当前意识到的工作。一般满足以下条件:
1. 屏幕上显示Activity,但不可操作(处于onPause()状态)
2. 有service通过调用Service.startForeground(),作为一个前台服务运行
3. 含有用户意识到的特定的服务,如动态壁纸、输入法等
这些进程很重要,一般不会杀死,除非这样做可以使得所有前台进程存活。
服务进程(service process):含有以startService()方法启动的service。虽然该进程用户不直接可见,但是它们一般做一些用户关注的事情(如数据的上传与下载)。
这些进程一般不会杀死,除非系统内存不足以保持前台进程和可视进程的运行。
对于长时间运行的service(如30分钟以上),系统会考虑将之降级为缓存进程,避免长时间运行导致内存泄漏或其他问题,占用过多RAM以至于系统无法分配充足资源给缓存进程。
缓存/后台进程(cached/background process):一般来说包含以下条件:
1. 包含多个Activity实例,但是都不可见(处于onStop()且已返回)。
系统如有内存需要,可随意杀死。
- Android-四种进程类型
- Android 进程间通讯四种方式
- android四种更新UI进程
- android 进程类型
- Android进程间通信的四种方式
- Android进程之间通信的四种方式
- TextView drawableLeft ,android:duplicateParentState ,Activity四种launch类型
- Android学习进程(四):对话框
- Android四种类型进程总结
- Android系统启动流程 四--init进程
- android java进程管理(四)之进程记录表(ProcessRecord)
- 四种强制类型转换
- 四种强制类型转换
- matlab四种图像类型
- Java四种引用类型
- mysql 四种blob类型
- java 四种引用类型
- Java 四种引用类型
- frame、bounds与center属性
- 取近似值
- spark 2.1 reduce
- win10磁盘占用100%
- [bigdata-077] maven+mybatis+mysql 数据库 mybatis xml文件方式 示例
- Android-四种进程类型
- Nginx.conf 中的location 详解
- http协议的消息头的用法作用
- 解决代码动态设置Edittext编辑状态存在问题
- 创建maven工程和手动添加依赖库
- android设置横竖屏、可触控、获取分辨率等代码
- Web.config的读取和修改实例
- JAVA-数值计算中的特殊情况,NAN,Infinity
- Java实现访问指定url,并在指定时长后自动关闭浏览器