Después de meses de especulaciones, exageraciones y burlas, Google lanzó oficialmente Android 5.0 al mundo el 12 de noviembre de 2014. El SDK se puso a disposición el 3 de noviembre. Ya sabíamos mucho sobre las características, debido a la LVista previa del SDK que se lanzó el 25 de junio de 2014. Lo que no sabíamos era lo que el Lestaría parado para.
Pirulí Fue el nombre dado a la actualización 5.0. Mirando hacia atrás, Lollipop era un claro favorito. Pero, si se le da suficiente tiempo para especular, lo obvio una vez más tiene el poder de sorprender.
Lollipop es una actualización importante para la plataforma Android. Podría decirse que es el lanzamiento más grande hasta la fecha, y ciertamente el más ambicioso.
Ahora que el SDK de Android está disponible, aquí hay un resumen de algunas de las nuevas características de Android 5.0..
En los últimos años, Google se ha centrado con cada lanzamiento de Android en un aspecto de desarrollo particular del sistema operativo y cómo puede mejorarse. Para 5.0, fue mejorando la vida de la batería..
los JobScheduler
API le permite ejecutar trabajos de forma asincrónica en un momento posterior o en condiciones particulares. JobInfo
los objetos se pueden usar para definir las condiciones en las que se ejecutará un trabajo programado.
Gracias a estas adiciones, los desarrolladores ahora tienen mucho más control sobre cuándo y cómo se realizan las tareas de agotamiento de la batería.
Hay un nuevo ADBmando dumpsys batterystats
que se puede utilizar para generar datos estadísticos sobre el uso de la batería en un dispositivo. Echa un vistazo al siguiente comando para ver cómo funciona esto.
adb shell dumpsys batterystats --cargado
En Lollipop, las notificaciones se pueden mostrar en la pantalla de bloqueo. Los desarrolladores pueden especificar la cantidad de información mostrada en una notificación a través de setVisibilidad
, el cual acepta los siguientes valores:
VISIBILITY_PRIVATE
: muestra información básica, como el icono de la notificación, pero oculta el contenido de la notificaciónVISIBILIDAD_PÚBLICA
: muestra el contenido de la notificaciónVISIBILITY_SECRET
: no muestra nada, excluyendo incluso el icono de la notificaciónAhora se pueden agregar metadatos a las notificaciones para permitir categorías y prioridad, y para recopilar contactos adicionales.
Las notificaciones clave, como las llamadas entrantes, aparecerán en una ventana de notificación mano a mano, que flotará en la parte superior de la aplicación actual hasta que el usuario reconozca o rechace la notificación..
La pantalla de los últimos ha cambiado su nombre a visión general. Con el nuevo nombre vienen nuevas API que mejoran las opciones de multitarea en Android. Ahora puede tener sus actividades tratadas como tareas y mostrarse en su propia ventana en la pantalla de resumen.
Por ejemplo, una aplicación de navegador web podría configurarse para que cada pestaña tenga su propia ventana. En la pantalla de los últimos lanzamientos, se habría mostrado una sola aplicación de navegador.
Si tienes un sitio web, puedes agregar a la sección de encabezado para que la vista general muestre el color dado como encabezado de su sitio web.
Las versiones anteriores de Android han utilizado Dalvik como la máquina virtual de proceso. Las aplicaciones se escriben comúnmente en Java, que luego se compila a bytecode. Esto luego se traduce al código de bytes de Dalvik y se almacena en .dex
y .índice
archivos, para que Dalvik los procese.
Esta es una explicación muy básica de lo que está haciendo el tiempo de ejecución y es de esperar que transmita su importancia. Las aplicaciones se ejecutan en la máquina virtual de proceso, por lo que su rendimiento determina el rendimiento general de la aplicación y es un cuello de botella..
Dalvik utiliza JIT (Just In Time) compilación, lo que significa que solo ejecuta la aplicación en el momento en que se necesita.
ARTE, por otro lado, utiliza un AOT (Ahead Of Time) compilación para compilar el bytecode. Cuando se instala una aplicación, es compilada por ART's dex2oat
utilidad, que crea archivos ejecutables ELF en lugar de archivos .odex. A partir de entonces, la aplicación se ejecuta desde el ejecutable ELF ya compilado..
Eso es un montón de compilación guardada a expensas de los tiempos de instalación de la aplicación más largos y un poco de espacio de disco extra.
Con la adición de la recolección de basura mejorada (GC), ART supera a Dalvik en casi todos los aspectos, lo que hace que la experiencia de Android sea más nítida y fluida..
Para ayudar a llevar su aplicación a pantallas grandes, Lollipop presenta el Leanback UI y el Marco de entrada de Android TV (TIF). La biblioteca Leanback proporciona widgets de interfaz de usuario para aplicaciones de TV. TIF está diseñado para permitir que las aplicaciones de TV manejen secuencias de video de fuentes como entradas HDMI, sintonizadores de TV y receptores de IPTV..
Se ha añadido Khronos OpenGL ES 3.1. Las características clave incluyen:
Android 5.0 sigue siendo compatible con OpenGL ES 2.0 y 3.0.
Para complementar OpenGL ES 3.1, se ha agregado un conjunto de extensiones de OpenGL ES que permiten lo siguiente:
Android Lollipop incluye una nueva versión de Chromium para Web View, basada en el Cromo m37 lanzamiento que agrega soporte para WebAudio, WebRTC y WebGL.
El soporte nativo para componentes web también se incluye en la actualización y permitirá el uso de Polymer y su Diseño de materiales Elementos sin necesidad de polietileno..
Desde Android 5.0, Chromium ahora se puede actualizar desde Play Store, por lo que las nuevas API y las correcciones de errores estarán disponibles de inmediato y ya no requerirán una actualización del sistema operativo Android.
El nuevo android.media.browse
API permite que las aplicaciones naveguen por la biblioteca de contenido multimedia de otras aplicaciones. los MediaBrowserService
clase se utiliza para exponer medios en una aplicación, mientras que MediaBrowser
clase se utiliza para interactuar con un servicio de navegador de medios.
Se han introducido dos nuevas clases para simplificar la gestión del control de la reproducción en diferentes IU y servicios..
MediaSession
reemplaza RemoteControlClient
. Proporciona un conjunto de métodos de devolución de llamada para su uso en controles de transporte y botones multimedia.. MediaController
se puede usar para crear una aplicación de controlador de medios personalizada, que luego se puede usar para enviar comandos a un MediaSession
.
Se han introducido dos nuevos sensores:
Por supuesto, ambos sensores requieren hardware compatible.
Los administradores de dispositivos pueden usar un servicio de aprovisionamiento gestionado para agregar aplicaciones a un perfil administrado por separado. Si hay una cuenta personal existente en un dispositivo que se ha aprovisionado, las aplicaciones de perfil administradas aparecerán junto a las aplicaciones existentes.
El propietario de un dispositivo es un tipo especializado de administrador de dispositivos que puede crear y eliminar usuarios secundarios y configurar ajustes globales, esencialmente otorgándole a Android un administrador tradicional y un sistema de cuentas de usuario..
La captura de pantalla es una nueva característica que es comparable al modo de quiosco en iOS. La fijación de pantalla incluye las siguientes características:
La fijación de pantalla se puede activar manualmente a través de Ajustes> Seguridad> Fijación de pantalla. También se puede activar programáticamente. los startLockTask
Se puede llamar al método desde su aplicación para activar el anclaje de pantalla. Si la aplicación no es del propietario de un dispositivo, se mostrará un mensaje de confirmación. los setLockTaskPackages
El método puede ser llamado por una aplicación propietaria y evitará el aviso de confirmación.
Para desactivar la fijación de pantalla, necesita llamar stopLockTask
si fue iniciado por una aplicación propietaria del dispositivo. Si fue activado por un propietario que no es un dispositivo, el usuario puede salir del modo de anclaje de pantalla manteniendo presionados los botones de retroceso y retroceso.
Captura de pantalla ahora es posible a través de la nueva android.media.projection
APIs. El crear Pantalla virtual
Este método permite a la aplicación de llamada capturar la pantalla en un objeto de superficie, que luego puede enviarse a través de la red. La API solo puede capturar contenido no seguro y no incluye audio.
La captura de imágenes RAW finalmente ha llegado a Android, gracias a la nueva android.hardware.camera2
API.
Los dispositivos Android ahora pueden actuar comoBluetooth periféricos LE. Las aplicaciones pueden hacer uso de esto para dar a conocer su presencia en los dispositivos cercanos. Con el nuevo android.bluetooth.le
API, puede permitir que sus aplicaciones se conecten a dispositivos Bluetooth cercanos, difundan anuncios y analicen las respuestas. Estas nuevas características también vienen con un nuevo permiso manifiesto, BLUETOOTH_ADMIN
.
Estas API serán extremadamente útiles cuando se trabaje con dispositivos portátiles, aplicaciones de salud y estado físico y aplicaciones de monitoreo. Todas estas son áreas de crecimiento predichas para Android en un futuro cercano.
NFC ha sido mejorado de varias maneras:
invocarbayo
Se puede utilizar para iniciar el intercambio de datos. Ya no tienes que golpear físicamente los dispositivos.registroAidsForService
y setPreferredService
Se han añadido para ayudar al desarrollo de aplicaciones de pago..Las nuevas API permiten que las aplicaciones consulten las redes para conocer las funciones disponibles, como si la red es celular, con medidor o Wi-Fi.
Las imágenes de mapa de bits ahora se pueden representar desde páginas de documentos PDF, usando el nuevo PdfRendered
clase.
Ahora puede hacer un ciclo a través de diferentes IME disponibles para la plataforma. Esto se logra usando el shouldOffetToNextInputMethod
método.
Una de las características más importantes de Android 5.0 es Material Design. Material Design es un conjunto de pautas relacionadas con el diseño visual, el movimiento del contenido y la interacción del usuario. Las directrices están destinadas a ir más allá de Android y están diseñadas para una amplia gama de dispositivos y plataformas.
Polymer es un ejemplo notable de la naturaleza multiplataforma de Material Design, donde Google crea varios elementos web de Material Design para ayudar en la construcción de sitios web / aplicaciones web con un tema de Material Design. A pesar de su naturaleza multiplataforma, Material Design sigue siendo un punto focal de Android 5.0.
Lollipop introdujo dos nuevos widgets:
CardView
: Este widget permite que la información se agrupe de manera consistente. La tarjeta en sí puede modificarse su profundidad para promoverla o resaltarla según sea necesario.RecyclerView
: Esta es una versión más avanzada del Vista de la lista
widget.Hay dos nuevos temas que hacen uso de los principios de Diseño de Materiales., Material oscuro y Material ligero. Ambos aplican nuevos widgets de sistema de interfaz de usuario. Los widgets del sistema son fáciles de personalizar y puedes configurar su paleta de colores. Varias animaciones y transiciones también son valores predeterminados de estos temas, como el efecto de onda.
La profundidad ahora puede modificarse en las vistas de Android a través de la nueva propiedad Z. Los valores más altos de Z proyectan sombras más grandes alrededor de la vista, lo que da la apariencia de una mayor elevación. Este es un elemento básico del espíritu del Diseño de Materiales, donde el objetivo es crear una apariencia textil mediante el uso de capas..
Otro elemento básico de Material Design es la animación. Las animaciones de retroalimentación táctil y una gran cantidad de transiciones de actividades ayudan a crear una experiencia táctil e inmersiva. El objetivo es no hacer que la información salga o desaparezca. Cada vista / objeto debe aparecer como una capa en una superficie.
Imagina un escritorio bonito, limpio, blanco. En este escritorio tienes varios papeles, notas post-it y papelería. Cuando miras al escritorio, no es una vista plana. El escritorio contiene varias capas, y los objetos tienen diferentes profundidades y sombras proyectadas en la capa debajo.
Si necesita ver una página debajo de otra página, debe mover la página de portada fuera del camino. Si desea colocar su computadora portátil en el escritorio, debe deslizar los papeles existentes para hacer espacio. Cuando tocas algo en tu escritorio, se mueve, se dobla, vibra y baraja.
Para comenzar con Android 5.0, descargue la plataforma SDK para v21 en su IDE preferido. Lo más probable es que esto se haga a través del administrador de SDK en Eclipse o Android Studio..
En el ApplicationManifest.xml archivo y / o construir.gradle
archivo, establecer el targetSdkVersion
a 21.
Cambios y consideraciones importantes:
Hay un dicho en el mundo de los superhéroes: "Con gran poder, viene una gran responsabilidad". Hay una similar en la comunidad de desarrollo: "Con grandes actualizaciones, vienen las pruebas exhaustivas".
Aquí hay una lista de verificación rápida, si ya tiene una aplicación para Android:
RemoteControlClient
La clase ahora está en desuso, así que debería pasar a la MediaSession
API?WebView
Ahora bloquea de forma predeterminada las cookies de contenido mixto y de terceros. Necesito usar setMixedContentMode
y setAcceptThirdPartyCookies
?Una lista completa se puede encontrar en el sitio web de Android Developer.
Uno de los mayores cambios en Android 5.0 es la interfaz de usuario con la introducción de Material Design. Hacer uso de Material Design y poner en práctica las mejores prácticas de diseño requiere mucha consideración y trabajo por parte del desarrollador..
Para las aplicaciones existentes, los desarrolladores se enfrentan a desafíos adicionales, como la forma de aprovechar las nuevas funciones de 5.0 mientras mantienen la compatibilidad con versiones anteriores, proporcionando una experiencia de usuario consistente en diferentes niveles de API.
Para mostrar cómo usar Android 5.0 y Material Design en su proyecto, he creado una aplicación simple. Consiste en una sola actividad que muestra varios widgets. Entonces he añadido lo siguiente a la res /
carpeta:
menu-v21 /
: Esto contiene una copia de la menu_main.xml y se utilizará para mostrar iconos de Material Design en dispositivos Android 5.0.valores-v11 /
: Esto contiene un styles.xml archivo que establece el tema base para holo.lightpara todos los dispositivos que ejecutan Android 3.0 o superior. También se han realizado cambios de apariencia en la barra de acción en este archivo..valores-v21 /
: Esto contiene un styles.xml archivo que establece el tema base para material.lightpara dispositivos que se ejecutan en Android 5.0 y superiores. También define los colores base..La siguiente imagen muestra la aplicación ejecutándose en un dispositivo 4.4.2 y un dispositivo 5.0. El tema Material se ha aplicado para dispositivos 5.0+. Otros dispositivos recibirán el tema holo.light. Muestra el estado predeterminado de ambos temas y las diferencias de interfaz de usuario entre ellos..
Con Material Design, nunca ha sido tan fácil definir los colores base de su aplicación para adaptarse a su marca. Por ejemplo, agregar el siguiente código a su tema establecerá la notificaciónFondo de barra, Fondo de barra de acción y Widgets de interfaz de usuario.
Los resultados pueden ser muy sorprendentes y la aplicación se puede identificar con solo un vistazo. También hay un nuevo conjunto de iconos de Diseño de materiales, que son otra forma rápida y fácil de llevar una interfaz de usuario moderna a cualquier aplicación existente.
Este es un ejemplo de la diferencia hecha al usar los iconos de Diseño de materiales y definir los colores del tema principal:
El uso de la barra de acción y el color es una característica dominante de Material Design y puede marcar y distinguir efectivamente su aplicación. Una forma de proporcionar una experiencia de usuario consistente en diferentes niveles de API es replicar estas características en estilos y temas destinados a diferentes niveles de API.
Por ejemplo, si comparamos la aplicación que se ejecuta en un dispositivo 4.4.2 con un dispositivo 5.0:
Como pueden ver, tienen un aspecto muy distintivo. Para mejorar esto, podemos usar los mismos iconos de Diseño de materiales en niveles de API inferiores a 5.0. También podemos diseñar la barra de acción para que se parezca a la versión de Diseño de materiales..
Para los iconos, podemos cambiar las imágenes en res / menu / menu-main.xml a los iconos de Material Design. Para la barra de acción, podemos editar el res / values-v11 / styles.xml archivo para parecerse a lo siguiente:
Aquí hay otro vistazo a los dos comparados, después de los cambios:
La versión que se ejecuta en el dispositivo 4.4.2 se vuelve más reconocible como nuestra aplicación y nuestra marca. Sin cambios significativos, la aplicación ya se ve más coherente en las diferentes API y tiene un aspecto más moderno.
Ciertas características son exclusivas de Android Lollipop, especialmente las transiciones de actividad y las animaciones de revelación. Esto no significa necesariamente que tenga que renunciar a usarlos o crear una aplicación separada que haga uso de ellos. Puede verificar la versión del sistema en tiempo de ejecución y solo realizar ciertas llamadas a la API si la aplicación se está ejecutando en una versión adecuada de Android.
Un ejemplo para verificar si el sistema es 5.0+:
// Compruebe si estamos ejecutando en Android 5.0 o superior si (Build.VERSION.SDK_INT> = Build.VERSION_CODES.LOLLIPOP) // Llame aquí a algunas API de diseño de material else // Implemente esta característica sin diseño de material
Solo porque puedas hacer algo no siempre significa que debas. No hay absolutamente nada de malo en el tema Holo que Android ha estado usando desde Honeycomb. Puede proporcionar diseños y temas alternativos y hacer que se apliquen a diferentes niveles de API. Por ejemplo, podría hacer que el tema de Diseño de materiales se aplique a cualquier dispositivo con una API de 5.0 y superior. El tema Holo se aplicará a cualquier dispositivo con una API de 3.0 y superior. Finalmente, el tema clásico podría aplicarse a todos los dispositivos por debajo de 3.0.
Para hacer esto, usarías los siguientes directorios en tu proyecto:
En cada directorio, puede colocar un styles.xml Archivo que definirá el tema deseado..
Las bibliotecas de soporte de V7 r21 admiten varios widgets y características de Material Design.
Theme.AppCompat permite el uso de la paleta de colores extendiendo uno de los temas de AppCompat. Por ejemplo, Theme.AppCompat.Light
:
También proporciona widgets de Material Design para lo siguiente:
La biblioteca de soporte V7 también da acceso a la nueva CardView
y RecyclerView
widgets.
Si mantiene AppCompat en sus diseños de diseño, es posible crear un diseño único que mantendrá los mismos elementos visuales en múltiples niveles de API.
Para usar la biblioteca de soporte V7, necesita agregarlo a su proyecto. Si está utilizando Android Studio y Gradle, se puede agregar a la sección de dependencias en la construir.gradle
expediente:
dependencies compile 'com.android.support:appcompat-v7:21.0.+' compile 'com.android.support:cardview-v7:21.0.+' compile 'com.android.support:recyclerview-v7:21.0.+'
Al incluir la biblioteca de soporte v7, debe configurar su minSdkVersion
a 7.
Android 5.0 es un lanzamiento importante. Las actualizaciones como ART y las notificaciones en pantalla tendrán un impacto inmediato. Otras actualizaciones, como Material Design, Overview y Job Scheduling llevarán tiempo para que los desarrolladores implementen y adopten.
Los usuarios también desempeñarán un papel importante en la configuración del futuro cercano de Android. Los intentos anteriores de llevar Android al espacio de TV no han sido bien recibidos. Las televisiones inteligentes en general aún no se han convertido en un dispositivo imprescindible.
Tener una experiencia de usuario familiar y unificada en múltiples dispositivos y pantallas es emocionante y, en mi opinión, es necesario seguir adelante. Sin embargo, el éxito de esto dependerá en última instancia de la adopción y la demanda de los usuarios..
Google preparó el escenario en el Google I / O de este año y con Lollipop los actores ya están reunidos. Independientemente de la duración del juego y los aplausos que recibe, nadie puede decir que Google no lo ha intentado..