V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
drymonfidelia
V2EX  ›  Android

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

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

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

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

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

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

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

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

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

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


    比如从 Bootloader 阶段就直接加载内核, 这个需要硬件厂商配合
    还有直接将初始化好的镜像从闪存装入到内存
    这种对硬件(闪存读取速度) 要求高, 还会降低安全性
    bugmaker233
        34
    bugmaker233  
       119 天前
    我说话难听...就不说了😅
    815979670
        35
    815979670  
       119 天前
    我能想到的是车载导航的安卓系统?每次打火都是 冷启动 会有这个需求?
    yakun4566
        36
    yakun4566  
       119 天前
    微信冷启动也得两秒吧,感觉操作系统要做的事情比微信更多
    Chinsung
        37
    Chinsung  
       119 天前
    @Narcissu5 #32 linux 俗称 jvm 启动器😠
    noErr
        38
    noErr  
       119 天前
    不刚需,刚需的一定会做的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1220 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:00 · PVG 02:00 · LAX 10:00 · JFK 13:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.