6 votos

Algo que mata a las aplicaciones en segundo plano

Ayer mismo compré un dispositivo no conocido llamado Hisense U30 con Android 9 y funciona mal. Mata las aplicaciones en segundo plano MUY AGRESIVAMENTE. Al igual que empiezo la música en Yandex.Music (Spotify analógico ruso), apago la pantalla y en 1-2 minutos algo mata al reproductor. Mata todo.

Lo que ya he probado:

  1. Desactiva todos los ahorradores de batería preinstalados;
  2. Desactivar la optimización de la batería para ciertas aplicaciones;
  3. Probado todo, desde Las aplicaciones en segundo plano son eliminadas (por algo que no sea la optimización de la batería)

Nada. El jugador sigue siendo asesinado. El sistema operativo se parece bastante a Android de serie (al menos no hay muchas aplicaciones preinstaladas). Así que mi conjetura es que el sistema operativo es de alguna manera configurado incorrectamente.

He mirado en logcat y lo que tengo:

  1. Comienza con MemoryDetectService así

    MemoryDetectService: onStartCommand()---> action = screen_off_app_clear MemoryDetectService: AutoClearState -----> begin

  2. Entonces este servicio escanea a través de todas las aplicaciones (supongo) que se están ejecutando y encuentra el reproductor mío también

    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

  3. Y luego, de alguna manera, decide matar a mi jugador

    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 =

  4. Y entonces empieza a matar procesos

    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

¿Alguna idea de cómo arreglar esto?

P.D. AFAIK no hay ninguna otra ROM como Linage OS para mi teléfono, y no soy un gran fan de root porque esto romperá Google Pay, así que sería gran para tratar con él sin rootear el dispositivo.

Actualización 1

Busqué este servicio en dumpsys y tengo una idea: desactivar este servicio a través de adb shell am stopservice com.android.systemui/com.hmct.systemui.taskmanager.detectmemory.MemoryDetectService . Volveremos con los resultados.

0 votos

Tengo el mismo problema. Tengo 2G de RAM 4G vacía y sin embargo mi navegador se mata cada vez que cambio a cualquier otra aplicación. Estoy usando Xiaomi Lite (supuestamente, debe ser Android vainilla)

3voto

Flowneee Puntos 106

Como ya he dicho, he intentado desactivar MemoryDetectService a través de adb ( adb shell am stopservice com.android.systemui/com.hmct.systemui.taskmanager.detectmemory.MemoryDetectService ), y parece que ha funcionado. Un día, ninguna de mis aplicaciones se mata mientras las uso, el drenaje de la batería es el mismo (~25% del máximo ayer, ~25% hoy).

Por el nombre del servicio asumo que se trata de un servicio, escrito por Hisense mismos (si es que pueden modificar SystemUI ).

Sin embargo, todavía hay pocas preocupaciones:

  1. Todo parece estar bien, pero desactivar algún servicio del sistema es peligroso, así que hay que estar preparado para cualquier s**t;
  2. No estoy seguro de si este servicio permanecerá desactivado, si voy a reiniciar mi teléfono.

De todos modos, consideraré este problema resuelto.

ACTUALIZACIÓN

Sí, como esperaba, este arreglo no persiste después de reiniciar, pero me las arreglé para escribir bash script y ejecutarlo manualmente después de cada reinicio a través de Termux:

#!/bin/bash

am stopservice com.android.systemui/com.hmct.systemui.taskmanager.detectmemory.MemoryDetectService

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X