Ya llegó Android 17

Lectura de 13 min
Matthew McCullough
Vicepresidente de Administración de Productos, Android Developers

Hoy lanzamos Android 17 y lo ponemos a disposición de la mayoría de los dispositivos Pixel compatibles. Busca los nuevos dispositivos con Android 17 en los próximos meses.

AfD-Android-17.gif

Android 17 marca el inicio de nuestra transición a un sistema inteligente, que pone tus apps en el centro. Android está cambiando a estándares de desarrollo que priorizan la adaptación con la introducción obligatoria del cambio de tamaño para pantallas grandes, y, al mismo tiempo, ofrece privacidad, seguridad, rendimiento, cámara y contenido multimedia de próxima generación. En esta publicación, abordaremos todo eso, así como la forma en que reunimos herramientas, bibliotecas y habilidades de agentes de próxima generación para ayudar a tus apps a aprovechar esta oportunidad.

Durante el último año, desde nuestro canal Canary hasta nuestras versiones beta, colaboramos con muchos de ustedes en la comunidad de desarrolladores para crear una plataforma en la que ustedes y sus usuarios puedan confiar. Para ello, este momento marca la disponibilidad del código fuente en el Proyecto de código abierto de Android (AOSP). Esto te permite examinar el código fuente para comprender mejor cómo funciona Android.

Profundicemos en Android 17.

Un sistema de inteligencia

Con una profunda integración entre el hardware, el software y la IA, estamos transformando Android de un sistema operativo a un sistema de inteligencia. Se trata de brindar nuevas experiencias útiles que anticipen las necesidades de los usuarios y que generen más oportunidades de interacción con tus apps. Para ello, Android 17 amplía las capacidades de AppFunctions, una API de la plataforma con una biblioteca de Jetpack correspondiente. Te permite aportar las capacidades únicas de tu app como "herramientas" orquestables para el MCP de Android, el equivalente en el dispositivo del Protocolo de contexto del modelo. Los asistentes y agentes de IA (como Google Gemini) pueden descubrir y ejecutar AppFunctions para realizar flujos de trabajo en nombre del usuario con acceso directo al estado local de la app.

La biblioteca de Jetpack, que actualmente se encuentra en versión alfa, hace que agregar AppFunctions sea tan fácil como anotar una clase y agregar comentarios de KDoc. 

/**
 *   A note app's [AppFunction]s.
 */
class NoteFunctions(
    private val noteRepository: NoteRepository
) {
    /**
     *   Adds a new note to the app.
     *
     *   @param appFunctionContext The execution context.
     *   @param title The title of the note.
     *   @param content The note's content.
     */
    @AppFunction(isDescribedByKDoc = true)
    suspend fun createNote(
        appFunctionContext: AppFunctionContext,
        title: String,
        content: String
    ): Note {
        return noteRepository.createNote(title, content)
    }
}

También lanzamos una habilidad de agente de AppFunctions que analiza los flujos de trabajo clave de tu app, genera automáticamente el código Kotlin requerido, optimiza tus KDocs para la llamada a herramientas de LLM y proporciona comandos de ADB para pruebas y depuración.

Actualmente, la integración de Gemini se encuentra en versión preliminar privada con verificadores de confianza, pero puedes comenzar a preparar tus apps ahora. Además de los comandos de ADB para ejecutar tus AppFunctions, proporcionamos una app de agente de prueba que incluye una interfaz para descubrir y ejecutar tus AppFunctions, y simular una integración de agente de IA. Únete a nuestro programa de acceso anticipado a la integración en goo.gle/eap-af para tener la oportunidad de ser una de las primeras apps en implementar AppFunctions en producción.

Prioridad de la adaptabilidad

Tus usuarios ya no dependen de un solo factor de forma, sino que cambian entre teléfonos, plegables, tablets, laptops, pantallas de automóviles y entornos de realidad extendida inmersiva. Ahora, con más de 580 millones de dispositivos con pantallas grandes en manos de los usuarios y el próximo lanzamiento de Googlebooks, la próxima generación de ChromeOS creada en la pila de Android, la adaptabilidad ya no es solo un objetivo técnico, sino una gran oportunidad para llegar a usuarios muy comprometidos, que es uno de los motivos por los que estamos cambiando a un estándar de desarrollo que prioriza la adaptabilidad.

