Android 5.1 está en camino

¿Cómo ha cambiado Android para los desarrolladores móviles desde 2014 hasta hoy? Parecería que solo puede abrir la descripción oficial de cada versión y averiguarlo. Pero es más interesante no solo leer registros de cambios secos, sino recordar todo junto y sacar conclusiones generales de hechos individuales.

En junio, hice una presentación sobre esto en una conferencia Mobius, y ahora para la audiencia de Habr publico su versión en texto. Si tiene algo que agregar, ¡escríbalo en los comentarios!

Si está interesado en seguir las últimas noticias de desarrollo de Android y recibir una selección de artículos interesantes sobre este tema, debe suscribirse a Canal de Telegram “Android Broadcast”!

Android Lollipop 5.0

Según tengo entendido, este fue el cambio más masivo en el sistema operativo Android, un hito muy importante.

ARTVM. En primer lugar, había una nueva máquina virtual para ejecutar bytecode que reemplazó a Dalvik: Android Runtime. Ella aportó mucho:

soporte para procesadores x64;

compilación Ahead-of-Time (AoT);

mejoras en el Garbage Collector (recolector de basura, en lo sucesivo denominado GC): trabajo en segundo plano, optimización de pases de GC, compatibilidad con GC compacta.

Proyecto Volta. Mejore la duración de la batería de los dispositivos con la ayuda del software. Luego, Google se dio cuenta de que había dos problemas: los desarrolladores y proveedores de aplicaciones de terceros. Y debe ser amigo de los proveedores, pero los desarrolladores son esos “piratas” que necesitan ser limitados.

Programador de trabajos. Una nueva API que le permite ejecutar tareas en segundo plano de manera centralizada. Aparentemente bueno para los desarrolladores, pero para Android es una forma de controlar todo lo que hace una aplicación y permitirlo o rechazarlo.

gerente de trabajo Es posible que no esté familiarizado con JobScheduler, pero sí con WorkManager, que transfirió toda la funcionalidad de la API del sistema a versiones anteriores de Android y amplió las capacidades de JobScheduler. Por ejemplo, WorkManager le permite crear dependencias entre tareas. Tampoco usa JobScheduler en versiones de Android anteriores a la 6.0 y usa AlarmManager allí para brindar la misma experiencia en todas las versiones de Android compatibles. Hoy en día, WorkManager es la forma principal de realizar tareas en segundo plano.

Ahorro de batería. Anteriormente, varios fabricantes de teléfonos inteligentes ya habían intentado ahorrar energía de la batería, pero ahora Battery Saver apareció por primera vez para el sistema en su conjunto. Incluía:

disminución de la frecuencia del procesador;

disminución de la frecuencia de actualización de la pantalla;

limitar el consumo de datos en segundo plano;

otras optimizaciones del proveedor.

Ahora, a través del SDK, los desarrolladores tienen la oportunidad de determinar si este modo se está ejecutando y de alguna manera reaccionar ante él.

Diseño de materiales. El primer intento de estandarizar el diseño de aplicaciones con una ideología propia: cómo y por qué se debe construir un sistema de diseño, cuáles son los bloques principales.

Este desarrollo de Android avanzó mucho en términos de interfaz de usuario: ahora podría decir: “Aquí tenemos nuestro propio diseño, no lo hagamos como en iOS”.

Hilo de procesamiento. Un hilo especial creado para descargar el hilo principal. Por ejemplo, RecyclerView tiene la capacidad de preparar elementos de lista antes de que el usuario los necesite. Este trabajo se lleva a cabo al máximo en el Render Thread. Las animaciones y otras operaciones de la interfaz de usuario también se han ido allí.

READ
Qué móviles de Xiaomi te permiten aumentar la memoria RAM

Vista de lista 2.0. No se introdujo con ese nombre y es mejor conocido como RecyclerView. Aquí surgió otra tendencia importante: los nuevos componentes ya no formaban parte del SDK, sino de las bibliotecas Jetpack, también conocido como AndroidX. Ahora puede actualizarlos de forma independiente y no crear fragmentación en la experiencia del desarrollador.

