Saltar al contenido
Codifíca.me | Desarrollo web | Programación

Versiones de Android y Errores raros

1 junio, 2019

Cuando nos encontramos con errores que le pasan a muy pocos, tenemos que estar atentos a la versión de Android del terminal. Y lo digo porque siempre se me olvida a mí.

¿Cómo funcionan las versiones en Android a grosso modo? Cuando trabajamos en android definimos dos parámetros (que en verdad son 3, pero con 2 nos vale)

Versión mínima: indica la versión más baja con la que somos compatible. Cada vez que se programa con algo “novedoso”, puede que haya que tocar el código para que sea compatible con versiones más antiguas. Los desarrolladores podemos no darnos cuenta de que hay que hacerlo de alguna forma especial para estas versiones.


Versión objetivo: indica la versión máxima cuyas funcionalidades podemos usar. Es decir, si sacan algo nuevo para android 9.0 y nosotros apuntamos a esta versión, es posible que fallen cosas de versiones anteriores a android 9.0, cambiar este parámetro es peligroso pero como intentamos que las apps estén lo más actualizadas posibles, lo cambio siempre que hay algo nuevo. Igual que en el caso anterior, no podemos saber generalmente (salvo excepciones) que puede fallar en otros niveles de API.

Entonces, si la mínima es la 4.0 como en nuestro caso y la máxima es la 9.0, ¿significa eso que cuando saquen la 10 no funcionará la app? No, la app debería funcionar perfectamente excepto casos aislados como lo fue Android 6.0 con el tema de los permisos. Es cuando intentemos usar algo de Android 10, (y cambiemos ese numerito en la app) cuando podrá fallar en versiones anteriores.

¿Como se harían las pruebas perfecta? Pues haciendo que los desarrolladores hagan tests y usando firebase para que se testen 7000 dispositivos simultáneamente online.

¿Cómo deberíamos hacer unas pruebas decentes al menos? Pues haciendo la batería de pruebas con un Android 4.0 y otro con un 9.0 en este caso (De nada, Jose Luís).

Pero con lo que quiero que os quedéis en general es que, si hay problemas puntuales, miremos en que extremo está el terminal. Si, por ejemplo, tenemos problemas con android 4.4 o android 5, pues tendríamos que probar en un android 4.0, 4.1, 4.4, 5.0. Si tienen problemas en un 8.0, habría que vigilar los 8.0, 9.0, antes de decidir que es un problema de su propio móvil. Si ocurriese en un 6.0 o 7.0, que están ahí en el medio, pues es poco probable que sea por la versión de Android.

Liando aún más el tema, ¿ Cómo se generan versiones del SO de Android? Pues Google trabaja en el SO y saca una versión gratuita y libre para todo el mundo, llamada AOSP. A partir de entonces Google le mete sus cosas, al igual que Xiaomi le mete sus cosas y generan sus SO (Android / MIUI / OxigenOS /…) Y por último, dejan a los fabricantes que añadan su capa de mierda personalización y además que implementen ciertos comportamientos de Android.

La última gran pregunta, ¿Porqué os estoy contando esta mierda? Porque resulta que, por ejemplo, google puede haber decidido cambiar cómo funciona lo del mock location hace años pidiendo que se use un método nuevo pero permitiendo que, quien quiera, pueda seguir usando el método viejo y coge Samsung y lo implementa en todos sus terminales. Y un día sacan el Galaxy 9+ y dicen, a tomar por culo, paso de implementar esto, que está en desuso… Y entonces ATM falla y vemos las versiones y decimos, joer, si en otro android 9.0 funciona bien, seguro que no tiene que ver… Así que sí, la versión de Android ha influido tremendamente en esta incidencia también, pero no era el único factor a tener en cuenta…