Sin restricciones de cambio de tamaño ni orientación en pantallas grandes

Para garantizar que las apps brinden una experiencia premium en todos los factores de forma, incluidos los dispositivos móviles que se ejecutan en modo de escritorio en pantallas conectadas, Android 17 (nivel de API 37) quita la opción de exclusión voluntaria del desarrollador para las restricciones de orientación y cambio de tamaño en dispositivos de pantalla grande (sw > 600 dp) para las apps que segmentan el nivel de API 37. El sistema ignorará los atributos heredados del manifiesto y las APIs de tiempo de ejecución, incluidas screenOrientationsetRequestedOrientation()resizeableActivity=false y las restricciones de relación de aspecto (minAspectRatio/maxAspectRatio). Los juegos (según la categoría de la app en Google Play) siguen exentos. Tu app debe estar lista para adaptarse a cualquier tamaño de ventana, respetar la posición preferida del dispositivo del usuario y admitir ventanas de formato libre de forma nativa.

Multitarea de próxima generación: App en burbujas, barra de burbujas y PIP interactivo para computadoras

Android 17 introduce nuevas y potentes capacidades de ventanas que redefinen la forma en que los usuarios realizan múltiples tareas, lo que exige una mayor flexibilidad de diseño en tus apps:

  • Burbujas de apps: Más allá de la API de burbujas de mensajería, los usuarios ahora pueden transformar cualquier app en una burbuja flotante manteniendo presionado su ícono en el selector. Esta función está disponible en teléfonos, dispositivos plegables y tablets, lo que permite realizar varias tareas de forma liviana para cualquier flujo de trabajo.
  • La barra de burbujas: En pantallas grandes (tablets y dispositivos plegables), la barra de tareas del sistema ahora incluye una barra de burbujas dedicada para organizar, realizar transiciones entre ellas y anclar estas burbujas de apps flotantes.
  • Pantalla en pantalla interactiva para computadoras: En entornos de escritorio, Android 17 introduce la función de pantalla en pantalla (PiP) interactiva. A diferencia de las ventanas PIP tradicionales, que son de solo lectura, estas ventanas fijadas siguen siendo completamente interactivas y permanecen siempre en primer plano sobre otras ventanas de aplicaciones.
Bubbles (1).gif
Burbujas y barra de burbujas en acción

Actualizaciones sobre la recreación de actividades

Para evitar la pérdida de estado y la interrupción, Android 17 actualiza el comportamiento predeterminado para la recreación de actividades. De forma predeterminada, el sistema ya no reiniciará las actividades para los cambios de configuración típicos que no requieren un redibujo completo de la IU (incluidos CONFIG_KEYBOARDCONFIG_KEYBOARD_HIDDENCONFIG_NAVIGATION, CONFIG_TOUCHSCREENCONFIG_COLOR_MODE).

En cambio, las actividades en ejecución recibirán estas actualizaciones a través de onConfigurationChanged(), lo que permitirá transiciones fluidas. Si tu aplicación depende explícitamente de un reinicio completo para volver a cargar los recursos para estos cambios, ahora debes habilitar explícitamente el uso del nuevo atributo del manifiesto android:recreateOnConfigChanges.

Continuar en

Android 17 agrega la función Continuar en para ayudar a los usuarios a realizar una transición sin problemas de una tarea entre dispositivos Android. El usuario ve una sugerencia de la app que abrió más recientemente desde su dispositivo móvil en la barra de tareas de la tablet, lo que le permite iniciar la app y el vínculo directo con un solo toque para continuar donde lo dejó. La función Continuar en puede admitir transiciones de la app a la Web, incluido el uso de la Web si la app no está instalada.

Continue On.png
Sugerencia de transferencia en una tablet
class MyHandoffActivity : Activity() {

    ...

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    // Do stuff
    ...
    // Enable handoff
    setHandoffEnabled(true, null)
  }

  // Override and implement onHandoffActivityDataRequested
  override fun onHandoffActivityDataRequested(handoffRequestInfo: HandoffActivityDataRequestInfo) : HandoffActivityData {
    // Create and return handoff data
  }
}

