为什么 android 的墓碑会重载、重弹、睡死,而 ios 不会?

2023-09-19 09:45:10 +08:00
 YGBlvcAK

然后安卓要通过各种模块、定时唤醒等来防止上面的情况出现,有没有懂的大佬从原理上来解释一下?是安卓这个系统从 linux 内核构建时就留下的祸根?

或者从另一个角度问,现在的安卓到底要怎样改造才能实现完美的墓碑?

10459 次点击
所在节点    Android
19 条回复
pangzhen
2023-09-19 10:03:17 +08:00
iOS 也会。
mars2023
2023-09-19 10:22:04 +08:00
有没可能 Android 就是按照多任务系统设计,为什么要改造成墓碑机制呢?
codehz
2023-09-19 10:47:48 +08:00
其实安卓已开始就提供了恢复状态的机制
但没人用
AoEiuV020JP
2023-09-19 10:53:38 +08:00
开发思维?
ios 开发者会假定 app 后台会被冻结,
android 开发者会假定 app 后台继续工作,
binbin0915jjpp
2023-09-19 10:57:38 +08:00
16G 内存 不用搞这些...
TArysiyehua
2023-09-19 11:11:00 +08:00
墓碑不就是干这个的吗?
sankemao
2023-09-19 11:17:49 +08:00
如果开发者遵照开发规范,即便 app 后台被杀后,从新打开也能恢复之前的状态。
murmur
2023-09-19 11:36:31 +08:00
ios 的后台只是留了一张截图而已,然后看截图的时候在那重载
stinkytofu
2023-09-19 11:46:05 +08:00
开发水平问题, 可能是有些变量在生命周期结束后变为 null 值了, 但是 Activity 恢复后没有处理, 这也是历史原因, 安卓本来就是多任务系统, 开发者习惯 APP 整个生命周期都是存活的. 按照 7#说的, 如果完全按照开发规范, 是不会有这个问题的, onCreate 函数提供了恢复参数
Leonard
2023-09-19 12:41:25 +08:00
@binbin0915jjpp 不是内存问题,是耗电问题
YGBlvcAK
2023-09-19 14:06:16 +08:00
@binbin0915jjpp 楼上说的对,如果没有墓碑毒瘤 app 就会一直在后台运行,增加耗电和卡顿

@murmur 这个重载不是你说的那个重载,是直接的重载了

@TArysiyehua 墓碑不完美,有很多问题

@AoEiuV020JP 所以要墓碑,并且强制,现在的问题就是墓碑问题太多

@mars2023 毒瘤 app 太多,ios 并不是没有毒瘤,ios 不给机会而已
TArysiyehua
2023-09-19 14:40:27 +08:00
墓碑机制肯定不完美的,如果有一个完美的方案早就被用上了。你猜为啥大部分人都不用,不就是他的问题多过于实际上得到的体验嘛。。。
zhouquanbest
2023-09-19 14:58:45 +08:00
Android 是另一种思维 可以理解为让应用睡眠
这样也没什么开发和适配成本,实际上也就是内存严重不足时会杀下后台,但严重不足时,iOS 也杀啊

现在旗舰点的 Android 手机,基本能保证 15-18 个左右后台驻留,日常使用绰绰有余
mars2023
2023-09-19 15:03:07 +08:00
@YGBlvcAK #11 所以我选择 iPhone ,就是为了避免跟国内的 app 斗智斗勇;
个人觉得哪怕 Android 原生设计得再好,国产 OS 也可以为了公司业务对实际做调整;
而且 国产 OS 哪怕防得了其他的 app ,还是可能存在各种厂商合作的白名单。

所以,一开始就放弃“安卓” 这个体系吧。
liuzhedash
2023-09-19 15:07:18 +08:00
我感觉苹果的思路是:移动端的多任务是由 APNs 消息驱动的,只有收到了消息,才有必要唤醒对应的进程。
当然一个直接的问题就是:后台听音乐算不算多任务?
cherryas
2023-09-19 15:55:20 +08:00
因为安卓毒瘤太多所以用户会主动清掉后台 app ,
ios 清后台没什么意义
ikas
2023-09-19 20:39:40 +08:00
1.aosp 中进程生命周期,app 只要按照文档适配,完善 app 的代码,基本 app 端问题不大
2.安卓各种魔改系统,各种对 aosp 机制的修改,app 适配坑死人
3.各种安卓"安全工具",你永远不知道你的 app 如何死的,dont kill my app
4.app 各种垃圾 sdk,各种保活与对抗导致问题丛生
5.google 官方 sdk 的各种 bug,比如 Fragment 的各种生命周期的 bug,不知道改了多少版本

5.ios 墓碑回来闪退直到近几年内存加了才逐渐少了
mmdsun
2023-09-19 22:11:46 +08:00
我什么我感觉 iOS 重载几率更高呢
hhhsuan
2023-09-21 08:09:02 +08:00
墓碑是啥

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

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

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

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

© 2021 V2EX