Se compiló Android 10 sobre la base de tres temas importantes. En primer lugar, Android 10 está definiendo la vanguardia de la innovación móvil con aprendizaje automático avanzado y compatibilidad con dispositivos emergentes, como teléfonos plegables y con 5G. A continuación, Android 10 se enfoca principalmente en la privacidad y la seguridad, con casi 50 funciones que brindan a los usuarios mayor protección, transparencia y control. Por último, Android 10 expande los controles de bienestar digital de los usuarios para que las personas y las familias puedan encontrar un mejor equilibrio con la tecnología.
A continuación, se muestra lo que Android 10 ofrece a los desarrolladores y cómo puedes usarlo hoy mismo.
Innovación y nuevas experiencias
Con Android 10, puedes aprovechar las innovaciones de hardware y software más recientes para crear experiencias de apps increíbles para los usuarios.
Con Android 10, puedes optimizar tus apps para dispositivos plegables y otros dispositivos con pantalla grande.
Dispositivos plegables
A partir de la sólida compatibilidad con el modo multiventana, Android 10 extiende la función multitarea a todas las ventanas de la app y proporciona continuidad de pantalla para mantener el estado de la app cuando se pliega o despliega el dispositivo. Android 10 agrega varias mejoras en onResume y onPause para admitir la reanudación múltiple y notificar a tu app cuando tiene el foco. También cambia el funcionamiento del atributo de manifiesto resizeableActivity para ayudarte a administrar cómo se muestra tu app en pantallas grandes y plegables. Para ayudarte a compilar apps para dispositivos plegables, puedes configurar un emulador de dispositivo plegable como un dispositivo virtual (AVD) en Android Studio. Para obtener detalles sobre cómo optimizar tus apps para dispositivos plegables, consulta la guía para desarrolladores.
Redes 5G
El 5G promete ofrecer velocidades más rápidas y menor latencia de manera constante. Android 10 agrega compatibilidad de plataforma para 5G y extiende las APIs existentes para ayudarte a aprovechar estas mejoras. Puedes usar las APIs de conectividad para detectar si el dispositivo tiene una conexión de ancho de banda alto y verificar si la conexión es de uso medido. Con ellas, tus apps y juegos pueden adaptar experiencias enriquecidas y envolventes para los usuarios con 5G.
Respuesta inteligente en notificaciones
Android 10 usa el AA integrado en el dispositivo para sugerir acciones contextuales en las notificaciones, como respuestas inteligentes para mensajes o abrir un mapa para una dirección en la notificación. Tus apps pueden aprovechar esta función de inmediato, sin que tengas que hacer nada. Las respuestas y acciones inteligentes que proporciona el sistema se insertan directamente en las notificaciones de forma predeterminada. Aún puedes proporcionar tus propias respuestas y acciones si lo deseas. Solo debes inhabilitar la Respuesta inteligente en cada notificación con setAllowGeneratedReplies() y setAllowSystemGeneratedContextualActions().
La Respuesta inteligente puede sugerir acciones según el contenido de la notificación.
Tema oscuro
Android 10 agrega un tema oscuro para todo el sistema que es ideal para condiciones de poca luz y ayuda a ahorrar batería. Los usuarios pueden activar un nuevo tema oscuro para todo el sistema en Configuración o activando el Ahorro de batería. Esto cambia la IU del sistema a oscura y habilita el tema oscuro de las apps que lo admiten. Puedes crear un tema oscuro personalizado para tu app o habilitar la nueva función Modo oscuro forzado, que permite que el sistema cree de forma dinámica una versión oscura a partir de tu tema existente. También puedes aprovechar la función DayNight de AppCompat para ofrecer un tema oscuro a los usuarios que tengan versiones anteriores de Android. Consulta la guía para desarrolladores si quieres obtener más información.
Android 10 puede crear un tema oscuro para tu app de forma dinámica con Modo oscuro forzado.
Navegación por gestos
La navegación por gestos les brinda a las apps la pantalla completa para el contenido.
Android 10 presenta un modo de navegación por gestos completo que elimina el área de la barra de navegación y permite que las apps usen la pantalla completa para brindar experiencias más enriquecedoras y envolventes. Conserva la navegación conocida de Atrás, Inicio y Recientes a través de deslizamientos desde los bordes en lugar de botones visibles. Para integrarse sin problemas con la navegación por gestos, tu app debe ir de borde a borde y dibujarse detrás de la barra de navegación para crear una experiencia inmersiva. Para implementar esto, las apps deben usar la API de setSystemUiVisibility() para que se muestren en pantalla completa y, luego, controlar WindowInsets según corresponda para garantizar que no se oculten partes importantes de la IU. Comienza a optimizar tu app hoy mismo y consulta nuestra serie de entradas de blog para obtener más información.
Paneles de configuración
Ahora puedes mostrar la configuración clave del sistema directamente en el contexto de tu app, a través de una nueva API de panel de configuración. Un panel de configuración es una IU flotante que invocas para mostrar los parámetros de configuración que los usuarios podrían necesitar, como la conectividad a Internet, la NFC y el volumen de audio. Por ejemplo, un navegador podría mostrar un panel con parámetros de configuración de conectividad, como el modo de avión, Wi-Fi (incluidas las redes cercanas) y datos móviles. Para mostrar un panel de configuración, solo debes activar un intent con una de las nuevas acciones de Settings.Panel.
Accesos directos de uso compartido
Los atajos de uso compartido permiten que esta acción sea más rápida y sencilla, ya que los usuarios pueden ir directamente a otra app para compartir contenido. Los desarrolladores pueden publicar destinos de uso compartido que inicien una actividad específica en sus apps con contenido adjunto, y estos se muestran a los usuarios en la IU de uso compartido. Como se publican con anticipación, la IU de uso compartido se carga de forma instantánea cuando se inicia. Los accesos directos de uso compartido son similares a los accesos directos a apps y usan la misma API de ShortcutInfo. La API también es compatible con la biblioteca de AndroidX ShareTarget. Consulta la app de ejemplo para obtener más detalles.
Los accesos directos de uso compartido permiten que los usuarios accedan directamente a una actividad específica de tus apps con contenido adjunto.
Privacidad para los usuarios
La privacidad es un aspecto central de Android 10, desde protecciones más sólidas en la plataforma hasta nuevas funciones diseñadas con la privacidad en mente. Al igual que las versiones anteriores, Android 10 incluye cambios importantes para proteger la privacidad y brindarles más control a los usuarios, con una IU del sistema mejorada, permisos más estrictos y restricciones sobre los datos que pueden usar las apps. Consulta los cambios de privacidad para obtener detalles sobre cómo admitirlos en tus apps.
Ahora, los usuarios pueden elegir otorgar acceso a la ubicación cuando la app está en primer plano.
Brindar a los usuarios más control sobre los datos de ubicación: Los usuarios tienen más control sobre sus datos de ubicación a través de una nueva opción de permiso. Ahora pueden permitir que una app acceda a la ubicación solo mientras la app está en uso (se ejecuta en primer plano). En la mayoría de las apps, esto proporciona un nivel de acceso suficiente, mientras que, para los usuarios, es una gran mejora en la transparencia y el control. Para obtener más información sobre los cambios de ubicación, consulta la guía para desarrolladores o nuestra entrada de blog.
Protección de los datos de ubicación en los análisis de red: La mayoría de las APIs para analizar redes ya requerían el permiso de ubicación aproximada. Android 10 aumenta la protección de esas APIs, ya que requiere el permiso de ubicación precisa.
Prevención del seguimiento de dispositivos: Las apps ya no pueden acceder a identificadores de dispositivos que no se pueden restablecer y que podrían usarse para el seguimiento, incluidos el IMEI, el número de serie y otros identificadores similares. La dirección MAC del dispositivo también se aleatoriza de forma predeterminada cuando se conecta a redes Wi-Fi. Lee las prácticas recomendadas para elegir los identificadores adecuados para tu caso de uso y consulta los detalles aquí.
Protección de los datos del usuario en el almacenamiento externo: Android 10 presenta una serie de cambios para brindarles a los usuarios más control sobre los archivos en el almacenamiento externo y los datos de la app que contienen. Las apps pueden almacenar sus propios archivos en sus entornos de pruebas privados, pero deben usar MediaStore para acceder a los archivos multimedia compartidos y el selector de archivos del sistema para acceder a los archivos compartidos en la nueva colección de Descargas. Obtén más información aquí.
Bloqueo de interrupciones no deseadas: Android 10 impide que se inicien apps en segundo plano que pasen de forma inesperada al primer plano y quiten el enfoque de otra app. Obtén más información aquí.
Seguridad
Android 10 presenta una serie de funciones que protegen mejor a los usuarios a través de avances en la encriptación, el endurecimiento de la plataforma y la autenticación. Obtén más información sobre las actualizaciones de seguridad de Android 10 aquí.
Encriptación de almacenamiento: Todos los dispositivos compatibles que se lancen con Android 10 deben encriptar los datos del usuario y, para que esto sea más eficiente, Android 10 incluye Adiantum, nuestro nuevo modo de encriptación.
TLS 1.3 de forma predeterminada: Android 10 también habilita TLS 1.3 de forma predeterminada, una revisión importante del estándar TLS con beneficios de rendimiento y seguridad mejorada.
Endurecimiento de la plataforma: Android 10 también incluye el endurecimiento de varias áreas críticas para la seguridad de la plataforma.
Datos biométricos mejorados: Android 10 extiende el framework de BiometricPrompt para admitir métodos de autenticación pasivos, como el reconocimiento facial, y agregar flujos de autenticación implícitos y explícitos. En el flujo explícito, el usuario debe confirmar de forma explícita la transacción en el TEE durante la autenticación. El flujo implícito está diseñado como una alternativa más ligera para las transacciones con autenticación pasiva. Android 10 también mejora el resguardo de las credenciales del dispositivo cuando es necesario. Obtén más información aquí.
Cámara y contenido multimedia
Profundidad dinámica para fotos
Ahora, las apps pueden solicitar una imagen de profundidad dinámica, que consiste en un JPEG, metadatos de XMP relacionados con elementos de profundidad, y un mapa de profundidad y confianza incorporado en el mismo archivo. Estas te permiten ofrecer opciones especializadas de desenfoque y bokeh en tu app. Dynamic Depth es un formato abierto para el ecosistema, y estamos trabajando con nuestros socios para incorporarlo a los dispositivos que ejecutan Android 10 y versiones posteriores.
Con la imagen de profundidad dinámica, puedes ofrecer opciones de desenfoque y bokeh especializadas en tu app.
Captura de reproducción de audio
Ahora, cualquier app que reproduzca audio puede permitir que otras apps capturen su transmisión de audio con una nueva API de captura de reproducción de audio. Además de habilitar los subtítulos, la API te permite admitir casos de uso populares, como la transmisión de juegos en vivo. Creamos esta nueva función teniendo en cuenta la privacidad y la protección de los derechos de autor, por lo que la capacidad de una app para capturar el audio de otra app está restringida, lo que les da a las apps control total sobre si se pueden capturar sus transmisiones de audio. Obtén más información en esta entrada de blog.
Nuevos códecs de audio y video
Android 10 agrega compatibilidad con el códec de video de código abierto AV1, que permite que los proveedores de contenido multimedia transmitan contenido de video de alta calidad a dispositivos Android con menos ancho de banda. Además, Android 10 admite la codificación de audio con Opus, un códec abierto y libre de regalías optimizado para la transmisión de voz y música, y HDR10+ para videos de alto rango dinámico en dispositivos compatibles. La API de MediaCodecInfo presenta una forma más sencilla de determinar las capacidades de renderización de video de un dispositivo Android. Para cualquier códec determinado, puedes obtener una lista de los tamaños y las velocidades de fotogramas admitidos.
API de Native MIDI
Para las apps que realizan su procesamiento de audio en C++, Android 10 presenta una API de MIDI nativa para comunicarse con dispositivos MIDI a través del NDK. Esta API permite que los datos MIDI se recuperen dentro de una devolución de llamada de audio con una lectura sin bloqueo, lo que permite el procesamiento de baja latencia de los mensajes MIDI. Pruébalo con la app de ejemplo y el código fuente aquí.
Micrófonos direccionales que se pueden acercar
Android 10 te brinda más control sobre la captura de audio a través de una nueva API de MicrophoneDirection. Puedes usar la API para especificar una dirección preferida del micrófono cuando se realiza una grabación de audio. Por ejemplo, cuando el usuario graba un video de tipo "selfie", puedes solicitar el micrófono frontal para la grabación de audio (si existe). Además, esta API presenta una forma estandarizada de controlar los micrófonos con zoom, lo que permite que tu app tenga control sobre la dimensión del campo de grabación.
Vulkan en todas partes
Android 10 expande el impacto de Vulkan con nuestra implementación de la API multiplataforma de baja sobrecarga para gráficos en 3D de alto rendimiento. Vulkan 1.1 ahora es un requisito en todos los dispositivos de 64 bits que ejecutan Android 10 y versiones posteriores, y una recomendación para todos los dispositivos de 32 bits. Ya vemos un impulso significativo en la compatibilidad con Vulkan en el ecosistema: entre los dispositivos que ejecutan Android N o versiones posteriores, el 53% es compatible con Vulkan 1.0.3 o versiones posteriores. Con el nuevo requisito de Android 10, esperamos que la adopción mejore aún más el próximo año.
Conectividad
Conexión a Internet y entre pares mejorada
Refactorizamos la pila de Wi-Fi para mejorar la privacidad y el rendimiento, y también para mejorar los casos de uso habituales, como la administración de dispositivos de IoT y la sugerencia de conexiones a Internet, sin necesidad de solicitar el permiso de ubicación. Las APIs de conexión de red facilitan la administración de dispositivos de IoT a través de Wi-Fi local para funciones de intercambio de tráfico, como la configuración, la descarga o la impresión. Las APIs de sugerencia de red permiten que las apps muestren al usuario las redes Wi-Fi preferidas para la conectividad a Internet.
Modos de rendimiento de Wi-Fi
Ahora, las apps pueden solicitar Wi-Fi adaptable habilitando los modos de alto rendimiento y baja latencia.
Esto puede ser un gran beneficio cuando la baja latencia es
importante para la experiencia del usuario, como en los juegos en tiempo real, las llamadas de voz activas
y casos de uso similares. La plataforma funciona con el firmware del dispositivo para cumplir con el requisito con el menor consumo de energía. Para usar los nuevos modos de rendimiento, llama a WifiManager.WifiLock.createWifiLock() con WIFI_MODE_FULL_LOW_LATENCY o WIFI_MODE_FULL_HIGH_PERF. En estos modos, la plataforma trabaja con el firmware del dispositivo para cumplir con el requisito con el menor consumo de energía.
Conceptos básicos de Android
Optimizaciones de ART
Las mejoras en el entorno de ejecución de ART ayudan a que tus apps se inicien más rápido, consuman menos memoria y se ejecuten con mayor fluidez, sin que tengas que hacer nada. Los perfiles de ART que entrega Google Play permiten que ART precompile partes de tu app incluso antes de que se ejecute. En el tiempo de ejecución, Android 10 agrega la recolección de elementos no utilizados generacional al recolector de elementos no utilizados de copia simultánea (CC) de ART para que la recolección de elementos no utilizados sea más eficiente en términos de tiempo y CPU, reduzca los bloqueos y ayude a que las apps se ejecuten mejor en dispositivos de gama baja.
En este gráfico, se muestra el porcentaje de mejora en el tiempo de inicio de apps específicas cuando se prueban con perfiles de Play.
API de Neural Networks 1.2
Agregamos 60 operaciones nuevas, incluidas ARGMAX, ARGMIN y LSTM cuantizada, junto con una variedad de optimizaciones de rendimiento. Esto sienta las bases para acelerar una gama mucho más amplia de modelos, como los de detección de objetos y segmentación de imágenes. Estamos trabajando con proveedores de hardware y frameworks de aprendizaje automático populares, como TensorFlow, para optimizar y lanzar la compatibilidad con la NNAPI 1.2.
API térmica
Cuando los dispositivos se sobrecalientan, pueden acelerar la CPU o la GPU, lo que puede afectar a las apps y los juegos de forma inesperada. Ahora, en Android 10, las apps y los juegos pueden usar una API térmica para supervisar los cambios en el dispositivo y tomar medidas que ayuden a restablecer la temperatura normal. Por ejemplo, las apps de transmisión pueden reducir la resolución, la tasa de bits o el tráfico de red; una app de cámara podría inhabilitar el flash o la mejora de imagen intensiva, o un juego podría reducir la velocidad de fotogramas o el teselado poligonal. Obtén más información aquí.
Compatibilidad por medio de API públicas
Android 10 sigue ampliando las restricciones para las interfaces que no pertenecen al SDK, de modo que las apps pasen gradualmente a usar solo APIs públicas. Si una interfaz que usas actualmente está restringida, puedes solicitar una nueva API pública para esa interfaz. Para ayudarte a realizar la transición y evitar que tus apps dejen de funcionar, habilitaremos las restricciones solo cuando tu app se oriente a Android 10 (API 29). Para obtener más detalles sobre las restricciones, consulta la guía para desarrolladores.
Actualizaciones más rápidas, código actualizado
Android 10 se creó para realizar actualizaciones más rápidas a través de Project Treble, que proporciona una interfaz coherente y comprobable entre Android y el código del dispositivo subyacente de los fabricantes de dispositivos y de chips. A través de Treble, los fabricantes de dispositivos pueden llevar Android 10 a los dispositivos compatibles con Treble de forma más rápida y a un costo menor.
Android 10 también es la primera versión que admite el Proyecto Mainline (oficialmente llamado actualizaciones del sistema de Google Play), nuestra nueva tecnología para proteger a los usuarios de Android y mantener sus dispositivos actualizados con cambios importantes en el código, directamente desde Google Play. Con las actualizaciones del sistema de Google Play, podemos actualizar componentes internos específicos en todos los dispositivos que ejecutan Android 10 y versiones posteriores, sin necesidad de una actualización completa del sistema por parte del fabricante del dispositivo.
Para los desarrolladores, esperamos que estas actualizaciones de Android 10 ayuden a impulsar la coherencia de la implementación de la plataforma en todos los dispositivos y, con el tiempo, aporten una mayor uniformidad que reduzca los costos de desarrollo y pruebas.
Comenzar
Para obtener recursos completos para desarrolladores de Android 10, visita developer.android.com/10.