Adopta un enfoque de adaptación primero con Jetpack Compose

Para ayudarte a adaptar tus apps y cumplir con los nuevos requisitos de Android 17, lanzamos la habilidad adaptable de Jetpack Compose. Este flujo de trabajo para desarrolladores potenciado por IA te ayuda a implementar las mejores prácticas adaptativas:

  • Navegación adaptable: Realiza la transición automática entre las barras de navegación inferiores en dispositivos móviles y los rieles de navegación anclados en los bordes en pantallas grandes con NavigationSuiteScaffold de la biblioteca adaptable de Material 3.
  • Diseños de varios paneles: Implementa diseños de lista-detalles y paneles de asistencia de forma nativa con las escenas de Navigation 3 (ListDetailSceneStrategySupportingPaneSceneStrategy) en lugar de transacciones de fragmentos frágiles.
  • APIs de FlexBox y Grid: Utiliza los componentes de diseño dinámico de Compose 1.11 para ajustar fácilmente los tramos de filas y columnas sobre la marcha, lo que garantiza que tu contenido siempre llene el espacio de forma atractiva.
  • Entrada avanzada sin contacto: Aprovecha la compatibilidad mejorada con el panel táctil y el mouse de Compose 1.11, incluidos los anillos de enfoque nativos y las nuevas APIs (como TrackpadInjectionScopeperformTrackpadInput) para probar y ofrecer fácilmente una verdadera experiencia de "clase de laptop" en Googlebooks y el modo de escritorio.
  • Estados de ventana dinámicos: Aprovecha el modelo de estado reactivo de Compose para adaptar sin problemas tu IU cuando la app pasa de pantalla completa a una burbuja de app flotante o a una ventana interactiva de PiP para escritorio, lo que garantiza una experiencia premium incluso con dimensiones mínimas.

Android prioriza Compose

Compose ofrece la forma más sencilla de compilar apps adaptables, y esa es solo una de las muchas razones por las que creemos que toda la IU de Android debería compilarse con Compose. Con ese fin, el desarrollo para Android ahora prioriza Compose. Todas las nuevas APIs, bibliotecas, herramientas y orientación para desarrolladores de Android se compilarán exclusivamente para Jetpack Compose. Los componentes de View heredados (en el paquete android.widget) y las bibliotecas de Jetpack basadas en View (como FragmentsRecyclerViewViewPager) ahora están en modo de mantenimiento. Solo recibirán correcciones de errores críticos y no se agregarán funciones nuevas.


SUGERENCIA ¿Todo listo para migrar? Usa nuestra habilidad de migración de XML a Compose basada en IA para analizar automáticamente tus diseños de View heredados y convertirlos en código de Compose altamente adaptable.


Rendimiento y eficiencia

El rendimiento de la app implica una interfaz de usuario fluida, tiempos de inicio rápidos y una multitarea eficiente. Android 17 incluye mejoras significativas en todas estas áreas. 

Límites a la memoria de las apps

El uso de memoria es uno de los pilares silenciosos del rendimiento general. Cuando una app o un servicio en primer plano crecen sin control, la administración de memoria aumenta el uso de la CPU y la batería, y, finalmente, provoca la finalización de otras apps almacenadas en caché y trabajos en segundo plano que se comportan correctamente, lo que, en última instancia, fuerza inicios en frío más lentos y una multitarea deficiente. 

A partir de Android 17, el sistema aplicará límites estrictos a la memoria de las apps según la RAM total de un dispositivo y finalizará de forma abrupta los procesos infractores. Novedades para ayudarte a cumplir con estos requisitos más estrictos:

  • Optimizador de R8: El optimizador de R8 reduce significativamente el espacio en memoria del código de bytes de tu app, ya que reduce las clases, los métodos y los campos a nombres más cortos, y quita el código y los recursos sin usar. Usa R8 en modo completo junto con el nuevo analizador de configuración de R8 para asegurarte de que tu app aproveche al máximo R8.