Soporte para gráficos vectoriales. Permitía dibujar mucho mejor y con menos archivos. Es importante comprender que la compatibilidad con gráficos vectoriales no significa compatibilidad completa con SVG. El formato SVG contiene muchas funciones para mostrar elementos y Android solo admite una pequeña parte de ellos. Además, los gráficos vectoriales no reemplazan por completo a los gráficos de trama. Raster todavía era necesario para imágenes complejas, porque los gráficos vectoriales están destinados a iconos simples.

Cámara 2 API. Ella contribuyó en gran medida al desarrollo de las cámaras. Pero la API de Camera 2 requería soporte del fabricante del teléfono y no estaba disponible en todos los dispositivos. No sé por qué Google hizo esto, porque incluso con Project Volta se dieron cuenta de que los vendedores también son malvados.

Como resultado, creamos la biblioteca Jetpack Camarax para facilitar el manejo de la cámara. Los enfoques se estandarizaron hasta eliminar la diferencia en los modos de inicio de cámara para teléfonos inteligentes de diferentes modelos. Por ejemplo, el lanzamiento de la cámara para LG estaba estrictamente en segundo plano, y para Samsung estaba en el hilo principal, aunque esto no se describía en la especificación API. Se agregó soporte para extensiones de proveedores: modo nocturno, HDR, fotos de retratos y otros, y también comenzó a simplificar el trabajo en escenarios estándar e integraciones con bibliotecas populares. Por ejemplo, para analizar el contenido de un cuadro.

vista web de cromo. El motor de la página web siempre se ha integrado en el SDK de Android y la actualización se realizó junto con el firmware. Pero en Android 5.0, se separó en una aplicación separada en el sistema, que se actualiza independientemente del firmware. El WebView que se inserta en la aplicación simplemente se conecta a ella. Resulta renderizado remoto dentro del dispositivo.

Android 6.0 melcocha

permisos de tiempo de ejecución. Probablemente, los desarrolladores de Android recuerden esta versión de Android en primer lugar gracias a este elemento. Los permisos comenzaron a otorgarse a la aplicación con la aprobación del usuario, y no durante la instalación. Los expertos en seguridad estaban especialmente contentos con esto, porque el hecho de no solicitar permisos al usuario representaba una vulnerabilidad grave para Android.

Modo Doze y App Standby. Tenemos una continuación de la idea de reducir el consumo de batería. El modo Doze es un modo que se activa cuando no está usando su teléfono y mantiene en funcionamiento solo las aplicaciones esenciales. App Standby funciona cuando no estás usando la aplicación y está minimizada. Restringe el acceso a la red y otras funciones para que la aplicación consuma menos energía. Inicialmente, el modo Doze se activaba aproximadamente media hora después de que el teléfono estuviera parado, de hecho, cuando te acostabas. App Standby se activó tan pronto como minimicó la aplicación o comenzó a usar otras.

Mensajería en la nube de alta prioridad de Firebase. Desde que aparecieron tales modos de suspensión, tuve que hacer cambios en Cloud Messaging. Surgió el concepto de mensaje de alta prioridad: un impulso que puede activar el dispositivo en modo Doze y App Standby.

READ
El famoso teléfono inteligente de botón se actualizará por primera vez

Por supuesto, es tentador asignar una alta prioridad a todas las notificaciones. Pero no, no funcionará. Tienes que tener claras tus prioridades. Por ejemplo, si tiene una aplicación con chats y el usuario ha habilitado las notificaciones allí, entonces necesita un impulso con una prioridad alta. Y si este es un chat en el que desactivó las notificaciones, ¿por qué hay una alta prioridad?

Escáner de huellas dactilares. Parcialmente, la biometría apareció como parte de la API, es decir, soporte para un escáner de huellas dactilares. Antes de esto, algunos proveedores, como Samsung, ya tenían biometría en sus implementaciones del sistema operativo. Ahora se ha convertido en una API del sistema que permite interactuar con él desde cualquier aplicación y brindar protección de datos con desbloqueo rápido del acceso a los mismos por parte del usuario.

Android 7.0 Turrón

Proyecto Svelte. Hubo una iniciativa para reducir el consumo de memoria RAM. Además, los desarrolladores se han dado cuenta de que las aplicaciones funcionan demasiado en segundo plano.

El primer golpe se dio a las transmisiones del sistema que notifican sobre eventos, por ejemplo, cuando cambia la red: CONECTIVIDAD_ACCIÓN.

