gpt4 book ai didi

android - 防止后台服务因为 "detect excessive cpu on forked process"被杀死

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:41:31 24 4
gpt4 key购买 nike

我正在调试 issueSyncthing Android wrapper 。 Android 应用程序包装了 Syncthing 项目的 native 二进制文件,并提供了一些额外的功能,例如基于连接的 WiFi、电源等启动/停止。

不幸的是,在 WiFi 变化时服务不再自动启动的问题,特别是已经升级到 Android 6 的手机。由于我的个人手机最近升级到 6.0.1,我终于能够调试问题,今天我注意到以下内容:

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 协议(protocol)在 CPU 方面相当繁重,涉及加密、散列等。因此,由于 fork native 二进制文件的高 CPU 需求,该服务似乎被强制停止。

该应用程序已被标记为“无电池优化”,但它仍然被杀死。有没有办法防止 ActivityManager 由于 fork 进程的 CPU 需求而终止应用程序?

最佳答案

不幸的是,这是 OnePlus/OxygenOS 的一项功能,它将根据谁知道什么规则终止任何后台进程,以提供更长的电池生命周期。

现在,我在 GitHub issue 中找到了一个非代码解决方法这似乎有所帮助,但远非理想:pin/lock the application on the recents screen .

关于android - 防止后台服务因为 "detect excessive cpu on forked process"被杀死,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38232237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com