R8 Configuration Analyzer.png
El Analizador de configuración de R8
  • LeakCanary en Android Studio Panda: El generador de perfiles ahora incluye la integración nativa de LeakCanary como una tarea dedicada, completamente integrada en tu IDE y código fuente.
  • ApplicationExitInfo: Si tu app se finaliza debido a estos límites, getDescription() de ApplicationExitInfo devolverá "MemoryLimiter:AnonSwap".
  • Detección de anomalías en el dispositivo: Como parte de ProfilingManager, puedes aprovechar la generación de perfiles basada en activadores con TRIGGER_TYPE_ANOMALY para capturar automáticamente volcados de montón cuando se alcanza el límite de memoria.
val profilingManager = applicationContext
   .getSystemService(ProfilingManager::class.java)

val triggers = ArrayList<ProfilingTrigger>().apply {
  add(ProfilingTrigger.Builder(
    ProfilingTrigger.TRIGGER_TYPE_ANOMALY).build())
}
profilingManager.addProfilingTriggers(triggers)

Además, estamos trabajando para mostrarte más métricas de memoria en el campo en Google Play Console.

Recolección generacional de elementos no utilizados

Android 17 introduce recolecciones de generación joven más frecuentes y menos intensivas en recursos en el recolector de elementos no utilizados (GC) de marcado y compactación simultáneo de ART. Al separar los objetos de corta duración de los estables y de larga duración, el sistema ejecuta barridos frecuentes y ligeros de "generación joven" en lugar de análisis costosos de todo el montón, lo que reduce drásticamente el uso de la CPU, el consumo de energía y el tartamudeo de la IU. Nuestras pruebas mostraron mejoras significativas en la interferencia del GC con los subprocesos de la aplicación y una reducción en el tamaño máximo del conjunto residente de memoria (RSS). Las mejoras de ART también están disponibles para más de mil millones de dispositivos que ejecutan Android 12 (nivel de API 31) y versiones posteriores a través de las actualizaciones del sistema de Google Play.

Lock-Free MessageQueue

En el caso de las apps que segmentan el SDK 37 o versiones posteriores, el android.os.MessageQueue principal ahora implementa una arquitectura sin bloqueos, lo que reduce significativamente los fotogramas perdidos, mejora el tiempo de inicio de la app y optimiza radicalmente el rendimiento de las colas ocupadas en situaciones de subprocesos múltiples. Nota: Esto puede dañar las apps que usan la reflexión en los campos y métodos privados de MessageQueue. Se agregaron las APIs de peekWhenpollTestLooperManager para realizar pruebas de instrumentación sin depender de los elementos internos de MessageQueue

Los campos finales estáticos ahora son realmente finales

A partir de Android 17, las apps que se segmenten para el SDK 37 o versiones posteriores no podrán modificar los campos “static final”, lo que permitirá que el tiempo de ejecución aplique optimizaciones de rendimiento de forma más agresiva. Si se intenta hacerlo a través de la reflexión (o la reflexión profunda), se arrojará una IllegalAccessException. 

Si los modificas a través de la familia de métodos SetStatic<Type>Field de JNI, la aplicación fallará de inmediato.

Restricciones de la vista de notificaciones personalizadas

Para reducir el uso de memoria, restringiremos aún más el tamaño de las vistas de notificaciones personalizadas. Esta actualización cierra una laguna que permite que las apps omitan los límites existentes con URIs. Este comportamiento está controlado por la versión del SDK de destino y se aplica a las apps segmentadas para la API 37 y versiones posteriores.

Privacidad y seguridad

Mantener la confianza de los usuarios es fundamental para el ecosistema de Android. Android 17 presenta funciones sólidas que protegen los datos sensibles y, al mismo tiempo, simplifican las experiencias del usuario.

Opciones que preservan la privacidad

