V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
acess
V2EX  ›  问与答

为什么有些智能手机会专门设计一个“正在充电”的提示界面,甚至在电量过低时,即使插上电源,也拒绝启动?

  •  
  •   acess · 2015-05-22 00:19:24 +08:00 · 4770 次点击
    这是一个创建于 3476 天前的主题,其中的信息可能已经有所发展或是发生改变。
    手里有一个Android4.2的手机,关机后插上USB线,会启动,但应该只到Linux层完成启动的阶段,然后进入“充电模式”,显示一个“正在充电”的界面。这时长按电源,会重启一次,然后正常启动Android。
    比较讨厌的是,如果电量过低,比如刚刚因为电量过低自动关机了,即使USB连接很好,也会在Linux刚启动完后提示“电量过低”,拒绝继续启动Android,然后重启进入“充电模式”,必须等到电量稍微增加后,才能在再次长按重启后正常启动Android。
    据说iPhone也有类似的行为,电量过低时不能继续启动,必须充电几分钟后才可以正常启动。
    不知道为何要这样设计?是为了保护电池,防止过放吗?还是其他原因?
    我记得刷了CyanogenMod后,就不会有这种现象,关机后,插上USB线,只会充电,不会启动;长按电源键会直接开机,即使电量很低,刚刚自动关机,只要充电正常就可以正常开机。
    14 条回复    2015-05-22 20:39:58 +08:00
    sumhat
        1
    sumhat  
       2015-05-22 00:28:25 +08:00
    充电界面是告诉用户充电器正常工作,拒绝启动是因为……楼主没有碰到过打游戏的时候即使在充电也会电量减少的情况么?
    acess
        2
    acess  
    OP
       2015-05-22 00:41:44 +08:00
    @sumhat 那么这么做是为了保护电池不过放吧。
    但是在我看来,似乎bootloader已经可以独立处理电池电量的问题了。
    至于告诉用户充电器正常工作,Android手机大多也有LED吧,这个灯一般也会指示充电状态,即使已经关机。
    实际上刷了CyanogenMod后那种工作模式,的确在特殊情况下会过度放电(比如刚开始启动Android就拔线),但是过放后,再长按电源,屏幕根本不会亮,只会震动一下。
    也许还有其他原因?比如,更好地控制充电过程?
    powergx
        3
    powergx  
       2015-05-22 00:42:49 +08:00 via iPhone
    锂电池空电 不能大电流充电,这时候没有足够的电量提供给启动机器使用,所以要等几分钟
    acess
        4
    acess  
    OP
       2015-05-22 00:48:56 +08:00
    @powergx 进入充电模式时,实际上还是启动了,只是没有继续启动Android。
    另外并不是所有Android手机都会在电量低时拒绝启动。
    手里的另一个Android 4.4的,官方原装的ROM,虽然也有充电模式,但是并不会在电量低时拒绝启动,即使刚刚自动关机,充电模式显示电量0%,长按电源也可以立即重启、正常启动Android。
    powergx
        5
    powergx  
       2015-05-22 00:54:05 +08:00 via iPhone
    关键是电池管理的策略,空电小电流冲电池寿命更长。苹果是典范
    acess
        6
    acess  
    OP
       2015-05-22 01:17:32 +08:00
    @powergx 那么对于Android来说,为什么需要专门启动Linux?是因为bootloader阶段实现充电状态指示、控制充电电流比较困难么?
    kuxiazi
        7
    kuxiazi  
       2015-05-22 01:47:12 +08:00 via iPhone
    WP 插上充电器充电立马自动开机
    Septembers
        8
    Septembers  
       2015-05-22 06:35:17 +08:00 via Android
    @acess bootloader(uboot)通常只负责初始化硬件加载kernel
    Halry
        9
    Halry  
       2015-05-22 07:28:08 +08:00 via Android
    bl只会处理linux内核,校验和提供fastboot界面。
    有的机充电会用recovery的界面,有的会用Android的界面。
    没见过有一部手机会在bl里处理充电的,因为充电要控制充电芯片,这个当然是linux内核来处理,symbian都是要载入基本系统的。
    acess
        10
    acess  
    OP
       2015-05-22 09:39:34 +08:00
    @Septembers
    @Halry

    关机后,插上USB,屏幕完全不亮,也可以充电,还有没有在充电且电量很低时,长按电源键连屏幕也不会亮,这种情况在我曾经用了几年。我觉得关机时控制充电的至少不是Linux。
    或者,出现“开机第一屏”并不表示处于bootloader阶段?
    Heracles
        11
    Heracles  
       2015-05-22 11:13:37 +08:00 via iPad
    万一启动了又断电怎么办?所以要充够
    Halry
        12
    Halry  
       2015-05-22 14:39:11 +08:00 via Android   ❤️ 1
    @acess 什么手机?htc?不是亮了红灯吗?
    很多手机在电池真的一点点都没有的时候是不会亮屏幕的,是怕亮屏后又过放具体到底想不想亮屏是厂商决定的。
    Qualcomm的芯片无论如何你插入usb,pmic启动唤醒ap,ap载入pbl,sbl,rpm
    rpm就是关于电源管理的,pmic不会单独处理充电
    acess
        13
    acess  
    OP
       2015-05-22 16:24:58 +08:00
    @Halry
    谢谢,我只是对这个问题感到好奇,非专业人士。
    “没有充电模式”的手机是中兴V880(ZTE Blade),刷了CM7。
    我记得这部手机关机后,几乎是USB一接通,LED就点亮了,电量接近充满时直接亮绿灯,没充满时亮红灯。
    那么这个LED难道是Linux控制的么?我觉得不像啊。
    实际上另一部“有充电模式”的手机在电量耗尽自动关机后,如果不插上USB,长按电源也是不会亮屏的,只是插上了USB,启动到半路拒绝继续启动Android,让我感到有些不方便。
    Halry
        14
    Halry  
       2015-05-22 20:39:58 +08:00 via Android
    @acess cm7.....
    说实在这些都是厂商里的程序员定的,自己喜欢的话可以试试改内核。
    你看看灯亮了后过一阵就会闪一下?
    我刚刚说错了,rpm只是控制电源管理,但真正控制手机的是little kernel也就是bl或者aboot。为什么不在aboot里面管充电?其实aboot也只管真正0电的充电,为什么给linux管我也不知道(应该是懒)。
    给linux kernel充电有个好处是自己可以改,而且android里面充电本来就是kernel里面管的,不可能和lk联系(闭源),如果开机前充电还要给lk管那lk代码就冗余了。
    关于你的手机的缺陷只能怪别人咯😁。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5783 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 03:00 · PVG 11:00 · LAX 19:00 · JFK 22:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.