Cambiar la red en la comprensión de Android no es solo la transición de Wi-Fi a una red móvil, sino también la transición de 3G a 2G con un cambio en la calidad de la señal. Y si la aplicación no se está ejecutando al mismo tiempo, el sistema la activa para entregar esta transmisión. En consecuencia, entonces debe detenerse o hacer algo.

Imagina que vas caminando por la calle. La calidad de la conexión no es la mejor, por lo que 4G o al menos 3G es estable en todas partes. Tienes alrededor del 10% de las aplicaciones de cada cien que responden a esto. ¿Cuánta energía necesita el sistema para entregar todos los eventos y mantener todo funcionando?

Iniciar un proceso no es una operación barata. Y si el teléfono también está en modo de suspensión, habrá otras superposiciones. Parece que no debería hacerse.

De manera similar, cuando un usuario tomaba una foto o un video, se agregaba a la galería y se enviaba una transmisión del sistema (ACTION_NEW_PICTURE o ACTION_NEW_VIDEO). Decidimos que tampoco necesitábamos hacer eso. Fue reemplazado por JobScheduler, que debería ejecutar tareas basadas en transmisiones prohibidas.

Acceso directo a la aplicación. Una función que apareció tanto en iOS como en Android aproximadamente al mismo tiempo.

Ejemplo de acceso directo a aplicaciones en Android 7.0

Ejemplo de acceso directo a aplicaciones en Android 7.0

El punto es que puede vincular acciones rápidas cuando hace clic en el ícono de la aplicación en el iniciador. En la primera implementación había un máximo de tres, luego cambiaron los límites. Su número también dependía de los vendedores.

Debe comprender que los atajos han evolucionado aún más. Ahora están disponibles a través de la búsqueda de aplicaciones. En algunos lanzadores, se insertan en la parte superior como una barra de acción rápida, es decir, la acción está disponible no solo a través del lanzador.

Perfiles ART. Durante varios años de uso de ART en producción, los desarrolladores del sistema operativo Android se han dado cuenta de las deficiencias del compilador AOT:

larga instalación de aplicaciones;

READ
Google hará que la voz del Asistente sea más natural

la necesidad de almacenar el código compilado en el disco (requiere espacio adicional);

cada actualización del teléfono requiere la recompilación de todas las aplicaciones;

Desperdicio constante de energía de la batería.

Las ventajas de AOT permanecieron. Por lo tanto, crearon ART Profiles, un híbrido de AOT y JIT. La conclusión es que, de forma predeterminada, el compilador JIT funciona, pero también crea perfiles de uso de aplicaciones. Y en base a esto, aquellas piezas de código que el usuario usa con mayor frecuencia se compilarán de antemano con la ayuda de AOT para un lanzamiento rápido. ¡Lo mejor de ambos mundos!

Perfiles de la nube de Google Play. Los perfiles ART comenzaron a desarrollarse y aparecieron los perfiles en la nube. La idea era ayudar a los nuevos usuarios a recopilar perfiles de dispositivos locales y transferirlos a Google Play, que los combina, y al instalar la aplicación, inmediatamente emite un perfil que reduce el tiempo de inicio en frío, porque parte de la aplicación ya ha sido compilada por otros. usuarios

En las primeras implementaciones, el sistema generaba errores. A menudo sucedía que tomábamos el mismo ensamblaje, lo subíamos a Google Play, descargábamos el APK de Google Play y todo fallaba. Pero el APK, que se instaló inmediatamente en el teléfono, no falló porque no se entregó el perfil. Esto no pasa ahora, pero en las primeras implementaciones funcionaba de forma extraña. Con los perfiles, había muchas variables a considerar. Para transferir un perfil de un dispositivo a otro, este dispositivo debe ser absolutamente idéntico: la misma versión de Android, ART VM y otras variables que pueden afectar esto.

Y luego pensaron: ¿por qué el desarrollador no puede crear un perfil por adelantado y ponerlo en la aplicación? No hace mucho tiempo, Baseline Profiles apareció y se convirtió en parte de Jetpack. Puede ejecutar una prueba especial, generar un perfil y colocarlo en la aplicación. Cuando se envía a Google Play, tomará los perfiles de la nube que ha recopilado de los usuarios, su perfil, lo fusionará y obtendrá el resultado perfecto. El perfil se optimizará tanto desde su lado como desde otros perfiles, y el usuario final obtendrá el máximo.

El proceso de creación de un perfil para ART en Google Play

El proceso de creación de un perfil para ART en Google Play

Esto le permite trabajar tanto con las partes que están activas como con las menos importantes. Sin Baseline Profiles en Jetpack Compose, sería muy malo, porque estos perfiles te permiten optimizar tanto bibliotecas como aplicaciones. Con cualquier biblioteca, puede crear un perfil para usted y colocarlo allí. Y luego se fusiona la aplicación que se conectará.

Si tiene problemas con un arranque en frío, o si está muy preocupado por esto, intente esto, realmente debería ayudar.

API de Vulkan. También actualizamos OpenGL y agregamos soporte para la API de Vulkan. Para los jugadores, esto puede explicarse aproximadamente como DirectX 12 del mundo OpenGL. Esta es una API de bajo nivel que nos permitió eliminar un montón de capas y manejar la GPU más rápido.

arranque directo. Otra característica importante. La idea es que cuando encendemos el dispositivo, nuestro almacenamiento esté encriptado y no podamos hacer nada con el dispositivo. Solo la partición del sistema puede funcionar en él.

Pero, ¿y si iniciamos el dispositivo y olvidamos desbloquearlo, pero queremos recibir SMS, llamadas y más? Gracias a Direct Boot, esto es posible. Le permite trabajar con la aplicación hasta que el almacenamiento de archivos se desbloquee con una contraseña. Puedes trabajar en una sección dedicada a esto. Puede transferir datos. Si la aplicación es crítica para trabajar en esos momentos, preste atención a esta función.

READ
Los mutantes de Android Windows no necesitan Google o Microsoft

Actualizaciones A/B (actualizaciones continuas). ¿Por qué Direct Boot se ha vuelto tan importante? Android introdujo actualizaciones A/B, o actualizaciones perfectas.

Anteriormente, Android se actualizaba así: el proveedor recopilaba el nuevo firmware y lo enviaba al dispositivo. Se reinicia, el firmware se descomprime en un modo especial, se transfiere a la partición del sistema desde la que se inicia el dispositivo y se produce el inicio.

Todo parece estar bien, Pero aquí está el problema: el dispositivo estuvo apagado durante mucho tiempo. La actualización tardará mucho tiempo en desempaquetarse, especialmente si es grande. El segundo punto: si el vendedor cometió un error en el firmware, obtienes un ladrillo. De hecho, la partición del sistema está dañada y ya no puede trabajar con ella.

Las actualizaciones A/B se reducen a dos secciones que aparecen. El primero existe en el sistema con el que está trabajando. Cuando llega un nuevo firmware, se crea una nueva partición, donde se desempaqueta la nueva parte del sistema. La próxima vez que se inicie el dispositivo, se cambiarán las particiones. Todo se cargará de nuevo.

Hay una gran ventaja aquí. En primer lugar, si ha pasado un firmware torcido y no puede iniciar, puede volver fácilmente al anterior. En segundo lugar, no tiene que esperar demasiado para recibir actualizaciones. Todo el desempaquetado del firmware se lleva a cabo mientras el dispositivo se está ejecutando y puede interactuar con él.

El problema vuelve a estar en los vendedores. Aunque la función se lanzó en Android 7.0 en 2016, Samsung aún no la admite en 2022. Hay una característica, pero en la práctica, con su adaptación por parte de los fabricantes de dispositivos, no todo es tan fluido.

Android 8.0 Oreo

En esta versión, se continuó con lo que se hizo anteriormente y comenzó una nueva guerra: la prohibición de los Servicios en segundo plano.

Sin transmisiones. Anteriormente, solo se bloqueaban tres transmisiones del sistema. Ahora comenzaron a bloquear casi todo, y es más fácil nombrar los desbloqueados.

Cuatro meses después del lanzamiento de Android 5.0, Google presentó la segunda versión de Lollipop, Android 5.1. Aunque no es una actualización importante, trae algunos cambios significativos además de mejoras y ajustes menores. La principal ventaja es que la nueva versión es más rápida, al menos en la tableta Nexus 6. Esta última fue probada por los empleados de Anandtech antes y después de la actualización.