Históricamente, las apps requerían permisos amplios y permanentes para acceder a información como contactos, ubicación precisa y archivos multimedia. Android 17 continúa el cambio hacia opciones que preservan la privacidad y que otorgan acceso temporal basado en la sesión solo a los datos que el usuario selecciona de forma explícita:

  • Selector de contactos a nivel del sistema: Con ACTION_PICK_CONTACTS, las apps pueden solicitar acceso temporal solo a campos específicos (p.ej., correo electrónico o número de teléfono) que elija el usuario, lo que elimina la necesidad del permiso amplio READ_CONTACTS. También admite por completo la separación de perfiles laborales y personales.
  • Relación de aspecto personalizable del selector de fotos: Con PhotoPickerUiCustomizationParams, puedes personalizar el selector de fotos del sistema para que muestre miniaturas en modo vertical. Esto es perfecto para las apps que siempre muestran fotos y videos en orientación vertical, como las apps de redes sociales basadas en videos.
  • Botón de ubicación renderizado por el sistema: Un nuevo botón de ubicación renderizado por el sistema que puedes incorporar en tu app otorga acceso a la ubicación precisa solo para la sesión actual.
  • API de EyeDropper: Una nueva API a nivel del sistema, ACTION_OPEN_EYE_DROPPER, permite que tu app cree un cuentagotas potenciado por el sistema que le permite al usuario seleccionar el color de cualquier píxel de la pantalla. Esto proporciona una experiencia segura y que preserva la privacidad para seleccionar colores, lo que elimina la necesidad de permisos amplios y sensibles de captura de pantalla o proyección de contenido multimedia.
val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
   if (result.resultCode == Activity.RESULT_OK) {
       val color = result.data?.getIntExtra(Intent.EXTRA_COLOR, Color.BLACK)
       // Use the picked color in your app
   }
}
fun launchColorPicker() {
   val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER)
   eyeDropperLauncher.launch(intent)
}
Eyedropper Tester.webp
Cómo elegir un color desde cualquier parte de la pantalla con el selector de color del sistema

Acceso a la red local

Las apps segmentadas para Android 17 ahora requieren el permiso de tiempo de ejecución ACCESS_LOCAL_NETWORK o el uso de selectores de dispositivos que preservan la privacidad y están mediados por el sistema para la comunicación de red local, como hablar con dispositivos inteligentes para la casa o receptores de transmisión. Dado que ACCESS_LOCAL_NETWORK pertenece al grupo de permisos existente NEARBY_DEVICES, los usuarios que ya otorgaron otros permisos de NEARBY_DEVICES no recibirán nuevamente la solicitud. 

Protección contra OTP por SMS

Android 17 expande la protección de contraseñas de un solo uso (OTP) por SMS retrasando el acceso a los mensajes SMS durante tres horas:

Exenciones: Las apps de SMS predeterminadas, de asistente y complementarias conectadas están exentas. Se recomienda enfáticamente que las apps migren a las APIs de SMS RetrieverSMS User Consent.

Criptografía poscuántica (PQC)

Android 17 está listo para la próxima generación de seguridad criptográfica:

  • Integración del almacén de claves: Los dispositivos compatibles pueden generar claves ML-DSA (algoritmo de firma digital basado en módulos y celosías) en hardware seguro para producir firmas seguras ante ataques cuánticos, que se exponen a través de las APIs de JCA estándares.
  • Firma híbrida de APK: Presentamos el esquema de firma de APK v3.2, que combina firmas clásicas con firmas ML-DSA para proteger la entrega de apps.

Carga más segura del código dinámico nativo

Si tu app se segmenta para el SDK 37 o versiones posteriores, la protección de carga dinámica de código (DCL) más segura introducida en Android 14 para archivos DEX y JAR ahora se extiende a las bibliotecas nativas. Todos los archivos nativos cargados con System.load deben marcarse como de solo lectura. De lo contrario, el sistema arroja UnsatisfiedLinkError.

Protección de contraseñas más inteligente para entradas físicas

Con Android 17, ya no se muestra el último carácter ingresado de forma predeterminada, lo que hace que sea más seguro ingresar contraseñas, PIN y otros secretos cuando se usa un teclado físico.

Los usuarios pueden personalizar fácilmente estos parámetros de configuración de la pantalla para que coincidan con sus preferencias (la disponibilidad puede variar según el fabricante del dispositivo).

Los componentes del SDK integrados en Android admiten automáticamente estas protecciones de privacidad mejoradas, y Compose 1.12 las admitirá en SecureTextFields
 

Hide First Letter.gif
Protección de contraseñas más inteligente para entradas físicas

Funciones de cámara y multimedia que empoderan a los creadores y deleitan a los usuarios

Android 17 presenta nuevas funciones para creadores que brindan acceso a cámaras y contenido multimedia de calidad profesional, a la vez que mejoran la experiencia de los consumidores.

  • Eclipsa Video: Estándar de video HDR basado en la especificación SMPTE ST 2094-50 que introduce nuevos metadatos para ayudar a los dispositivos a adaptar el contenido a su capacidad de visualización y a las condiciones de luz ambiental, así como a mejorar la visualización simultánea de contenido estándar y HDR.
  • Formato de imagen RAW14: La nueva compatibilidad con el formato de imagen RAW14 permite que tu app de cámara profesional capture el nivel más alto de detalle y profundidad de color de los sensores de cámara compatibles.
  • Extensiones de cámara definidas por el proveedor: Las extensiones definidas por el proveedor permiten que los socios de hardware definan e implementen modos de extensión de cámara personalizados, lo que proporciona acceso a las mejores y más recientes funciones de la cámara.
  • Codificador de software HE-AAC extendido: Un nuevo codificador de software HE-AAC extendido proporcionado por el sistema admite tasas de bits bajas y altas con codificación unificada de voz y audio, lo que proporciona una calidad de audio significativamente mejor para los mensajes de voz en condiciones de ancho de banda bajo, incluida la compatibilidad con metadatos de sonoridad.
  • Versatile Video Coding (H.266):  Permite a los OEM agregar compatibilidad con el códec definiendo el tipo de MIME video/vvc en MediaFormat, agregando nuevos perfiles de VVC en MediaCodecInfo y, luego, integrando la compatibilidad en MediaExtractor.
  • Tipo de dispositivo de cámara: Nuevas APIs que consultan el tipo de dispositivo subyacente para identificar si una cámara es hardware integrado, una cámara web USB externa o una cámara virtual.
  • Calidad constante para la grabación de video: setVideoEncodingQuality en MediaRecorder configura un modo de calidad constante (CQ) para los codificadores de video, lo que garantiza una fidelidad visual uniforme en todo el video.

Mejor compatibilidad con audífonos

  • Compatibilidad con audífonos Bluetooth LE Audio: Ahora Android incluye una categoría de dispositivo específica para audífonos Bluetooth de bajo consumo (BLE) Audio con la nueva constante AudioDeviceInfo.TYPE_BLE_HEARING_AID, de modo que tu app pueda distinguir los audífonos de los auriculares normales para brindar una experiencia personalizada a los usuarios con dispositivos de asistencia auditiva.
  • Enrutamiento de audio detallado para audífonos: Android 17 permite a los usuarios administrar de forma independiente dónde se reproducen sonidos específicos del sistema. Pueden elegir enrutar las notificaciones, los tonos y las alarmas a los audífonos conectados o a la bocina integrada del dispositivo, lo que ayuda a evitar interrupciones no deseadas en el oído y, al mismo tiempo, mantener una conexión Bluetooth para las apps de administración de audífonos.

CameraX y Media3

CameraXMedia3 se actualizaron para Android 17. Están ahí para hacer el trabajo pesado, suavizar los bordes ásperos del desarrollo de medios y simplificar la creación de capturas de cámara confiables, reproducción de medios fluida y experiencias de edición creativas y complejas. 

Lanzamos una habilidad del agente que puede migrar implementaciones heredadas de la cámara de Android (APIs de Camera1 o Camera2 sin procesar) a CameraX.  

Nota: Deberás actualizar tu versión de CameraX a la 1.5.2 o a la 1.6.0 (o una versión posterior) para evitar fallas relacionadas con un modo de rango dinámico agregado en dispositivos Android 17.

Prepara tus apps, bibliotecas, herramientas y motores de juegos.

Si desarrollas un SDK de Android, una biblioteca, una herramienta o un motor de juegos, es fundamental que prepares las actualizaciones necesarias ahora para evitar que los desarrolladores de apps y juegos indirectos se vean bloqueados por problemas de compatibilidad y permitirles segmentar las funciones más recientes del SDK. Informa a los desarrolladores indirectos si se necesitan actualizaciones para admitir Android 17 por completo.

