@
herozzm 冰箱是一个很好的大棒
因为它直接 disable 了整个应用,也就是说: no negotiation
以此作为它们过于精通地滥用了一些系统资源的应对
弱一级的是绿色守护的传统模式
它使用了 am forcestop ,杀掉应用的进程,这种杀会使得接下来,应用无法自行启动
再弱一级的是它的浅睡模式
是把应用强行置于 app standby 状态
处于 app standby 的应用进程不会被直接杀掉,它只是不能联网(一天只有一次联网机会,除非充上电),不能使用 JobScheduler API ,但还是能使用 wakelock 和 alarm ,以此换来保留进程上下文的好处。
使用 MyAndroidTools 需要对 Android 应用的生命周期,以及四大组件有一些简单了解:
Activity
Service
Intent Receiver(顺便 Intent 是什么也了解到了)
Content Provider
然后再去用它,会顺手很多
我们一般来说是用来对付应用的某一(些)部分,这些部分我们不希望它工作,而且恰好又是耦合度比较低的部分,比如知乎的:
NotificationWebSocketService
avos....PushService
以上两个是和推送有关的 Service , disable 掉不影响应用运行,又恰好达到了我们的目的:彻底地关掉推送
在此安利下 B 站的 app ,虽然使用了臭名昭著的小米推送(具体地说,它的逻辑会检查相关的 Service 是否被 disabled ,如果是,则会重新 enable),但在这个 app 内关闭推送后,小米推送的 Service 不会运行
...instabug.....UPloadCacheService
这个是用来上传崩溃发生时的现场数据,以帮助 debug
....BumblebeeService
把这个关了,知乎就真的用不了了,所以不能对它动刀子。