La plataforma Android 5.1, como señalan los periodistas, ha salvado al Nexus 6 de muchos problemas de rendimiento. Antes de la actualización, el Nexus 6 era más lento para iniciar aplicaciones y cambiar tareas que el Nexus 5 anterior. En Android 5.1, el dispositivo más nuevo es mucho más rápido y coincide con el Nexus 5 en esos números.

Las pruebas muestran que las velocidades aleatorias de lectura y escritura en el Nexus 6 han mejorado drásticamente: la lectura se aceleró 2 veces y la escritura se incrementó 9 veces. No se notó un aumento de velocidad igualmente fundamental en el Nexus 5; aparentemente, esto se debe al hecho de que los datos en el Nexus 6 están encriptados, pero no en el Nexus 5 probado (según el estándar).

READ
Actualización de abril lanzada con Android 7.1.2

Android 5.1 trae un gran impulso a las velocidades de lectura y escritura aleatorias en Nexus 6 pero también en Nexus 5 también mejoras notables

Según el conocido desarrollador externo del kernel de Android, Francisco Franco, Google ahora está usando instrucciones NEON para acelerar la velocidad de cifrado en el Nexus 6. El rendimiento se puede mejorar aún más con el cifrado acelerado por hardware, pero aún no está disponible en el Nexus 6. , aunque Google está experimentando con esta capacidad en el Proyecto de código abierto de Android.

Las velocidades de lectura y escritura secuencial se han mantenido iguales, es decir, los juegos grandes se cargarán tanto como en Android. 5.0

Google también cambió la forma en que funciona la CPU en el Nexus 6. Si en Android 5.0, dos núcleos del procesador de la tableta estaban apagados mientras esperaban con la pantalla encendida, en Android 5.1, los 4 núcleos funcionan constantemente. En teoría, esto puede conducir a una disminución de la duración de la batería, pero la caída no será significativa, ya que la pantalla del teléfono inteligente consume la mayor parte de la energía y no la CPU inactiva. Pero la capacidad de respuesta del dispositivo debería mejorar.

El gráfico muestra que durante el tiempo de inactividad de Android 5.0 desactiva la CPU-núcleos 3 y 4, mientras que Android 5.1 los deja completamente listos para la carga

Device Protection es una función de seguridad nueva y muy útil en Android 5.1. La plataforma móvil de Google ha tenido funciones de seguridad como el seguimiento de la ubicación del dispositivo, el bloqueo y restablecimiento remotos y las pantallas de bloqueo durante años. Device Protection le permite bloquear el dispositivo de forma remota, pero también evita que lo reinicie sin ingresar la contraseña y el nombre de usuario anteriores.

Pantalla Nuevo dispositivo Protección aparece durante la configuración

El usuario no habilita la protección del dispositivo: la función se activa automáticamente al configurar un bloqueo de pantalla a través de una contraseña o combinación. Además, la protección se puede habilitar de forma remota a través del Administrador de dispositivos Android. Después de restablecer el teléfono seguro, durante la instalación aparecerá una nueva pantalla con el requisito de ingresar el correo electrónico y la contraseña de la cuenta anterior; sin una cuenta, no habrá acceso al dispositivo. No está claro si los dispositivos más antiguos recibirán soporte de Protección de dispositivos. Todos los dispositivos nuevos con Android 5.1 admitirán esta función, pero es posible que los dispositivos que se actualicen no obtengan esta función. Por ejemplo, Nexus 6 y Nexus 9 son compatibles con Device Protection, pero Nexus 5 no.

Al restablecer un dispositivo, la función Protección del dispositivo le pedirá que ingrese la información de la cuenta para demostrar que el dispositivo no es robado

Android 5.1 también trajo muchos cambios a la interfaz, que puedes ver en la galería de arriba. Se han mejorado las notificaciones y la configuración de volumen; en general, el sistema operativo se ha vuelto mucho más sólido. Además, Android 5.1 brinda compatibilidad con SIM dual (anteriormente, los fabricantes agregaban sus propias utilidades de administración de SIM) y comunicación de voz HD en algunos operadores. Android 5.1 es una actualización menor similar a 4.2 o 4.3, pero trae innovaciones importantes y soluciona algunos problemas importantes.

Rating
( No ratings yet )
Like this post? Please share to your friends:
Leave a Reply

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: