首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
V2EX  ›  全球工单系统

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

  •  
  •   bluesky139 · 275 天前 · 2377 次点击
    这是一个创建于 275 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如图,在用一段时间的客户端后放后台(并不是放后台继续播放,就是不用了正常按 Home 键出去),使用 top 命令查看,始终有 10% 左右的 CPU 占用,会一直持续下去。

    现在的系统是 AOSP 8.1.

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

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

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

    所以去 B 站的反馈群?

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

    效果:
    有缓存任务时划掉后台仅后台下载服务存活,下载完成后如已熄屏会被系统杀掉,未熄屏会在熄屏时被绿色守护杀掉
    无缓存任务时划后台会直接被系统杀掉
        18
    h3k5s9nx8n   274 天前 via Android
    @h3k5s9nx8n receiver 全禁
        19
    h3k5s9nx8n   274 天前 via Android
    @h3k5s9nx8n 我用的 aosp9.0
    8.1 的时候需要用 appops 禁 3 个权限才能达到类似的效果 run in background wake lock 还有一个不记得了
        20
    bluesky139   272 天前 via Android
    @honeycomb 我就是想用 app standby 状态,然而不尽人意。反馈估计没用吧,像这种问题不直接跟开发讲别人都不知道你在说什么。
        21
    bluesky139   272 天前 via Android
    @h3k5s9nx8n 我用 appops 把 wake lock 禁了,然后把 service 和 receiver 几乎全禁了(有些会重新启起来),仍然没用。
        22
    honeycomb   272 天前 via Android
    @bluesky139 如果你就是想对 B 站的 app 用 app standby,那么就别想把它杀掉。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2402 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 09:19 · PVG 17:19 · LAX 01:19 · JFK 04:19
    ♥ Do have faith in what you're doing.