Android的进程优先级

前几天有一个电话面试,被问到Android的进程优先级,当时差点没反应过来,还好在面试官即将跳过这道题时想起来了。

Android 把进程分成了一些优先级,从高到低分别是:

1、前台进程(Foreground)

比如我们正在看书,那么看书的程序就是前台进程,这些进程是不会被系统优先结束的。当我把它切到后台的时候,它就变成后台进程了。

2、可见进程(Visible)

输入法程序,桌面时钟这种,可见的。可视进程不会被系统杀死,,除非为了保证前台进程的运行而不得已为之。

3、服务进程

进程中包含已启动的service。电话的拨号功能,服务平时也不会被系统自动结束,除非你非要关它,关了也会自己重新加载的。这也是你完全释放内存以后过一会就看着内存可用值又慢慢降低的原因。

4、后台进程(hidden)

启动后被切换到后台的进程,挂QQ时。

5、空进程(empty)

没有任何东西在内运行的进程,有些程序在退出后,依然会在进程中驻留一个空进程,这个进程里没有任何数据在运行,作用往往是提高该程序下次的启动速度或者记录程序的一些历史信息。

时间: 2024-10-05 11:02:22

Android的进程优先级的相关文章

Android:进程优先级

进程优先级 优先级 服务 说明 高优先级 前台进程 ①该进程包含正在与用户进行交互的界面组件,比如一个Activity. ②进程服务被Activity调用,而且这个Activity正在与用户进行交互 ③进程服务正在执行生命周期中的回调函数,如onCreate(),onStart()或onDestroy() ④进程的BroadcastReciver正在执行onReceive()函数 中优先级 可见进程 ①程序界面部分可以给用户看见,但是不在前台与用户交互,不相应界面事件的进程 ②一个进程包含了Se

Android进程保活-自“裁”或者耍流氓

本篇文章是后台杀死系列的最后一篇,主要探讨一下进程的保活,Android本身设计的时候是非常善良的,它希望进程在不可见或者其他一些场景下APP要懂得主动释放,可是Android低估了"贪婪",尤其是很多国产APP,只希望索取来提高自己的性能,不管其他APP或者系统的死活,导致了很严重的资源浪费,这也是Android被iOS诟病的最大原因.本文的保活手段也分两种:遵纪守法的进程保活与流氓手段换来的进程保活. 声明:坚决反对流氓手段实现进程保活 坚决反对流氓进程保活 坚决反对流氓进程保活

android进程优先级

android中的进程 默认情况下, 同一个application中的所有component运行在同一个linux进程下. 启动一个component A时, 如果已存在处于运行状态中的component B, 且A和B属于同一个application, 那么component A将在component B所在的进程下运行. 否则将为A创建一个新的linux进程. 开发者也可以为application中的component指定不同的运行进程. manifest.xml文件中的<activity>

Android面试收集录17 Android进程优先级

在安卓系统中:当系统内存不足时,Android系统将根据进程的优先级选择杀死一些不太重要的进程,优先级低的先杀死.进程优先级从高到低如下. 前台进程 处于正在与用户交互的activity 与前台activity绑定的service 调用了startForeground()方法的service 正在执行oncreate(),onstart(),ondestroy方法的 service. 进程中包含正在执行onReceive()方法的BroadcastReceiver. 系统中的前台进程并不会很多,

【Android-2】Android进程优先级

Android里的进程优先级分别如下: 1.前台进程:处在前台与用户交互的Activity,或者与前台Activity绑定的Service这两种情况,这两种进程叫前台进程. 2.可见进程:可见但不处于前台,用户不可点击的情况,就属于可见进程. 3.服务进程:在后台开启了Service服务的进程. 4.后台进程:比如当前的Activity是前台进程,按了Home键,此时前台进程就变为了后台进程,但不会立马Kill掉,根据内存紧张情况进行相应回收. 5.空进程:优先级最低的进程,没有活跃的组件,处于

android如何让service不被杀死-提高进程优先级

1.在service中重写下面的方法,这个方法有三个返回值, START_STICKY是service被kill掉后自动重写创建 @Override public int onStartCommand(Intent intent, int flags, int startId) { return START_STICKY; }---------------- @Override public int onStartCommand(Intent intent, int flags, int sta

Android中的进程优先级

一.概述 首先解释一下什么是进程: 进程是一个具有独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度的基本单位,进程包含多个线程在运行. 在Android中,默认情况下,同一个应用程序内的所有组件都是运行在同一个进程中的,大部分应用程序也不会去改变它.不过,如果需要指定某个特定组件所属的进程,则可以利用manifest 文件来达到目的. manifest文件中的每种组件元素--. . 和--都支持定义android:process属性,用于指定组件运行的进程.设置此属性即可实

Android 双进程Service常驻后台,无惧“一键清理”

本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处! 最近项目用到Service常驻后台,研究了一下发现手Q和微信都是使用了双进程来保证一键清理后自动复活,copy网上双进程Service的例子,再结合onTrimMemory(),基本实现一键清理后自动复活. 使用双进程Service,关键是在AndroidManifest.xml里面定义Service时加入android:process=":service1": <service andro

【转】Android开发之如何保证Service不被杀掉(broadcast+system/app)

Service简介 1.Service 每个Service必须在manifest中 通过<service>来声明. 可以通过contect.startservice和contect.bindserverice来启动. 和其他的应用组件一样,运行在进程的主线程中.这就是说如果service需要很多耗时或者阻塞的操作,需要在其子线程中实现(或者用系统提供的IntentService,它继承了Service,它处理数据是用自身新开的线程).[当然你也可以在新的线程中startService,这样Se