Las pruebas consisten en instalar tu app de producción o una app de prueba que use tu biblioteca o motor con Google Play o por otros medios en un dispositivo o emulador que ejecute Android 17 Beta 4. Realiza todas las pruebas de los flujos de tu app y busca problemas funcionales o de IU. Cada versión de Android contiene cambios en la plataforma que mejoran la privacidad, la seguridad y la experiencia del usuario en general. Revisa los cambios en el comportamiento que afectan a las apps que se ejecutan enque segmentan Android 17 para enfocar tus pruebas, incluidos los siguientes:

  • Cambio de tamaño en pantallas grandes: Una vez que segmentes tu app para Android 17 (SDK 37), ya no podrás inhabilitar el mantenimiento de las restricciones de orientación, cambio de tamaño y relación de aspecto en pantallas grandes.
  • Carga dinámica de código: Si tu app segmenta su objetivo para el SDK 37 o versiones posteriores, la protección de carga dinámica de código (DCL) más segura introducida en Android 14 para archivos DEX y JAR ahora se extiende a las bibliotecas nativas. Todos los archivos nativos cargados con System.load() deben marcarse como de solo lectura. De lo contrario, el sistema arrojará UnsatisfiedLinkError.
  • Habilitar CT de forma predeterminada: El Certificado de transparencia (CT) está habilitado de forma predeterminada (en Android 16, el CT está disponible, pero las apps debían habilitarlo).
  • Protecciones de red local: Las apps que se segmentan para el SDK 37 o versiones posteriores tienen bloqueado el acceso a la red local de forma predeterminada. Si es posible, cambia a selectores que preserven la privacidad y usa el nuevo permiso ACCESS_LOCAL_NETWORK para obtener acceso amplio y persistente.
  • Refuerzo de audio en segundo plano: A partir de Android 17, el framework de audio aplica restricciones en las interacciones de audio en segundo plano, incluidas la reproducción de audio, las solicitudes de foco de audio y las APIs de cambio de volumen. En función de tus comentarios, realizamos algunos cambios desde la versión beta 2, como la restricción de targetSDK durante la aplicación de FGS en uso y la exención del audio de alarma. Los detalles completos están disponibles en la orientación actualizada.
  • Declaración de acceso a la NPU: Las apps segmentadas para Android 17 que necesiten acceder directamente a la NPU deben declarar  FEATURE_NEURAL_PROCESSING_UNIT en su manifiesto para evitar que se les bloquee el acceso a la NPU. Esto incluye las apps que usan el delegado de NPU de LiteRT, los SDKs específicos del proveedor y la NNAPI obsoleta.

Comienza a usar Android 17

Tu dispositivo Pixel debería recibir Android 17 en breve si aún no has participado en la versión beta de Android. Si no tienes un dispositivo Pixel, puedes usar las imágenes del sistema de 64 bits con Android Emulator en Android Studio. Si actualmente tienes la versión beta 4.1 de Android 17 y aún no has probado la versión beta de QPR1 de Android 17, puedes salir del programa y, luego, se te ofrecerá la versión de actualización de Android 17 de forma inalámbrica.

Cómo obtener la versión beta de Android 17 en dispositivos de socios

Android 17 está disponible en versión beta para teléfonos celulares, tablets y dispositivos plegables de socios como Honor, iQOO, Lenovo, OnePlus, OPPO, Realme, Sharp, vivo y Xiaomi.

android-17-beta-partners.jpg

Para obtener la mejor experiencia de desarrollo con Android 17, te recomendamos que uses la compilación Canary más reciente de Android Studio Quail. Una vez que hayas configurado todo, haz lo siguiente:

  • Prueba la compatibilidad de tu app actual, descubre si los cambios en Android 17 la afectan y, luego, instálala en un dispositivo o en un Android Emulator que ejecute Android 17 y pruébala exhaustivamente.

Agradecemos nuevamente a todos los que participaron en nuestro programa de versión beta y versión preliminar para desarrolladores de Android. Esperamos ver cómo tus apps aprovechan las actualizaciones de Android 17 y tenemos planes para ofrecerte actualizaciones con una cadencia de lanzamientos rápida en el futuro.

Para obtener información completa sobre Android 17, visita el sitio para desarrolladores de Android 17.

Escrito por:

Seguir leyendo