时间:2024-06-04 16:25:15
题主这个问题没意义。因为自启动与后台表现上其实是一回事。
术语上的后台包括了后台服务、缓存进程等一大堆。但真正耗电的只有后台服务,所以以下后台默认特指后台服务。「服务」是 Android 四大组件之一,英文 Service。除了服务,四大组件还包括「活动」(Activity)。活动你可以理解为一个窗口。任何代码的运行都需要一个环境,大部分情况下这个环境不是后台就是活动。
所以后台的含义就很明确了:一个可以在不显示窗口的情况下不间断运行的服务 就叫做后台。
自启并不仅仅是开机自启。Android 一个应用启动有几种方式:
广义上,除了第一种,其他都算作自启。被其他应用唤醒就不说了,就是所谓的全家桶。下面着重讲一下被系统事件唤醒。
系统事件又分为很多种。一种是系统固有的,例如开机、时间变化、电量变化、网络变化等等等非常多。应用可以监听这些事件,并执行某一动作。特别地,如果监听了这些事件,并启动了一个后台服务,那么就是传说中的自启。(PS:当然,谷歌为了遏制流氓,很多高频事件只允许已经启动的应用监听,来防止应用通过监听高频事件不断地唤醒自身)
除了系统固有的,应用还可以要求系统在某一时间或达到某一要求时唤醒自己。例如闹钟就是这个原理。为了省电,闹钟应用不可能自己在后台倒计时,而是要求系统在某一时间唤醒它,然后再发出声音。
假设允许应用A自启,但不允许后台。那么A有很多办法不断地唤醒自己(自启),然后不断地被系统杀掉(禁止后台)。如此循环往复,耗电不仅没有减少,甚至会更多。
假设允许应用B后台,但不允许自启。那么B可以依赖“友商”唤醒自己,或者不经意间被用户唤醒,然后一直常驻。
综上,单独控制一个应用的自启与后台没有什么意义。现在很多系统已经把这两个选项合二为一了。
假设这样一个场景:禁止支付宝后台,根据上面结论,同时禁止自启。此时美团要求唤醒支付宝,自然要被拒绝,那么如何支付呢?
所以自启与后台的控制并不是那么严格的,具体怎样操作,不同的系统优化不同。现在是机器学习时代,系统会努力学习用户的使用习惯,更加合理地控制是否要临时允许一个应用自启,或临时允许它在后台运行那么一小段时间。
没有说是谁比谁更耗电,这俩种方式耗的电都是一样的。自启也相当于是在后台自动运行。
Copyright © 2012-2019 首页-大唐娱乐-注册登录站备案号:琼ICP备88889999号