首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >防止“检测派生进程cpu过多”导致后台服务被杀

防止“检测派生进程cpu过多”导致后台服务被杀
EN

Stack Overflow用户
提问于 2016-07-07 03:27:31
回答 2查看 3.4K关注 0票数 9

我正在调试Syncthing Android包装器的issue。Android应用程序包装了Syncthing项目的本机二进制文件,并提供了一些额外的功能,比如基于连接WiFi、power等的启动/停止。

不幸的是,该服务在WiFi change上不能自动启动的问题已经出现了,特别是对于已经升级到Android6的手机。由于我的个人手机最近升级到了6.0.1,我终于能够调试到这个问题,今天我注意到了以下几点:

代码语言:javascript
复制
07-06 20:52:26.562  1181  1363 I ActivityManager: [BgDetect]chkExcessCpu doKills: true uptime: 300309
07-06 20:52:26.960  1181  1363 I ActivityManager: [BgDetect]detect excessive cpu on forked process libsyncthing.so(pid : 2758) plan to stop it 371060 during 300309
07-06 20:52:26.960  1181  1363 I ActivityManager: [BgDetect]force stop com.nutomic.syncthingandroid.debug (uid 10132)
07-06 20:52:26.965  1181  1363 I ActivityManager: Force stopping com.nutomic.syncthingandroid.debug appid=10132 user=0: from pid 1181
07-06 20:52:26.966  1181  1363 I ActivityManager: Killing 1360:com.nutomic.syncthingandroid.debug/u0a132 (adj 15): stop com.nutomic.syncthingandroid.debug
07-06 20:52:26.968  1181  1363 W ActivityManager: Scheduling restart of crashed service com.nutomic.syncthingandroid.debug/com.nutomic.syncthingandroid.syncthing.SyncthingService in 1000ms
07-06 20:52:26.968  1181  1354 V ActivityManager: killProcessGroupAsync took 1 ms for PID 1360 on thread 14
07-06 20:52:26.971  1181  6410 I libprocessgroup: Killing pid 2758 in uid 10132 as part of process group 1360
07-06 20:52:26.973  1181  6410 I libprocessgroup: Killing pid 2758 in uid 10132 as part of process group 1360
07-06 20:52:26.974  1181  1363 I ActivityManager:   Force stopping service ServiceRecord{47304c8 u0 com.nutomic.syncthingandroid.debug/com.nutomic.syncthingandroid.syncthing.SyncthingService}

Syncthing协议在CPU方面相当繁重,涉及加密、哈希等。因此,由于派生的本机二进制文件对CPU的高要求,该服务似乎被强制停止。

该应用程序已被标记为“无电池优化”,但它仍在被终止。是否有一种方法可以防止ActivityManager由于派生进程的CPU需求而终止应用程序?

EN

回答 2

Stack Overflow用户

发布于 2018-08-08 06:07:46

不幸的是,这是一个OnePlus / OxygenOS功能,它将杀死任何基于谁知道什么规则的后台进程,以提供更好的电池寿命外观。

目前,我在GitHub issue中找到了一种非代码的变通方法,它似乎有帮助,但远不理想:pin/lock the application on the recents screen

票数 3
EN

Stack Overflow用户

发布于 2019-05-18 17:42:40

正在测试我的前台服务,并意识到这是一个性能问题,主要是CPU。因此,我使用分析器强制执行性能,并将其添加到白名单中。

降低了cpu,ram和电池的消耗,并完成。

Foreground notification service not working in one plus devices

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38232237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档