Android 省电策略 杀服务怎么办? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
as9567585
V2EX    Android

Android 省电策略 杀服务怎么办?

  •  
  •   as9567585 2023-11-02 12:59:58 +08:00 12656 次点击
    这是一个创建于 762 天前的主题,其中的信息可能已经有所发展或是发生改变。

    正在做一个语音房功能。flutter 开发的,不太懂 android 原生。

    目前测试机是小米 9 MIUI12.5 。

    设置了 app 常驻后台,虽然不杀后台了。

    但是锁屏一段时间后,语音房内的 websocket 和 webrtc 就都断了。

    测试发现把“省电策略”设置“无限制”,就能正常锁屏,并保持语音通话了。

    想问下,针对这个“省电策略”,开发者能做什么呢?

    • 有 api 可以申请无限制”?

    • 或者直接向厂商申请?

    28 条回复    2023-11-03 10:14:35 +08:00
    psklf
        1
    psklf  
       2023-11-02 13:05:05 +08:00
    开前台服务也不行吗?
    shinsekai
        2
    shinsekai  
       2023-11-02 13:05:25 +08:00
    有各种保活方法吧,比如一像素悬浮窗或者闹钟什么的
    fredcc
        3
    fredcc  
       2023-11-02 13:06:46 +08:00
    小米系统:让用户自己选择,设置无限制耗电
    CEBBCAT
        4
    CEBBCAT  
       2023-11-02 13:07:49 +08:00
    你做了哪些研究呢?
    vcn8yjOogEL
        5
    vcn8yjOogEL  
       2023-11-02 13:07:54 +08:00
    https://dontkillmyapp.com
    可以弹窗申请,但不知道弹窗会不会被系统拦截
    知名 App 在系统的白名单里
    ysc3839
        6
    ysc3839  
       2023-11-02 13:20:44 +08:00 via Android
    确定有做成前台服务(通知栏常驻)?我手头上的 MIUI ,那些有前台服务的 app ,即使设置成智能限制也是正常的。
    Musong
        7
    Musong  
       2023-11-02 13:32:28 +08:00
    自启动+省电无限制,李跳跳也没挂过
    rokycool
        8
    rokycool  
       2023-11-02 14:15:19 +08:00
    小米有多重休眠;
    1 基于云控的神隐模式,
    2 后台管控的无限制
    3 动作传感器+时间段 的所谓"自适应休眠"

    建议你要不直接用 root 吧
    as9567585
        9
    as9567585  
    OP
       2023-11-02 14:15:25 +08:00
    @psklf 只要不锁屏,就没有问题的,切换到其他 app ,后台挂起也没有事。

    就是锁屏之后,只要不修改“省电策略”为“无限制”, 就会杀 websocket 和 webrtc
    as9567585
        10
    as9567585  
    OP
       2023-11-02 14:17:40 +08:00
    @ysc3839 不太懂 Android 原生,会一点 flutter ,我研究下
    as9567585
        11
    as9567585  
    OP
       2023-11-02 14:18:35 +08:00
    @rokycool , 我 root 可以,也不能让用户都 root 啊
    as9567585
        12
    as9567585  
    OP
       2023-11-02 14:21:58 +08:00
    @Musong 很久没有用 Android 了,也非 Android 开发,flutter 写的。

    总是让用户自己去设置“省电模式”,感觉不太友好啊。

    还是想问下专业的 Android 开发,有什么办法能在开发侧就处理了,不要麻烦用户。
    as9567585
        13
    as9567585  
    OP
       2023-11-02 14:23:43 +08:00
    @vcn8yjOogEL 听说过知名的 app 都在系统的白名单里,这些小 app 怎么办呢,只能麻烦用户去设置省电模式了吗?
    gam2046
        14
    gam2046  
       2023-11-02 14:29:21 +08:00
    尝试 acquireWakeLock 以及 WifiLock
    vcn8yjOogEL
        15
    vcn8yjOogEL  
       2023-11-02 14:31:10 +08:00
    @as9567585 #13 对的,一般来说启动时会有一个欢迎页面解释这些权限,然后再弹窗向用户请求
    原生一般点确认就不用管了,第三方系统可能还会有一堆杂七杂八的优化需要修改

    以及没记错持续通知也可以用来保活,因此你可以做一个像通话那样的通知,这样就不需要申请权限了
    TArysiyehua
        16
    TArysiyehua  
       2023-11-02 14:44:24 +08:00
    @as9567585 专门出一个页面解释你的 app 要锁屏联网,让用户跳转到省电页面,给你的 app 设置即可。问题来了,锁屏为啥非要连着呢?如果是产品要求,那其实还有合规问题的。
    如果非要搞,就让产品按照我之前说的,出页面解释。让用户去开,如果用户没开那就没办法了。
    另外没有 api 可以申请
    as9567585
        17
    as9567585  
    OP
       2023-11-02 14:58:51 +08:00
    @TArysiyehua 语音房嘛,语音通话,有的时候聊天聊着聊着就忘记,手机待机自动就锁屏了。

    就像微信,有的时候就锁着屏聊天。
    as9567585
        18
    as9567585  
    OP
       2023-11-02 15:05:46 +08:00
    @vcn8yjOogEL 我研究研究,,
    Musong
        19
    Musong  
       2023-11-02 15:21:00 +08:00
    @as9567585 #12 目前我遇到的 国内的李跳跳、椒盐音乐,都是引导用户跳转省电设置修改。国外的 FloderSync 也是。似乎现在提倡各种权限让用户自己选择
    Musong
        20
    Musong  
       2023-11-02 15:22:18 +08:00
    @Musong #19 还有 AnyDesk RustDesk 啥的,不过 都是直接跳转该应用的省电设置界面,chua 的一下一步到位
    TArysiyehua
        21
    TArysiyehua  
       2023-11-02 15:30:01 +08:00
    @as9567585 为啥不申请屏幕常亮,不锁定屏幕呢?
    ysc3839
        22
    ysc3839  
       2023-11-02 15:39:41 +08:00 via Android
    @as9567585 理论上来说你弄了前台服务(通知栏有常驻通知),不需要特殊设置(自启动关闭,省电策略智能限制)就能一直运行的。
    MIUI 有几个特殊开关:
    “自启动”控制是否能开机时启动,以及被杀死后能否自动重启。
    “省电策略”控制没有前台服务时,后台服务(对用户完全不可见的服务)能运行的时长。
    “最近任务锁定”控制按最近任务最底下 X 时会不会被清理。
    MIUI 有一个与 AOSP 逻辑不一致,且用户没法控制的功能,那就是最近任务划掉 Activity ,会杀死整个应用。
    如果某个应用是在 MIUI 白名单内(比如微信),且用户对这个应用开启了“自启动”,那划掉才不会被杀死。
    如果这个应用不在白名单,但是开启了自启动,划掉会被杀死,但是应用可以立刻重新启动。一个案例是 Telegram ,在 Telegram 设置里开启后台保活,同时在 MIUI 设置里开启自启动,划掉 Telegram ,再打开应用信息,可以看到是在运行的(结束运行按钮不是灰的),关闭自启动,再划掉 Telegram ,应用信息里就显示不在运行了。
    lindongwu11
        23
    lindongwu11  
       2023-11-02 16:28:29 +08:00
    我自用的笔记应用是作为开发者挂个常驻提示(还能用于点击唤醒),然后自己作为用户还得开锁定+后台无限制。
    psklf
        24
    psklf  
       2023-11-02 18:45:12 +08:00
    @as9567585 #9 先实现前台服务吧。
    as9567585
        25
    as9567585  
    OP
       2023-11-03 00:48:30 +08:00
    @TArysiyehua 正准备,先这样做下,感觉也不太友好,比较耗电。 临时先这样弄下吧
    as9567585
        26
    as9567585  
    OP
       2023-11-03 00:53:01 +08:00
    @Musong 看来也只有这样了,“引导用户跳转省电设置修改”
    as9567585
        27
    as9567585  
    OP
       2023-11-03 01:00:29 +08:00
    @ysc3839 @psklf 这个 “前台服务(通知栏有常驻通知)” 我研究下, 不是搞 Android 开发的 ,以前是主要是搞后端开发的。
    4kingRAS
        28
    4kingRAS  
       2023-11-03 10:14:35 +08:00
    用 Alarm 唤醒给你的 websocket 发心跳保活
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1262 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 17:14 PVG 01:14 LAX 09:14 JFK 12:14
    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