V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
bluesky139

B 站 Android 端放后台会持续占用 CPU

  •  
  •   bluesky139 · Mar 7, 2019 · 4823 views
    This topic created in 2621 days ago, the information mentioned may be changed or developed.
    如图,在用一段时间的客户端后放后台(并不是放后台继续播放,就是不用了正常按 Home 键出去),使用 top 命令查看,始终有 10% 左右的 CPU 占用,会一直持续下去。

    现在的系统是 AOSP 8.1.

    22 replies    2019-03-10 15:50:32 +08:00
    hongch
        1
    hongch  
       Mar 7, 2019
    因为有 service 这种东西的存在
    deadEgg
        2
    deadEgg  
       Mar 7, 2019
    而且最近总是把系统搞崩。。
    ByteRan
        3
    ByteRan  
       Mar 7, 2019
    卧槽,楼主这个资源查看是什么啊,跪求分享。
    hei1000
        4
    hei1000  
       Mar 7, 2019
    @tanranran #3 终端里面的 top
    gz911122
        5
    gz911122  
       Mar 7, 2019
    @tanranran linux 自带的 top 命令啊
    kokutou
        6
    kokutou  
       Mar 7, 2019
    绿色守护伺候就行了。。。
    Navee
        7
    Navee  
       Mar 7, 2019
    现在安卓都能 top 看进程了= =
    honeycomb
        8
    honeycomb  
       Mar 7, 2019 via Android
    appops 伺候,把它的 run_in_background 禁用即可。
    另外,建议用 play 上的国际版,包可以到 apkpure 等地方下载
    skylancer
        9
    skylancer  
       Mar 7, 2019   ❤️ 1
    @Navee 我想知道哪一年不可以
    v2zhao
        10
    v2zhao  
       Mar 7, 2019
    @Navee shell 啊
    20015jjw
        11
    20015jjw  
       Mar 7, 2019 via Android
    @Navee 1.6 就行
    orangeade
        12
    orangeade  
       Mar 7, 2019
    港区下载 bilibili 国际版
    而且系统设置里把后台运行的限制打开就好了
    fox0001
        13
    fox0001  
       Mar 7, 2019 via Android
    不给后台运行就好了
    bluesky139
        14
    bluesky139  
    OP
       Mar 7, 2019
    @kokutou
    @honeycomb
    @orangeade
    @fox0001
    后台限制早就开了,没用。
    绿色守护也没用,我用的 Shadow Hibernation,我并不希望它在每次灭屏的时候被杀掉。
    国际版貌似不支持免流,也没有直播样。

    给我的感觉像是开了个线程没控制好,进入了死循环样。
    nanaw
        15
    nanaw  
       Mar 7, 2019 via Android
    @orangeade 国际版只要检测到系统语言非中文就会显示为繁体。十分恶心
    honeycomb
        16
    honeycomb  
       Mar 7, 2019 via Android
    @bluesky139
    shallow hibernation 确实没用,这东西不会杀进程,只是强迫应用进入 app standby 状态。你可能要专门为其使用普通模式+开启绿色守护的通知栏监听(但是这样只能解决后台播放时不杀)

    Android9 还有一个 run_any_in_background,会杀前台进程,所以也不适用你的情况。

    所以去 B 站的反馈群?

    play 版目前没有免流和直播,于是我放弃了这两个功能,但不会因此迁移回内地版。
    h3k5s9nx8n
        17
    h3k5s9nx8n  
       Mar 8, 2019 via Android
    分享一个我的解决办法
    没 root
    修改 AndroidManifest.xml 禁了些服务和 receiver
    服务仅保留 BackgroundMusicService IMPushService IjkMediaPlayerService KeepAliveService VideoDownloadService
    用 appops 改 run in background 为拒绝
    绿色守护添加 bilibili

    效果:
    有缓存任务时划掉后台仅后台下载服务存活,下载完成后如已熄屏会被系统杀掉,未熄屏会在熄屏时被绿色守护杀掉
    无缓存任务时划后台会直接被系统杀掉
    h3k5s9nx8n
        18
    h3k5s9nx8n  
       Mar 8, 2019 via Android
    @h3k5s9nx8n receiver 全禁
    h3k5s9nx8n
        19
    h3k5s9nx8n  
       Mar 8, 2019 via Android
    @h3k5s9nx8n 我用的 aosp9.0
    8.1 的时候需要用 appops 禁 3 个权限才能达到类似的效果 run in background wake lock 还有一个不记得了
    bluesky139
        20
    bluesky139  
    OP
       Mar 10, 2019 via Android
    @honeycomb 我就是想用 app standby 状态,然而不尽人意。反馈估计没用吧,像这种问题不直接跟开发讲别人都不知道你在说什么。
    bluesky139
        21
    bluesky139  
    OP
       Mar 10, 2019 via Android
    @h3k5s9nx8n 我用 appops 把 wake lock 禁了,然后把 service 和 receiver 几乎全禁了(有些会重新启起来),仍然没用。
    honeycomb
        22
    honeycomb  
       Mar 10, 2019 via Android
    @bluesky139 如果你就是想对 B 站的 app 用 app standby,那么就别想把它杀掉。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3787 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 72ms · UTC 00:47 · PVG 08:47 · LAX 17:47 · JFK 20:47
    ♥ Do have faith in what you're doing.