_050_Android_Android中的进程

转自https://blog.csdn.net/qq_33665647/article/details/55528037,感谢作者的无私分享。

1.进程的概念&进程优先级

当应用运行后,系统会创建一个Linux进程,大部分情况下一个android应用对应一个linux进程,这个进程在一开始的时候只有一个线程。

所有的组件都运行在同一个进程中,四大组件都运行在主线程中。

Android尽量保证每一个开启的进程更长久的存在。

进程优先级(优先级越高,越重要)

1.前台进程

当前进程中,有activity处于可操作的状态(activity执行了resume之后,并且留在这个状态,正在被用户操作)

service执行生命周期方法 以及广播的接收者执行onReceive方法。

2.可见进程

并不处于前台, 不可操作,却可以被用户看到(onPause方法执行了),比如透明的应用覆盖在此应用上面,或者是一个对话框activity盖在上面。

它有一个服务绑定在一个可见的activity

3.服务进程

一个服务被 startService() 开始,运行在后台,并且没有其它组件处于前两者状态,看不到这个进程

比如下载进程,播放音乐

4.后台进程

处于onStop() 之后的状态,但没有被销毁,通常有大量应用处于后台,最长时间没用的,最先被杀死。LRU(least recently used)

5.空进程

没有任何组件在运行,保存空进程,目的就是下次开启该进程的时候,减少开启的时间。

 

转自https://blog.csdn.net/lixiang_y/article/details/54889871,感谢作者的无私分享。

安卓中进程一共有五种:
1.Foreground process(前台进程)
用户正在操作得应用程序所在的进程就是前台进程(相当于Activity的onResume方法(获取焦点)执行,或广播接受者的onReceive方法执行)。
特点:可以与用户进行交互。
2.Visible process(可视进程)
用户已经不能操作这个应用程序,但是用户依然可以看到这个应用程序界面(相当于Activity的onPause方法执行,就是没有焦点了)
3.Service process(服务进程)
一个应用用startService(startActivity一样)开启一个服务就是服务进程(服务进程用户看不到,但是依然起着重要作用,后台下载、播放、刷新、查询、连接服务器等)
4.Background process(后台进程)
应用程序有界面,但是界面被用户最小化了(home键,变得不可见)(相当于Activity的onStop方法被执行)。
5.Empty process(空进程)
应用程序没有任何运行的Activity、Service(唯一让该进程活着的元原因是对此应用的缓存,提高下次开启的速度)。

进程优先级:前台进程 > 可视进程 > 服务进程 > 后台进程 > 空进程。
进程优先级越高越不容易被系统杀死。
当系统内存不足时,一般会先杀死空进程,再考虑杀死后台进程;而前台进程、可视进程和服务进程一般不会被系统杀死,因为杀死这些进程严重影响用户体验。

注:
1.服务进程很特殊,当系统内存严重不足或遇到特殊情况时,服务进程会被杀死;但是,当系统内存再次充足时,服务进程又会再次开启。
2.一个非服务进程,点击退出按钮退出了,就会成为一个空进程;而服务进程必须要点击关闭服务(运行onDestroy方法),才会是空进程。

Service概念总结:
1.Service服务也可以理解为一个特殊的、没有界面的、可以长期执行的Activity,在后台运行,非独立。
2.Service开启的进程是服务进程,优先级高,很难被杀死;即使被杀死,也会被重新原地复活,我们开发中正是利用Service的这个特点做文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值