API de-sugar con soporte para Android 13 y java.nio


La nueva versión 2.0 está disponible en 3 variantes:

  • com.android.tools:desugar_jdk_libs_nio:2.0.2 - La versión Nio incluye todas las funciones de eliminación de azúcar disponibles, incluido el java.nio, java.tiempo, Corriente, Y funciones API.
  • com.android.tools:desugar_jdk_libs:2.0.2 - La versión estándar incluye desazucarado para el java.tiempo, corriente, Y funciones API. Es similar a la eliminación de azúcar de la API 1.x que ya está disponible, pero se actualizó con las API agregadas a Android 13.
  • com.android.tools:desugar_jdk_libs_minimal:2.0.2 - La versión mínima contiene sólo el java.util.function Corrección de paquetes y errores para colecciones concurrentes. Está diseñado para una sobrecarga mínima de tamaño de código.

Si decide agregar más funciones de desecación, tendrá un mayor impacto en el tamaño del código de su aplicación. El mínimo La especificación, como sugiere el nombre, tiene un impacto mínimo en el tamaño del código de la aplicación. El No La especificación tiene el mayor impacto.

El nuevo java.nio API

El nuevo java.nio Las API admitidas en la eliminación de azúcar de API incluyen:

  • Todas las clases y API en java.nio.archivo como Atributos de archivo básicosManipulación de archivos o uso de java.nio.file.Path.
  • Algunas extensiones de java.nio.canalescomo ellos Abrir FileChannel# métodos.
  • Algunos métodos de utilidad como archivo#topath.

El fragmento de código a continuación ilustra cómo puede usar el nuevo ahora java.nio API en todos los dispositivos, incluidos los dispositivos que ejecutan Android 7 y versiones anteriores, a través de los métodos de kotlin.io.ruta quien pasa el rato java.nio.archivo.archivos. Un archivo temporal se puede crear, escribir, leer y sus atributos básicos y existencia se pueden consultar con nuevos java.nio API.

import android.util.Log
import java.nio.file.StandardOpenOption.APPEND
import kotlin.io.path.createTempDirectory
import kotlin.io.path.deleteIfExists
import kotlin.io.path.exists
import kotlin.io.path.fileSize
import kotlin.io.path.readLines
import kotlin.io.path.writeLines

...
val TAG = "java.nio Test"
val tempDirectory = createTempDirectory("tempFile")
val tempFile = tempDirectory.resolve("tempFile")
tempFile.writeLines(listOf("first"))
tempFile.writeLines(listOf("second"), options = arrayOf(APPEND))
Log.d(TAG,"Content: ${tempFile.readLines()}")
Log.d(TAG,"Size: ${tempFile.fileSize()}")
Log.d(TAG,"Exists (before deletion): ${tempFile.exists()}")
tempFile.deleteIfExists()
Log.d(TAG,"Exists (after deletion): ${tempFile.exists()}")

// Resulting logcat output.
Content: first second
Size: 13
Exists (before deletion): true
Exists (after deletion): false

Sin embargo, algunas funciones no se pueden emular para dispositivos que ejecutan Android 7 y versiones anteriores, y en su lugar lanzan una instancia de UnsupportedOperationException o atrás Cero. Todavía funcionan en dispositivos con Android 8 o posterior, por lo que el código existente protegido por inspección a nivel de API debería funcionar como de costumbre. Consulte la lista completa de las API disponibles y las limitaciones conocidas.

El código ha sido ampliamente probado, pero estamos buscando aportes adicionales de los desarrolladores de aplicaciones.

¡Pruebe la nueva versión de eliminación de azúcar API y cuéntenos cómo funcionó para usted!

Para obtener más información, consulte Compatibilidad con API de lenguaje Java más nuevas desde el momento en que se introdujo la eliminación de azúcar de API.

Java y OpenJDK son marcas comerciales o marcas comerciales registradas de Oracle y/o sus filiales.

Si quieres conocer otros artículos parecidos a API de-sugar con soporte para Android 13 y java.nio puedes visitar la categoría Android.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir