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

2019-03-07 09:21:21 +08:00
 bluesky139
如图,在用一段时间的客户端后放后台(并不是放后台继续播放,就是不用了正常按 Home 键出去),使用 top 命令查看,始终有 10% 左右的 CPU 占用,会一直持续下去。

现在的系统是 AOSP 8.1.

3879 次点击
所在节点    全球工单系统
22 条回复
hongch
2019-03-07 09:24:48 +08:00
因为有 service 这种东西的存在
deadEgg
2019-03-07 09:36:28 +08:00
而且最近总是把系统搞崩。。
tanranran
2019-03-07 10:25:24 +08:00
卧槽,楼主这个资源查看是什么啊,跪求分享。
hei1000
2019-03-07 10:34:47 +08:00
@tanranran #3 终端里面的 top
gz911122
2019-03-07 10:44:24 +08:00
@tanranran linux 自带的 top 命令啊
kokutou
2019-03-07 10:45:41 +08:00
绿色守护伺候就行了。。。
Navee
2019-03-07 11:02:49 +08:00
现在安卓都能 top 看进程了= =
honeycomb
2019-03-07 11:05:27 +08:00
appops 伺候,把它的 run_in_background 禁用即可。
另外,建议用 play 上的国际版,包可以到 apkpure 等地方下载
skylancer
2019-03-07 11:07:22 +08:00
@Navee 我想知道哪一年不可以
bunnyblueair
2019-03-07 11:08:16 +08:00
@Navee shell 啊
20015jjw
2019-03-07 14:01:36 +08:00
@Navee 1.6 就行
orangeade
2019-03-07 14:02:41 +08:00
港区下载 bilibili 国际版
而且系统设置里把后台运行的限制打开就好了
fox0001
2019-03-07 14:06:34 +08:00
不给后台运行就好了
bluesky139
2019-03-07 14:38:55 +08:00
@kokutou
@honeycomb
@orangeade
@fox0001
后台限制早就开了,没用。
绿色守护也没用,我用的 Shadow Hibernation,我并不希望它在每次灭屏的时候被杀掉。
国际版貌似不支持免流,也没有直播样。

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

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

所以去 B 站的反馈群?

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

效果:
有缓存任务时划掉后台仅后台下载服务存活,下载完成后如已熄屏会被系统杀掉,未熄屏会在熄屏时被绿色守护杀掉
无缓存任务时划后台会直接被系统杀掉
h3k5s9nx8n
2019-03-08 13:40:11 +08:00
@h3k5s9nx8n receiver 全禁
h3k5s9nx8n
2019-03-08 13:46:31 +08:00
@h3k5s9nx8n 我用的 aosp9.0
8.1 的时候需要用 appops 禁 3 个权限才能达到类似的效果 run in background wake lock 还有一个不记得了
bluesky139
2019-03-10 12:44:54 +08:00
@honeycomb 我就是想用 app standby 状态,然而不尽人意。反馈估计没用吧,像这种问题不直接跟开发讲别人都不知道你在说什么。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/541970

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX