Llega el turno de Android 11 para desarrolladores
Publicado por Stephanie Cuthbertson, directora de Administración de Productos
¡Ya llegó Android 11! Hoy mismo incorporaremos la fuente del Proyecto de código abierto de Android (AOSP) y publicaremos oficialmente la versión más reciente de Android. Desarrollamos Android 11 en torno a tres temas: un enfoque de comunicación centrado en las personas, controles que permiten a los usuarios acceder rápidamente a sus dispositivos inteligentes y controlarlos, y privacidad para que los usuarios tengan más formas de administrar el intercambio de datos en los dispositivos. Puedes obtener más información en nuestra entrada de Keyword.
Android 11 ofrece un sinfín de capacidades nuevas para los desarrolladores. Te recomendamos echar un vistazo a las notificaciones de conversaciones, los controles multimedia y del dispositivo, los permisos por única vez, la compatibilidad mejorada con 5G, las transiciones del IME y mucho más. Para ayudarte a trabajar y desarrollar más rápido, también agregamos herramientas nuevas, como las funciones de compatibilidad que se pueden activar o desactivar, las instalaciones incrementales de ADB, la API de motivos de cierre de la app, la API de auditoría de acceso a datos, las anotaciones de nulabilidad de Kotlin y muchas otras. Trabajamos duro para que Android 11 sea una gran versión y estamos ansiosos por ver las compilaciones que realizarás.
La versión oficial de Android 11 ya está disponible en dispositivos Pixel 2, 3, 3a, 4 y 4a, y llegará a más dispositivos próximamente. Para empezar, visita el sitio para desarrolladores de Android 11.
Personas, controles y privacidad
Personas
Android 11 nos permite centrarnos en las personas y ser expresivos, ya sea renovando la forma en que tenemos conversaciones en nuestros teléfonos o creando un SO que pueda reconocer y priorizar a las personas más importantes de nuestras vidas. Para los desarrolladores, Android 11 permite crear interacciones conversacionales y personales más profundas en las apps.
- Las notificaciones de conversaciones aparecen en una sección exclusiva de la parte superior del panel, con un diseño que prioriza a las personas y con acciones específicas, como la apertura de conversaciones en forma de cuadros, la creación de accesos directos a conversaciones en la pantalla principal o la creación de recordatorios.
- Los cuadros ayudan a los usuarios a mantener las conversaciones a la vista y al alcance mientras realizan varias tareas a la vez en sus dispositivos. Las apps de mensajes y chat deben usar la API de cuadros en las notificaciones para habilitar esta función en Android 11.
- Las sugerencias consolidadas de teclado permiten que las apps de autocompletado y los editores de métodos de entrada (IME) ofrezcan de forma segura a los usuarios entidades y strings específicas de un contexto directamente en la tira de sugerencias de un IME, que es donde son más convenientes.
Cuadros y conversaciones centradas en las personas.
Controles
Android 11 permite a los usuarios acceder rápidamente a sus dispositivos inteligentes y controlarlos en un solo lugar. Los desarrolladores pueden usar las API nuevas para ayudar a los usuarios a tener acceso a los dispositivos inteligentes y controlar el contenido multimedia:
- Los controles del dispositivo permiten que los usuarios accedan a sus dispositivos conectados y los controlen con una sencillez y rapidez nunca antes experimentadas. Ahora, con solo mantener presionado el botón de encendido, se pueden activar los controles del dispositivo al instante y desde un solo lugar. Las apps pueden usar una nueva API para aparecer en los controles. Obtén más información aquí.
- Gracias a los controles multimedia, los usuarios pueden cambiar de forma rápida y cómoda los dispositivos de salida para su contenido de audio o video, ya sean auriculares, altavoces o incluso una TV. Obtén más información aquí.
Controles multimedia y del dispositivo.
Privacidad
Con Android 11, queremos aportar a los usuarios más control y transparencia respecto de los permisos sensibles. Además, estamos trabajando para aumentar la seguridad de los dispositivos mediante actualizaciones más rápidas.
Permisos por única vez: ahora, los usuarios pueden otorgar a una app acceso al micrófono, a la cámara o a la ubicación del dispositivo por única vez. La app deberá pedir permiso de nuevo la próxima vez que se use. Obtén más información aquí.
Subtítulo: Diálogo del permiso por única vez en Android 11.
Ubicación en segundo plano: a partir de ahora, no basta con que el usuario otorgue un permiso de tiempo de ejecución, sino que debe realizar otros pasos. Si tu app necesita una ubicación en segundo plano, el sistema se asegurará de que tú preguntes primero por la ubicación en primer plano. Luego, podrás ampliar el acceso a la ubicación en segundo plano mediante otra solicitud de permiso y el sistema mostrará al usuario la configuración para que otorgue dicha solicitud.
También es importante recordar que, en febrero, anunciamos que los desarrolladores de Google Play necesitarán obtener la aprobación de los usuarios a fin de que su app acceda a la ubicación en segundo plano y evitar el mal uso de ese servicio. Los desarrolladores tendrán más tiempo para hacer cambios y no haremos cumplir la política para las apps existentes hasta 2021. Obtén más información aquí.
Restablecimiento automático de permisos: si los usuarios no utilizan una app durante un período prolongado, Android 11 “restablecerá automáticamente” todos los permisos de tiempo de ejecución asociados a la app y notificará al usuario. La app deberá pedir permiso de nuevo la próxima vez que se use. Obtén más información aquí.
Almacenamiento definido: seguimos trabajando para mejorar la protección de los datos de apps y usuarios en el almacenamiento externo; además, implementamos mejoras adicionales para ayudar a los desarrolladores a realizar la migración más fácilmente. Obtén más información aquí.
Actualizaciones del sistema de Google Play: estas actualizaciones, lanzadas el año pasado, nos ayudan a agilizar las actualizaciones de los componentes centrales del SO para los dispositivos del ecosistema Android. En Android 11, hemos aumentado a más del doble la cantidad de módulos actualizables, lo que incluye doce nuevos módulos que ayudarán a los usuarios y a los desarrolladores a tener más privacidad, seguridad y coherencia.
API de BiometricPrompt: ahora, los desarrolladores pueden usar la API de BiometricPrompt a fin de especificar el nivel de autenticación biométrica que requiere su app para desbloquear partes sensibles o acceder a ellas. En cuanto a la compatibilidad con versiones anteriores, agregamos estas capacidades a la biblioteca Jetpack Biometric. Publicaremos más novedades a medida que avancemos.
API de Identity Credential: esta API admitirá nuevos casos de uso, como licencias de conducir o documentos de identidad nacionales o digitales para dispositivos móviles. Estamos trabajando con varias agencias gubernamentales y socios de la industria a fin de asegurarnos de que Android 11 esté listo para experiencias de identidad digital.
Obtén aquí toda la información que necesites sobre las funciones de privacidad de Android 11.
Innovación útil
Compatibilidad mejorada con 5G: Android 11 incluye compatibilidad actualizada para que los desarrolladores aprovechen la mayor velocidad y el menor nivel de latencia de las redes 5G. Puedes saber cuándo el usuario se conecta a una red 5G, verificar si la conexión es de uso medido y obtener un valor estimado del ancho de banda. A fin de ayudarte a desarrollar experiencias para 5G, también agregamos compatibilidad con 5G en Android Emulator. Si deseas empezar a usar 5G en Android, visita la página para desarrolladores de 5G.
Subtítulo: fuera de casa, la tecnología 5G puede permitirte mejorar tu experiencia, por ejemplo, mediante interacciones fluidas con el mundo que te rodea, desde amigos y familiares hasta negocios.
Nuevos tipos de pantallas: los fabricantes de dispositivos siguen innovando con la introducción al mercado de nuevas pantallas, como las perforadas y en cascada. Android 11 incorpora compatibilidad con estas novedades en la plataforma mediante API que te permiten optimizar tus apps. Puedes usar las API de corte de pantalla actuales para estos dos tipos de pantallas. Puedes definir un nuevo atributo de diseño de ventana para usar toda la pantalla en cascada y la nueva API de inserciones en cascada te ayuda con las interacciones cerca de los bordes.
Compatibilidad con filtración de llamadas: Android 11 permite que las apps de filtración de llamadas hagan algo más que administrar llamadas automáticas. Las apps pueden verificar el estado STIR/SHAKEN de una llamada entrante (estándares que protegen contra el spoofing de ID de llamadas) como parte de los detalles de la llamada y, además, pueden informar el motivo del rechazo de una llamada. También pueden personalizar una pantalla posterior a la llamada que proporciona el sistema, la cual permite a los usuarios realizar acciones; por ejemplo, identificar llamadas como spam o agregar el número a los contactos.
Detalles finales y calidad
Resiliencia del SO: el SO Android 11 es más dinámico y resiliente en su conjunto gracias a la optimización de los procesos de recuperación de memoria, como la ejecución forzosa de reinicios imperceptibles para el usuario de procesos basados en umbrales HWM de RSS. Además, para aumentar el rendimiento y la memoria, Android 11 incorpora el almacenamiento en caché de Binder, que optimiza las llamadas más frecuentes de IPC a los servicios del sistema. Para hacerlo, almacena en caché la información de aquellas llamadas que recuperan datos relativamente estáticos. El almacenamiento en caché de Binder también reduce el tiempo de CPU, lo que aumenta la duración de la batería.
Transiciones sincronizadas del IME: Las nuevas API permiten sincronizar el contenido de tu app con el IME (editor de método de entrada, también conocido como teclado en pantalla) y las barras del sistema mientras aparecen y desaparecen animadas en la pantalla. Esto facilita mucho la creación de transiciones del IME intuitivas y fluidas. Para lograr transiciones perfectas de fotogramas, una nueva API WindowInsetsAnimation.Callback informa a las apps sobre cambios de las inserciones por fotograma mientras las barras del sistema o el IME se animan. Además, puedes usar la nueva API WindowInsetsAnimationController para controlar los tipos de IU del sistema, como las barras del sistema, el IME, el modo envolvente y muchos más. Obtén más información aquí.
Transición sincronizada del IME a través del receptor de animación de inserciones.
Experiencia del IME controlado por la app a través de WindowInsetsAnimationController.
Elementos de diseño HEIF animados: La API ImageDecoder ahora permite decodificar y reproducir secuencias de imágenes animadas almacenadas en archivos HEIF de modo que puedas aprovechar activos de alta calidad mientras minimizas el impacto en los datos de red y el tamaño del APK. Las secuencias de imágenes HEIF pueden reducir drásticamente el tamaño de los archivos de secuencias de imágenes en comparación con los GIF animados.
Decodificador nativo de imágenes: Las nuevas API de NDK permiten que las apps decodifiquen y codifiquen imágenes (como JPEG, PNG o WebP) a partir de código nativo para los gráficos o el posprocesamiento. Como no hace falta agrupar una biblioteca externa, se mantiene un tamaño de APK más pequeño. El decodificador nativo también saca provecho del proceso de Android relativo a las actualizaciones de seguridad continuas de la plataforma. Consulta el ejemplo de código de NDK para conocer cómo se usan las API.
Decodificación de video con nivel bajo de latencia en MediaCodec: El video con nivel bajo de latencia es esencial para las apps de transmisión de video por Internet en tiempo real y para servicios como Stadia. Los códecs de video compatibles con el nivel bajo de latencia en la reproducción devuelven el primer marco de la transmisión lo más rápido posible después de que se inicia la decodificación. Las apps pueden usar las API nuevas para comprobar y configurar el nivel bajo de latencia en la reproducción de un códec específico.
Frecuencia de actualización variable: Las apps y los juegos ahora pueden usar una API nueva a fin de establecer una velocidad de fotogramas preferida para sus ventanas. Casi todos los dispositivos Android actualizan la pantalla a una frecuencia de actualización de 60 Hz, pero algunos admiten varias frecuencias de actualización con el cambio de entornos de ejecución, como 90 Hz y 60 Hz. En estos dispositivos, el sistema usa la velocidad de fotogramas preferida de la app para elegir la mejor frecuencia de actualización. La API está disponible en el SDK y el NDK. Obtén información más detallada aquí.
Cargador de recursos dinámicos: Android 11 incluye una nueva API pública que permite a las apps cargar recursos y activos de forma dinámica durante el tiempo de ejecución. Con el marco de trabajo del cargador de recursos, puedes incluir un conjunto básico de recursos en tu app o juego y, después, cargar otros recursos o modificar los que cargaste (si hace falta) durante el tiempo de ejecución.
API de Neural Networks (NNAPI) 1.3: Seguimos agregando operaciones y controles relativos al aprendizaje automático en dispositivos Android. Para optimizar los casos de uso comunes, NNAPI 1.3 agrega una serie de API para la prioridad y el tiempo de espera, los dominios de memoria y la fila de comandos asíncronos. Las nuevas operaciones para modelos avanzados incluyen la cuantización asimétrica de valores enteros firmados, las ramificaciones y los bucles, y la función hard-swish op que ayuda a acelerar los modelos visuales de última generación en los dispositivos, como MobileNetV3.
Mejoras para desarrolladores
Motivos de cierre de apps: En los diferentes tipos de dispositivos, configuraciones de memoria y situaciones de los usuarios en los que se ejecuta tu app, es importante entender por qué se cerró y cuál era el estado en ese momento. Android 11 permite descubrir esto más fácilmente gracias a la API de motivos de cierre, que puedes usar para solicitar detalles de los cierres recientes de tu app.
Auditoría de acceso a datos: La auditoría de acceso a datos te permite instrumentar tu app para comprender mejor cómo accede a los datos de los usuarios y desde qué flujos. Por ejemplo, puede ayudarte a identificar cualquier acceso inadvertido a datos privados de tu propio código o dentro de cualquier SDK que puedas estar utilizando. Obtén más información aquí.
ADB incremental: Instalar APK muy grandes con ADB (Android Debug Bridge) durante el desarrollo puede ser un proceso lento y afectar la productividad, especialmente la de aquellos desarrolladores que trabajan en juegos para Android. Con ADB incremental en Android 11, instalar APK grandes (de más de 2 GB) desde una computadora de desarrollo en un dispositivo con Android 11 es hasta 10 veces más rápido. Obtén más información aquí.
Anotaciones de nulabilidad de Kotlin: Android 11 agrega anotaciones de nulabilidad a más métodos en la API pública. Además, cambia de advertencias a errores algunas de las anotaciones actuales. Gracias a esto, puedes detectar problemas de nulabilidad en el momento de compilar en vez de hacerlo durante el tiempo de ejecución. Obtén más información aquí.
Prepara tus apps para Android 11
Ahora que Android 11 está llegando a los dispositivos, es momento de que termines tus pruebas de compatibilidad y publiques las actualizaciones.
Estos son algunos de los cambios en el comportamiento a los que debes prestar atención (independientemente de la targetSdkVersion de tu app):
- Permiso por única vez: Los usuarios ahora pueden conceder un permiso de uso único para que una app acceda a la ubicación, al micrófono del dispositivo y a la cámara. Obtén más información aquí.
- Acceso al almacenamiento externo: Las apps ya no pueden acceder a los archivos de otras aplicaciones ubicados en el almacenamiento externo. Obtén más información aquí.
- Asignador de seguridad reforzada Scudo: Scudo es ahora el asignador de memoria del montón para el código nativo en las apps. Obtén más información aquí.
- Limpiador del descriptor de archivos: Fdsan ahora está habilitado de forma predeterminada para detectar problemas de procesamiento de descriptores de archivos en el código nativo de las apps. Obtén más información aquí.
Android 11 también incluye cambios de comportamiento opcionales que afectarán tu app una vez que la actualices a la nueva plataforma. Te recomendamos evaluar estos cambios apenas publiques la versión compatible de tu app. Para obtener más información sobre pruebas y herramientas de compatibilidad, consulta estos recursos que compartimos durante la semana de compatibilidad con Android 11 y visita el sitio para desarrolladores de Android 11 a fin de conocer los detalles técnicos.
Mejora tu app con funciones y API nuevas
Cuando tengas todo listo, explora Android 11 y obtén información sobre las nuevas funciones y API que puedes usar. Veamos algunas de las funciones principales con las que puedes comenzar.
Recomendamos las siguientes funciones para todas las apps:
- Tema oscuro (de Android 10): Agrega un tema oscuro o habilita Forzar oscuro para asegurarte de que los usuarios que habiliten el tema oscuro en todo el sistema tengan una experiencia coherente.
- Navegación por gestos (de Android 10): Para garantizar la compatibilidad con la navegación por gestos, crea una experiencia de borde a borde y asegúrate de que los gestos personalizados funcionen correctamente. Obtén más información aquí.
- Accesos directos de uso compartido (de Android 10): Si quieres que tu app reciba datos compartidos, debes usar las API de accesos directos de uso compartido a fin de crear destinos para compartir. Si buscas que tu app envíe datos compartidos, asegúrate de usar la hoja de intercambio del sistema.
- Transiciones sincronizadas del IME: Ofrece a los usuarios transiciones armoniosas mediante la nueva API de WindowInsets y otras API relacionadas. Obtén más información aquí.
- Nuevos tipos de pantallas: En los dispositivos con pantallas perforadas o en cascada, asegúrate de probar y modificar el contenido para que se ajuste adecuadamente. Obtén más información aquí.
Recomendamos las siguientes funciones si son relevantes para tu app:
- Conversaciones: Las apps de mensajes y comunicación pueden formar parte de la experiencia de conversación mediante accesos directos de uso compartido de larga duración y mostrando las conversaciones en las notificaciones. Obtén más información aquí.
- Cuadros: Los cuadros son una manera de mantener las conversaciones visibles y accesibles cuando los usuarios realizan muchas tareas al mismo tiempo. Usa la API de cuadros en las notificaciones para habilitar esta opción.
- 5G: Si tu app o tu contenido pueden beneficiarse de la mayor velocidad y el menor nivel de latencia de la tecnología 5G, explora nuestros recursos para desarrolladores y descubre qué puedes compilar.
- Controles del dispositivo: Si tu app es compatible con dispositivos inteligentes externos, asegúrate de poder acceder a ellos desde la nueva área de controles del dispositivo que ofrece Android 11. Obtén más información aquí.
- Controles multimedia: En el caso de las apps multimedia, recomendamos ofrecer compatibilidad con los controles multimedia de Android 11 para que los usuarios puedan controlar la reproducción y la reanudación desde el panel de configuración rápida. Obtén más información aquí.
Obtén más información sobre todas las funciones de Android 11 en developer.android.com/11.
¡Disponible próximamente en más dispositivos!
Android 11 comenzará a implementarse hoy mismo en teléfonos Pixel, OnePlus, Xiaomi, OPPO y realme seleccionados. En los próximos meses, más socios lanzarán y actualizarán sus dispositivos. Si tienes un teléfono Pixel 2, 3, 3a, 4 o 4a, incluso aquellos inscritos en el programa beta de este año, pronto podrás acceder a una actualización inalámbrica.
Las imágenes de fábrica del sistema Android 11 para dispositivos Pixel también están disponibles en Android Flash Tool o puedes descargarlas desde aquí. Como siempre, puedes conseguir las imágenes del sistema Android Emulator más actualizadas mediante el administrador de SDK en Android Studio. Si quieres hacer más pruebas en otros dispositivos compatibles con Treble, puedes obtener aquí imágenes genéricas del sistema (GSI).
Si buscas el código fuente de Android 11, lo encontrarás aquí en el repositorio del Proyecto de código abierto de Android, en las ramas de Android 11.
Lo que viene
Pronto cerraremos el seguimiento de problemas de versiones preliminares y retiraremos los errores pendientes relativos a las versiones beta o de vista previa para desarrolladores, pero es importante que sigas enviando tus comentarios. Si continúas observando un problema que registraste en el seguimiento de versiones preliminares, simplemente registra un nuevo problema para Android 11 en el seguimiento de problemas del AOSP.
Les damos las gracias nuevamente a todos los desarrolladores y usuarios pioneros que formaron parte del programa de vista previa este año. Sus comentarios fueron muy importantes para dar forma a esta versión y los miles de problemas registrados sirvieron para que Android 11 sea una mejor plataforma para todos.
¡Esperamos ver tus apps en Android 11!