Demasiadas búsquedas de Wi-Fi en segundo plano

Cuando una app realiza búsquedas de Wi-Fi en segundo plano, se activa la CPU, lo que provoca un agotamiento de la batería. Cuando se realizan demasiadas búsquedas, se puede reducir de forma notoria la duración de batería del dispositivo. Se considera que una app se ejecuta en segundo plano si tiene el estado PROCESS_STATE_BACKGROUND o PROCESS_STATE_CACHED.

En este documento, se explica cómo detectar cuando tu app realiza demasiadas búsquedas de Wi-Fi en segundo plano y se incluyen sugerencias para diagnosticar el problema y corregirlo.

Cómo detectar el problema

Quizás no siempre estés al tanto de que tu app realiza una cantidad excesiva de búsquedas de Wi-Fi. Si ya la publicaste, Android vitals puede ayudarte a que te enteres del problema de modo que puedas corregirlo.

Android vitals

Android vitals puede ayudarte a mejorar el rendimiento de tu app. Para ello, te envía alertas a través de Play Console cuando esta realiza demasiadas búsquedas de Wi-Fi en segundo plano. Android vitals considera que las búsquedas de Wi-Fi son demasiadas cuando una app realiza más de 4 búsquedas por hora en el 0.10% de las sesiones de batería mientras se ejecuta en segundo plano.

La definición de sesión de batería depende de la versión de la plataforma.

  • En Android 10, una sesión de batería es la agregación de todos los informes de batería que se reciben en un período determinado de 24 horas. Un informe de batería hace referencia al intervalo entre dos cargas de batería, que puede ser desde menos del 20% hasta más del 80%, o desde cualquier nivel de carga hasta el 100%.
  • En Android 11, una sesión de batería es un período fijo de 24 horas.

Si deseas obtener información sobre cómo Google Play recopila datos de Android vitals, consulta la documentación de Play Console.

Cómo investigar las búsquedas de Wi-Fi

Algunas herramientas, como Battery Historian, pueden ayudarte a obtener estadísticas más detalladas sobre el comportamiento de búsqueda de Wi-Fi de tu app. Battery Historian proporciona una visualización del comportamiento de la búsqueda de Wi-Fi por app, lo que puede ayudarte a obtener una idea más clara de lo que sucede con ella. Para obtener más información sobre Battery Historian, consulta Cómo analizar el uso de energía con Battery Historian.

Para obtener información sobre cómo usar Battery Historian, consulta la Explicación de Batterystats y Battery Historian.

Cómo reducir las búsquedas

Si es posible, tu app debería realizar las búsquedas de Wi-Fi mientras se ejecuta en primer plano. Los servicios en primer plano presentan notificaciones automáticamente. Por lo tanto, al realizar las búsquedas de Wi-Fi en primer plano, el usuario puede saber cuándo se llevan a cabo en su dispositivo y el motivo.

Si deseas obtener información para realizar búsquedas en primer plano, consulta la documentación de la clase WifiManager.

Si tu app no puede evitar realizar las búsquedas de Wi-Fi mientras se ejecuta en segundo plano, puedes aplicar una estrategia de inicialización diferida. Esta incluye tres técnicas que puedes usar a fin de disminuir las búsquedas de Wi-Fi: reducir, diferir y fusionar. Si deseas obtener información sobre estas técnicas, consulta Cómo optimizar la duración de batería.