API de Java 11 y versiones posteriores disponibles con la expansión de sintaxis

Android Studio incluye compatibilidad con varias APIs de Java 11 y versiones posteriores sin requerir un nivel de API mínimo para la app. Por lo tanto, si usas una API que se introdujo en Android 13 (nivel de API 33), el código también funciona en todas las versiones anteriores. La mayoría de las APIs que se introdujeron en Android a lo largo de los años son compatibles con Android 13. Gracias a un proceso llamado expansión de sintaxis de APIs, el compilador DEX (D8) te permite incluir más APIs de lenguaje estándar en apps que admiten versiones anteriores de Android.

La expansión de sintaxis de APIs de compatibilidad con Java 11 tiene tres variantes:

  • La versión mínima solo incluye el paquete java.util.function y las clases de reemplazo para algunas colecciones simultáneas de framework de Android que tienen problemas conocidos en dispositivos anteriores.
  • La versión predeterminada es, de hecho, una versión actualizada de la expansión de sintaxis de la API de Java 8 a Java 11. Incluye los paquetes java.time y java.util.stream, además de todo lo que se encuentra en la versión mínima.
  • La versión Nio incluye el paquete java.nio, además de todo lo que se encuentra en la versión predeterminada.

En la siguiente tabla, se muestran las bibliotecas de Java 11 y versiones posteriores disponibles cuando usas la versión más reciente del complemento de Android para Gradle con la dependencia coreLibraryDesugaring establecida en com.android.tools:desugar_jdk_libs:2.0.1 (consulta Expansión de sintaxis de APIs para obtener más información). Configura esta propiedad en el archivo build.gradle o build.gradle.kts.