安卓的后台机制实在无法理解! emui10 如何关闭自启动的同时又可以自动管理后台?

2019-11-14 11:14:02 +08:00
 rizon

华为 的 emui10 中,

应用的允许后台运行 可以设置为手动模式启动,这样 app 在切换到后台时锁屏后就不会被杀掉,但是带来的问题是 app 退出依然在后台运行而不是被关闭。
如果设置为自动管理,在切换后台不会被杀掉,在退出后会被自动关闭,很完美,可问题是自动模式还包括了自启动和关联启动,这样的问题就是,有些 app 会偷偷的就自己运行起来了。。。

所以有没有办法只自动管理后台运行而手动关闭自启动和关联启动??

关于切换到后台被关闭应该是 emui10 的电池优化和锁屏清理导致的,可问题是 emui10 没有锁屏清理设置了。。 不知道该怎么办了


最近苹果转华为,安卓的后台机制实在无法理解。app 不应该在切换到后台后不会被关闭,在退出后就真的退出吗?? 怎么搞这么复杂,,还有什么自启动关联启动,,混乱的一 B。。。。 费劲啊。 真心觉得安卓有些机制真的就有问题,整个系统的开放程度,对“人心”的无条件信任简直儿戏。。。
唉,可是苹果系统越来越难用,而且安卓的有些本地化的功能实在有诱惑。。。

8419 次点击
所在节点    程序员
29 条回复
cpdyj0
2019-11-14 11:18:37 +08:00
Android 在设计时的确太开放了,有 Google play 还好说
cpdyj0
2019-11-14 11:20:15 +08:00
不能说关闭就彻底关闭啊,如果一个 app 要访问另一个 app 的资源怎么办,如果一个 app 需要在某些时候自启处理某些事物怎么办……很多事情苹果那边是根本干不了,Android 这边就尴尬了
WebKit
2019-11-14 11:23:29 +08:00
你把它理解为电脑上的程序,很多时候程序关闭了,但是后台服务还在运行。
你觉得复杂其实是你没有理解这个。当然作为用户其实你不需要关心这些。现在的 Android 也不需要去手动杀后台了。
imn1
2019-11-14 11:26:52 +08:00
emui 以前有个关联启动管理的,现在没了?好久没用菊厂机
zzNucker
2019-11-14 11:27:24 +08:00
你没必要关心后台的。。。。 现在早就不是以前了,国产系统自启动管理还是不错的。
z1154505909
2019-11-14 11:35:01 +08:00
我只服悦跑圈,我只能用电池管理才能把它干掉,其他的方法对他完全无效,然后这玩意后台还贼耗电.
rizon
2019-11-14 11:38:00 +08:00
@WebKit #3
@zzNucker #5
所以意识是我默认开启自动管理就好了?就算某个 app 被自启动了什么的也不用太在意是吗?

我不做安卓开发不了解,但是看到一些安卓开发的帖子里,是想尽了办法让自己不被杀掉,,唉。
imn1
2019-11-14 11:39:14 +08:00
主要的问题是,自动管理应该不是 android 原生的,是厂商增加方便懒人不用逐个 app 手设权限
用自动管理就要理解厂商的逻辑了

理论上 android app 只要赋予通知权限,可以关闭 /退出而调用 GMS
但国内 GMS 不可用,所以国内大部分 app 设为关闭就转后台,自动管理一般针对这个杀掉
rizon
2019-11-14 11:39:25 +08:00
@WebKit #3
@zzNucker #5
我现在其实也这么想的,管也管不了,只能交给系统自己去管理了,用习惯了,不盯着看也就无所谓了。。。。。
zzNucker
2019-11-14 12:02:42 +08:00
@rizon 现在国产机逻辑都是你不用的过段时间就给你自己杀了,用的多了就晚点杀或者不杀。。。
Laeoo
2019-11-14 13:26:39 +08:00
这里分享一下冯大的一条微博
https://weibo.com/1649495037/I1ajispIb
Laeoo
2019-11-14 13:27:09 +08:00
Laeoo
2019-11-14 13:27:37 +08:00
@Laeoo
关于 Android 多任务界面的划除交互,这里作一个统一答疑。(长文预警)

