¿Las aplicaciones tardan en responder? Puede ser culpa de Google

En AndroidTR mancharnos las manos y meternos en el código de las aplicaciones. Normalmente lo hacemos para inmiscuirnos en los planes de empresas como Amazfit para filtrar sus nuevos dispositivos, no obstante, hoy vamos a hacerlo para llegar a la raíz de un problema que puedes estar viviendo como usuario y darle voz a muchos desarrolladores.

¿Qué pasa al abrir una app?

Para ponernos en contexto, cuando abrimos una aplicación ya sea por primera vez o después de borrarla de nuestras apps recientes, esta carga todas las bibliotecas que permiten su funcionamiento. Es en este punto donde software como el de AdMob, el servicio de anuncios de Google, u otras librerías, arrancan para que la aplicación pueda funcionar correctamente.

¿Qué es un ANR?

Imagen de ejemplo de ANR. Fuente Android.

Un ANR o “Android No Responde” es un evento que sucede cuando la interfaz de una aplicación se bloquea, normalmente porque se están ejecutando en el mismo hilo principal demasiadas cosas.

Como usuarios podemos ver uno de estos eventos cuando nos aparece un diálogo en el que literalmente Android nos avisa de que la aplicación no responde, junto con las opciones de finalizar la aplicación o esperar.

Típicamente la forma más sencilla de causar un error ANR es ejecutar una tarea compleja en un dispositivo con un procesador poco solvente (Sí, según tu teléfono y sus características las aplicaciones pueden fallar más frecuentemente).

¿Qué sucede con los anuncios de Google?

Pues bien, ahora que sabemos qué es un ANR, muchos desarrolladores denuncian que la biblioteca de anuncios de Google los está originando al iniciarse. A esta información pueden acceder desde sus consolas del Google Play que a su vez alerta de “comportamientos inadecuados”.

Podemos imaginarnos que existen multitud de bugs en proyectos tan grandes como el de AdMob, por lo que existen plataformas destinadas únicamente a que los desarrolladores denuncien los fallos que han encontrado. En el caso de Google tenemos un “Grupo”, con una conversación iniciada en 2021, donde el problema ha sido expuesto. ¿La respuesta de Google? Ir posponiendo la solución a la siguiente versión de la biblioteca que parece no llegar nunca.

Es importante destacar que los desarrolladores denuncian tiempos de hasta 8 segundos donde la aplicación simplemente no reacciona.

¿Cerrar la aplicación es la solución?

Aunque como usuarios podamos estar molestos cuando una app no responde en Android, en el caso de los desarrolladores se trata de un doble problema. Por un lado, recibiendo malas puntuaciones de aquellos que experimentan el fallo. Por otro, las restrictivas políticas de Google Play que penalizan “malos comportamientos” sin importar si Google es el causante de los mismos.

Como solución al segundo problema, uno de los afectados por este bug en el SDK de anuncios de Google ha creado su propia biblioteca, ante la impasividad de Google, con el objetivo de “matar” la aplicación cuando un ANR sea detectado, antes de que el teléfono se “chive” a Google del problema.

Resulta preocupante que medidas como esta sean la única alternativa antes de sufrir sanciones por parte de Google.

Actualización, 26 de mayo.

Meses después de lo prometido, algo normal en el mundo del software pero bastante lamentable para una empresa del calado de Google, AdMob ha lanzado una nueva versión de su SDK que promete mejorar los tiempos de carga y los errores ANR. El peaje a pagar es que este nuevo sistema de desarrollo es compatible únicamente con Android 4.4 o superior. Además, puede pasar un tiempo hasta que veamos llegar estás mejoras al mercado, puesto que algunos de los desarrolladores dependen a su vez de bibliotecas de terceros que realizan la implementación de AdMob.