为什么 android 的墓碑会重载、重弹、睡死,而 ios 不会? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
YGBlvcAK
V2EX    Android

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

  •  
  •   YGBlvcAK 2023-09-19 09:45:10 +08:00 13798 次点击
    这是一个创建于 758 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

    所以,一开始放弃“安卓” 这个体系吧。
    liuzhedash
        15
    liuzhedash  
       2023-09-19 15:07:18 +08:00
    我感觉苹果的思路是:移动端的多任务是由 APNs 消息驱动的,只有收到了消息,才有必要唤醒对应的进程。
    当然一个直接的问题就是:后台听音乐算不算多任务?
    cherryas
        16
    cherryas  
       2023-09-19 15:55:20 +08:00
    因为安卓毒瘤太多所以用户会主动清掉后台 app ,
    ios 清后台没什么意义
    ikas
        17
    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
        18
    mmdsun  
       2023-09-19 22:11:46 +08:00 via iPhone
    我什么我感觉 iOS 重载几率更高呢
    hhhsuan
        19
    hhhsuan  
       2023-09-21 08:09:02 +08:00 via Android
    墓碑是啥
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     896 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 20:11 PVG 04:11 LAX 13:11 JFK 16:11/a>
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86