TL;DR: ¿Existe alguna forma razonablemente eficaz de averiguar qué programas hacen que los servicios del sistema operativo Android agoten la batería?
A menudo me encuentro con que alguna aplicación hace que mi teléfono se caliente y agote la batería en pocas horas mientras la pantalla está apagada. Aunque en el peor de los casos ayuda desinstalar todas las aplicaciones que no son esenciales, sigo sufriendo un gran consumo de batería después de reducir el teléfono a las que considero más esenciales: estamos hablando de al menos 3 días en espera cuando se está en casa, frente a menos de 8 horas cuando se utiliza activamente durante una hora, con un uso activo que consume entre el 30 y el 40% de la batería, y los procesos en segundo plano que consumen el resto.
Cuando se utilizan las estadísticas de la batería incorporadas o cualquier aplicación que informa de las estadísticas de la batería, ya sea mostrando detalles sobre el uso de la CPU, wakelocks o simplemente alguna estimación del uso de la batería en general, me parece que las estadísticas son bastante inútiles: El primero de la lista es siempre "Android OS" y, desde que se introdujo, los servicios de Google con el siguiente par de entradas, en una fracción de los listados relacionados con el sistema operativo de ser aplicaciones que realmente han utilizado activamente en el primer plano por un tiempo prolongado.
Básicamente, las aplicaciones que se comportan mal parecen delegar en los servicios del Sistema Operativo y ninguna aplicación que he probado hasta ahora (tal vez incluso debido a las limitaciones del sistema operativo) fue capaz de dividir qué aplicación ha estado solicitando estos servicios para hacer el trabajo, haciendo que las estadísticas de la batería sean básicamente inútiles. Y para probar cada aplicación "desinstalar, ejecutar el teléfono por un tiempo, volver a instalar"... francamente, ¿quién tiene esa cantidad de tiempo?
Es más, al no poder identificar los derroches de batería entre las aplicaciones que necesito instalar, ni siquiera puedo presentar informes de errores si se comportan mal en mi dispositivo.
¿Existe alguna posibilidad en Android de averiguar qué aplicación se está comportando mal en lugar de decir "es el sistema operativo, ríndete"?