Se compiló Android 10 sobre la base de tres temas importantes. En primer lugar, Android 10 está dando forma a la vanguardia de la innovación móvil con aprendizaje automático avanzado y compatibilidad con dispositivos emergentes, como teléfonos plegables y compatibles 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 para 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 Más información sobre dispositivos plegables.
Redes 5G
El 5G promete ofrecer velocidades constantemente más rápidas y una latencia más baja. Android 10 agrega compatibilidad de la plataforma con 5G y extiende ConnectivityManager 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 estas, 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. Para inhabilitar la Respuesta inteligente en cada notificación, usa 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 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 de versiones anteriores de Android. Para obtener más información, consulta Tema oscuro.
Android 10 puede crear un tema oscuro para tu aplicación 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 incluye 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 ricas 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, usa el modo de borde a borde y dibuja detrás de la barra de navegación para crear una experiencia envolvente. Para implementar esto, usa la API de setSystemUiVisibility() para diseñar tu app en pantalla completa y, luego, controla WindowInsets según corresponda para asegurarte de que no se oculten partes importantes de la IU. Para obtener más información, consulta
Navegación por gestos y la
serie de entradas de blog sobre navegación por gestos.
Paneles de configuración
Puedes mostrar la configuración clave del sistema directamente en el contexto de tu app a través de una API de Settings.Panel. 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, NFC y el volumen de audio. Por ejemplo, un navegador puede
mostrar un panel con parámetros de configuración de conectividad, como el modo de avión, Wi-Fi (incluidas
las redes cercanas) y los datos móviles. Para mostrar un panel de configuración, activa un intent con una de las 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 atajos de uso compartido son similares a los atajos de la app y usan la misma API de ShortcutInfo. La API también es compatible con la biblioteca de AndroidX de ShareTarget. Para obtener más información, consulta la app de ejemplo de accesos directos de uso compartido.
Los accesos directos de uso compartido permiten que los usuarios accedan directamente a una actividad específica en 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. A partir de versiones anteriores, Android 10 incluye cambios extensos 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. Para obtener más información sobre cómo admitir estos cambios en tus apps, consulta Cambios en la privacidad.
Ahora los usuarios pueden elegir otorgar acceso a la ubicación cuando la app está en primer plano.
Ofrecer 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 opción de permiso: 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 Cómo solicitar actualizaciones de ubicación o la entrada de blog sobre la ubicación para desarrolladores de Android.
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 solicitando 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 del dispositivo, 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. Para obtener más información, consulta Prácticas recomendadas para identificadores únicos y Restricción de identificadores de dispositivos que no se pueden restablecer.
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 usar el selector de archivos del sistema para acceder a los archivos compartidos en la colección de Descargas. Para obtener más información,
consulta Almacenamiento específico.
Bloqueo de interrupciones no deseadas: Android 10 impide que las apps se inicien en segundo plano y pasen de forma inesperada a primer plano, lo que quita el foco de otra app. Para obtener más información, consulta Inicios de actividades en segundo plano.
Seguridad
Android 10 presenta una serie de funciones de seguridad que protegen a los usuarios a través de avances en la encriptación, el endurecimiento de la plataforma y la autenticación. Para obtener más información, consulta Novedades de la seguridad de Android Q.
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 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 las áreas de seguridad críticas 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. Para
obtener más información, consulta
Cómo mostrar un diálogo de autenticación biométrica.
Cámara y contenido multimedia
Profundidad dinámica para fotos
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 de desenfoque y bokeh especializadas en tu app. Dynamic Depth es un formato abierto para dispositivos que ejecutan Android 10 (nivel de API 29) y versiones posteriores. Para obtener más información, consulta la especificación de profundidad dinámica (PDF).
Con la imagen de profundidad dinámica, puedes ofrecer opciones de desenfoque y bokeh especializadas en tu app.
Captura de reproducción de audio
Cualquier app que reproduzca audio puede permitir que otras apps capturen su transmisión de audio con la 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. Debido a que esta función se creó teniendo en cuenta la privacidad y la protección de los derechos de autor, la capacidad de una app para capturar el audio de otra está restringida, lo que les da a las apps control total sobre si se pueden capturar sus transmisiones de audio. Para obtener más información, consulta Cómo capturar audio en Android Q.
Nuevos códecs de audio y video
Android 10 agrega compatibilidad con el códec de video de código abierto AV1, que permite a los proveedores de contenido multimedia transmitir contenido de video de alta calidad a dispositivos con 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 con 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 recuperar datos MIDI dentro de una devolución de llamada de audio con una lectura sin bloqueo, lo que habilita 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 graba 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
Android 10 refactoriza 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 las redes Wi-Fi preferidas al usuario para la conectividad a Internet.
Modos de rendimiento de Wi-Fi
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 modos de rendimiento, llama a WifiManager.createWifiLock() con WIFI_MODE_FULL_LOW_LATENCY o WIFI_MODE_FULL_HIGH_PERF.
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, reducir los bloqueos y ayudar 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 probaron con perfiles de Play.
API de Neural Networks 1.2
Android 10 agrega 60 operaciones, 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. Google colabora con proveedores de hardware y frameworks de aprendizaje automático populares, como TensorFlow, para optimizar y ofrecer compatibilidad con la NNAPI 1.2.
API térmica
Cuando los dispositivos se sobrecalientan, pueden acelerar la CPU, la GPU o ambas, lo que puede afectar a las apps y los juegos de forma inesperada. 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 puede inhabilitar el flash o la mejora intensiva de imágenes, o un juego puede reducir la velocidad de fotogramas o el teselado poligonal. Para obtener más información, consulta la API de Thermal.
Compatibilidad por medio de API públicas
Android 10 sigue ampliando las restricciones de las interfaces que no pertenecen al SDK para que las apps pasen gradualmente a usar solo APIs públicas. Si una interfaz que usas está restringida, puedes solicitar una API pública para esa interfaz. Para ayudarte a realizar la transición y evitar que tus apps dejen de funcionar, Android 10 habilita las restricciones solo cuando tu app se orienta a Android 10 (nivel de API 29). Para obtener más información, consulta Actualizaciones de las restricciones de interfaces que no pertenecen al SDK en Android 10.
Actualizaciones más rápidas, código actualizado
Android 10 se diseñó para que las actualizaciones sean más rápidas a través de Project Treble, que proporciona una interfaz coherente y comprobable entre Android y el código de 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), una 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, Google Play puede 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, estas actualizaciones de Android 10 ayudan a impulsar la coherencia de la implementación de la plataforma en todos los dispositivos y, con el tiempo, aportan una mayor uniformidad que reduce los costos de desarrollo y pruebas.
Comenzar
Para obtener recursos completos para desarrolladores de Android 10, visita developer.android.com/10.
