Hier encore, j'ai acheté un appareil noname appelé Hisense U30
avec Android 9 et ça marche mal. Il tue les applications en arrière-plan TRÈS AGGRESSIVEMENT. Par exemple, je lance la musique dans Yandex.Music
(Spotify analogique russe), éteindre l'écran et dans 1-2 minutes quelque chose tue le joueur. Ça tue tout.
Ce que j'ai déjà essayé :
- Désactivez tous les économiseurs de batterie préinstallés ;
- Désactiver l'optimisation de la batterie pour certaines applications ;
- J'ai tout essayé, de Les applications en arrière-plan sont détruites (par quelque chose d'autre que l'optimisation de la batterie).
Rien. Les joueurs se font toujours tuer. Le système d'exploitation semble assez proche du stock Android (au moins pas beaucoup d'applications préinstallées). Je pense donc que le système d'exploitation est en quelque sorte mal configuré.
J'ai regardé dans logcat
et ce que j'ai obtenu :
-
Cela commence par
MemoryDetectService
comme ceciMemoryDetectService: onStartCommand()---> action = screen_off_app_clear MemoryDetectService: AutoClearState -----> begin
-
Ensuite, ce service scanne toutes les applications en cours (je suppose) et trouve aussi le mien.
MemoryDetectService: getRunningAppPackageName()---> begin ... MemoryDetectService: RunningAppProcessInfo: cur.processName = ru.yandex.music:Metrica, pkgName = ru.yandex.music, uid = 10123, uid % 10000 = 123 MemoryDetectService: RunningPkgList---> pkgName = ru.yandex.music ... MemoryDetectService: getCurrentHomePackages(): recentTasks = ru.yandex.music
-
Et puis, DONC, décider de tuer mon joueur.
MemoryDetectService: mRunningPkgList: pkgName = ru.yandex.music MemoryDetectService: mNeedForceStopPkgList---> pkgName = ru.yandex.music ... MemoryDetectService: currentPkgName---> ru.yandex.music MemoryDetectService: hasPkgNeedClean(): currentPkgName(New Method: mRecent2PkgList.get(0)) = ru.yandex.music MemoryDetectService: getWhiteListFromFile: String = null MemoryDetectService: hasPkgNeedClean(): memBefore = 3894, mWhiteListStr =
-
Et puis il a commencé à tuer des processus
MemoryDetectService: clearMemory-----> begin MemoryDetectService: clearMemory(): sendBroadcast hmct.intent.action.CLEAR_CACHE: null; MemoryDetectService: screen on cleaning open = true , screen off cleaning open = true MemoryDetectService: killPackage---> begin ... MemoryDetectService: forceStopPackage---> begin MemoryDetectService: clearMemory(forceStopPackage): isScreenOn = false ActivityManager: Force stopping ru.yandex.music appid=10123 user=0: from pid 1972 ANDR-IOP: IOP HAL: Received pkg_name = ru.yandex.music pid = 0 ActivityManager: kill app.info.packageName=ru.yandex.music minOomAdj=-10000 packageName=ru.yandex.music ActivityManager: kill app.info.packageName=ru.yandex.music minOomAdj=-10000 packageName=ru.yandex.music ActivityManager: Killing 6673:ru.yandex.music:Metrica/u0a123 (adj 200): stop ru.yandex.music ANDR-IOP: IOP HAL: Received pkg_name = ru.yandex.music:Metrica pid = 0 ActivityManager: Scheduling restart of crashed service ru.yandex.music/com.yandex.metrica.MetricaService in 20937ms Zygote : Process 7489 exited due to signal (9) ... ActivityManager: Killing 6616:ru.yandex.music/u0a123 (adj 200): stop ru.yandex.music ANDR-IOP: IOP HAL: Received pkg_name = ru.yandex.music pid = 0 libprocessgroup: kill(-7799, 9) failed: No such process ActivityManager: Scheduling restart of crashed service ru.yandex.music/.common.service.player.MediaSessionService in 20929ms ActivityManager: Scheduling restart of crashed service ru.yandex.music/.common.service.player.AppForegrounderService in 20929ms ... ActivityManager: Force finishing activity ActivityRecord{ba18734 u0 ru.yandex.music/.main.MainScreenActivity t248} MemoryDetectService: setPackageAliveState start----packageName = ru.yandex.music MemoryDetectService: setPackageAliveState end----packageName = ru.yandex.music, aInfo.processName = ru.yandex.music MemoryDetectService: mClearAppList---> pkgName = ru.yandex.music, mClearApp++--->1
Une idée de la façon de réparer cela ?
P.S. AFAIK il n'y a pas d'autre ROM comme Linage OS pour mon téléphone, et je ne suis pas un grand fan de la ROM Linage OS. root
parce que ça va casser Google Pay, donc ce serait grand de s'en occuper sans mettre l'appareil en marche.
Mise à jour 1
J'ai cherché ce service dans dumpsys
et j'ai une idée : désactiver ce service via adb shell am stopservice com.android.systemui/com.hmct.systemui.taskmanager.detectmemory.MemoryDetectService
. Je reviendrai avec les résultats.