Android 系统启动为什么这么慢,到底在做什么?为什么做不到 2 秒内冷启动? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
drymonfidelia
V2EX    Android

Android 系统启动为什么这么慢,到底在做什么?为什么做不到 2 秒内冷启动?

  •  
  •   drymonfidelia 2024-09-01 17:59:36 +08:00 9848 次点击
    这是一个创建于 406 天前的主题,其中的信息可能已经有所发展或是发生改变。
    38 条回复    2024-09-02 17:13:24 +08:00
    Jinnrry
        1
    Jinnrry  
       2024-09-01 18:04:39 +08:00 via iPhone   1
    硬件自检
    驱动自检
    操作系统自检

    除了单片机这种,话说有哪个系统能够 2 秒内启动吗?
    nyxsonsleep
        2
    nyxsonsleep  
       2024-09-01 18:05:13 +08:00
    linux 能 2s 内启动?
    mohumohu
        3
    mohumohu  
       2024-09-01 18:11:07 +08:00
    苹果也不快吧
    june4
        4
    june4  
       2024-09-01 18:14:45 +08:00   1
    同样是 linux ,android 启动比我的 linux 慢太多了
    kele999
        5
    kele999  
       2024-09-01 18:36:38 +08:00
    把 app 全部卸载了应该可以,你可以试试
    edinina
        6
    edinina  
       2024-09-01 18:47:04 +08:00
    手机一般也不关机,所以开机快不是刚需吧
    yyzh
        7
    yyzh  
       2024-09-01 18:47:19 +08:00 via Android
    @kele999 那也做不到 2s...我有台闲置的 moto s30 官方的类原生系统上面就装了个原神当游戏机..现在开机计时也要 8-10s.不知道把开机动画砍掉能不能快一点
    drymonfidelia
        8
    drymonfidelia  
    OP
       2024-09-01 18:58:40 +08:00
    @mohumohu 苹果比安卓还慢,我的 apple watch s9 上面一个 app 都没装,开机要接近一分钟
    drymonfidelia
        9
    drymonfidelia  
    OP
       2024-09-01 18:59:28 +08:00
    @Jinnrry 为什么不能开完机再自检?
    0o0O0o0O0o
        10
    0o0O0o0O0o  
       2024-09-01 19:11:19 +08:00   3
    Android 启动过程包含很多预加载和优化,普通手机没有理由为不频繁的冷启动的速度牺牲实际使用时的性能。

    真有需求了肯定是有优化方向的:

    - https://source.android.com/docs/core/perf/boot-times
    - https://source.android.com/docs/automotive/power/boot_time
    wzdsfl
        11
    wzdsfl  
       2024-09-01 19:19:13 +08:00
    @drymonfidelia #9 你这个问题问的,万一哪块有问题炸机了烧主板了,这系统你敢用吗
    miaosl
        12
    miaosl  
       2024-09-01 19:30:20 +08:00
    毕竟安卓是基于一个 Linux 的 java 虚拟机
    miaosl
        13
    miaosl  
       2024-09-01 19:31:08 +08:00
    @drymonfidelia 那是硬件自检把,就像 Windows
    datocp
        14
    datocp  
       2024-09-01 19:49:05 +08:00 via Android
    有个叫 mFSTRIM 的用来修改开机优化 ssd 。依然该死机时死机,可能像微信,支付宝之类的整体占用空间太多了。当然后台也有些乱七八槽的进程,搞不清楚什么能搞得卡顿只能重启。
    DigitaIOcean
        15
    DigitaIOcean  
       2024-09-01 20:06:01 +08:00
    不关机就不会冷启
    fairytale
        16
    fairytale  
       2024-09-01 20:14:31 +08:00 via Android
    比 Windows 还慢,Windows 那么多杂七杂八都能 6 秒开机
    JasonZhou
        17
    JasonZhou  
       2024-09-01 20:16:05 +08:00 via Android
    @fairytale 真幽默,你 Windows 和 Android 用同样的硬件对比过?
    busier
        18
    busier  
       2024-09-01 20:19:11 +08:00
    常规 PC 版本 Linux 光内核初始化都不止 2s

    不过说个题外话 Systemd 真心比 Sys-v 慢
    huang86041
        19
    huang86041  
       2024-09-01 20:43:03 +08:00   2
    Android 启动完 Linux 才是刚开始,后面还要启动 ART ,还要预加载,本来系统设计的就不是用来频繁开关机的。通过开机的预加载,能节省后面应用资源,和提高应用的启动运行速度。
    Falcon1
        20
    Falcon1  
       2024-09-01 21:05:10 +08:00
    电脑每天晚上关机,手机多久关一次机
    Falcon1
        21
    Falcon1  
       2024-09-01 21:05:36 +08:00
    模拟器能做到 2s 启动
    vate32
        22
    vate32  
       2024-09-01 21:17:11 +08:00
    现在快多了吧,当年 android2.3 的时候,国内的山寨机开机启动要 2 、3 分钟
    Yzh361
        23
    Yzh361  
       2024-09-01 21:48:20 +08:00 via Android
    苹果每次开 cidya 都要等老半天,不知道在干些什么。。。
    J0N
        24
    J0N  
       2024-09-01 22:25:49 +08:00
    手上烂果和安卓比较过,都是慢。
    aliveyang
        25
    aliveyang  
       2024-09-01 22:37:01 +08:00
    因为没有这方面的利益需求
    R4rvZ6agNVWr56V0
        26
    R4rvZ6agNVWr56V0  
       2024-09-01 22:40:10 +08:00
    楼上的几个网友都提到了,再总结下:

    硬件自检和驱动加载
    Linux 内核初始化
    ART 启动和预加载
    系统服务启动
    应用预加载

    --
    关于:为什么不能开完机再自检?

    硬件初始化优先。系统必须先确保所有硬件组件正常工作才可以进入内核加载和初始化阶段这是运行用户空间程序的基础。 所以跳过这个阶段,初始化咋能保证顺利完成呢? 就像蛋碎了,就不能孵化出小鸡了。
    SkywalkerJi
        27
    SkywalkerJi  
       2024-09-01 23:11:00 +08:00
    这就是 windows 的牛逼之处了。Android 缺一个 360 告诉你每次开机花费时间。
    fugu37
        28
    fugu37  
       2024-09-02 01:19:36 +08:00
    看了一眼手机,已经 948 小时没有关机了,上次关机应该是更新系统
    jim9606
        29
    jim9606  
       2024-09-02 02:28:47 +08:00 via Android   2
    设计上都没让你经常开关机,所以也没有花精力去优化开关机速度。
    windows 是因为扭转不了用户习惯才决定把关机做成睡眠的。
    zim298247
        30
    zim298247  
       2024-09-02 02:56:39 +08:00
    @nyxsonsleep alpine:是的
    kylo1989
        31
    kylo1989  
       2024-09-02 08:33:23 +08:00
    @Jinnrry 我家里电视,Tizen 可以做到秒启动,就算是断电之后插电都可以秒启动,实现原理就不太清楚
    Narcissu5
        32
    Narcissu5  
       2024-09-02 09:14:04 +08:00
    @miaosl 毕竟安卓是基于一个 Linux 的 java 虚拟机
    ---------------------------------
    虽然本站黑 Java 是日常,但是这条评论还是让我打开眼界
    icedx
        33
    icedx  
       2024-09-02 09:18:23 +08:00
    能, 但是贵

    所以在消费级产品上往往没有意义


    比如从 Bootloader 阶段就直接加载内核, 这个需要硬件厂商配合
    还有直接将初始化好的镜像从闪存装入到内存
    这种对硬件(闪存读取速度) 要求高, 还会降低安全性
    bugmaker233
        34
    bugmaker233  
       2024-09-02 10:17:29 +08:00
    我说话难听...就不说了
        35
    815979670  
       2024-09-02 10:32:42 +08:00
    我能想到的是车载导航的安卓系统?每次打火都是 冷启动 会有这个需求?
    815979670
    yakun4566
        36
    yakun4566  
       2024-09-02 13:47:01 +08:00
    微信冷启动也得两秒吧,感觉操作系统要做的事情比微信更多
    Chinsung
        37
    Chinsung  
       2024-09-02 14:40:45 +08:00
    @Narcissu5 #32 linux 俗称 jvm 启动器
    noErr
        38
    noErr  
       2024-09-02 17:13:24 +08:00
    不刚需,刚需的一定会做的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2391 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 15:37 PVG 23:37 LAX 08:37 JFK 11:37
    Do have faith in what you're doing.
    ubao 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