Q:那应该如何杀死一个应用?
A:应用是人类面对数字世界的可交互程序形成的一个想象实体,不同于可被生理终结的生物体,想象的实体只能被忘却。
(正经回答:首先得明确要杀死的主体,到底是进程、上下文状态,还是背后的开发者?其次,杀只是手段,而不是真实需求,需要好好想想为什么要杀应用)

Q:那么多任务界面划掉任务在 AOSP 上到底代表什么?
A:多任务界面掌管的是「任务」这个维度。Android 中的任务是一个类似于真实世界中任务的抽象概念,它代表的是一组有导航先后关系的界面所处的上下文,与应用的进程和可运行状态都没有必然的对应关系。这么说很抽象,下面具体拆解来看。
首先,一个任务可以包含来自多个应用的界面(比如从淘宝跳转到支付宝),所以划掉任务到底应该杀掉支付宝还是淘宝呢?或是通杀?
其次,一个应用可以创建多个任务,比如文档编辑器可以分别从不同的任务中被别的应用打开,各自处于不同的上下文(编辑的文档)。划掉其中一个任务就要杀死文档编辑器么?
最后,即便应用的进程因别的原因回收了(比如内存不足),任务所包含的应用界面上下文依然保留在内存中。再次切回到该任务时,会触发 Android 的界面上下文恢复机制,只要应用正确支持了这个机制,就可以回到之前离开时的精确上下文,看起来就像是应用从未被杀死过。这个恢复机制甚至可跨越设备重启。

Q:我就是不想要应用在后台占内存耗电,要怎么做?
A:Android 从 8.0 开始大幅度调整了应用的后台控制策略,具体技术细节这里就不展开说了。原则上,只要适配了 Android 8+ 的应用,就不能再持续在后台占据内存。去年已经推动国内的应用市场跟进了 Google Play 的应用适配强制要求,所以这方面就不必担心了。至于耗电,这是一个需要平衡的取舍,你如果的确需要某个应用的后台机制,那就得让它略微耗一点电(不能既要马儿跑得快,又让马儿不吃草吧)。如果你压根不需要它的后台机制,或者它的后台耗电太过分了,那么你可以在应用设置中限制应用的后台能力(非原生系统可能不一定有这个选项)。总之,你并不需要「杀应用」,也没必要为这些破事儿操碎心。当然,道与魔的较量总会间歇有漏洞被利用,所以绿色守护一直在试图补位 Android 本身的破缺,等待它可以全身而退的那一天。
iwanttofly
2019-11-14 13:45:07 +08:00
我现在都不管了, 就交给系统就行. 日常使用基本没问题.
zuoyuan333
2019-11-14 14:28:37 +08:00
@z1154505909 在后台播放无声音的音乐是不是这货?
wpblank
2019-11-14 14:36:03 +08:00
我原来索尼+黑域+设置几个白名单,其实能完美符合你的要求,按后台就后台,退出就真的退出。
aalikes95
2019-11-14 14:36:04 +08:00
安卓就是这样子,没得办
iVeego
2019-11-14 14:46:31 +08:00
adminsam
2019-11-14 14:54:56 +08:00
我觉得你应该是想说华为…各个厂商系统很多地方是完全不一样的,尤其后台管理机制,这个得问华为官方的人了
daozhihun
2019-11-14 15:16:17 +08:00
你说的这个只是国产 ROM 自己搞的东西,原生安卓并没有什么自启动、划掉就关闭什么的概念。
AOSP 是你把后台页面划掉之后只是把 UI 给关掉(也就是系统不会保存你浏览页面的状态,下次切换不会恢复),而与后台 service、推送什么的无关。不过,你也可以在设置里关掉某些 app 的后台能力。
对于国产 ROM 来说,由于你懂的原因,所以很多设置成了划掉以后把后台的东西全部杀掉了(这个不是谷歌的本意)。并且如果你设置成自动管理的话,无论你还有多少 RAM,除了少数厂商预先设置的 app (比如微信等),其他的后台都会杀的干干静静。
我的某为机器也是这样,不管怎么设置,后台老是被杀掉,很烦~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/619448

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX