The brand new model 2.0 launch is available in 3 flavors:
- com.android.instruments:desugar_jdk_libs_nio:2.0.2 – the nio model consists of all of the desugaring accessible together with the java.nio, java.time, stream, and features APIs.
- com.android.instruments:desugar_jdk_libs:2.0.2 – the default model consists of desugaring for the java.time, stream, and features APIs. It’s much like model 1.x API desugaring already accessible, however up to date with APIs added as much as Android 13.
- com.android.instruments:desugar_jdk_libs_minimal:2.0.2 – the minimal model consists of solely the java.util.operate bundle and bug fixes on concurrent collections. It’s designed for minimal code dimension overhead.
Opting into extra desugaring options will result in a bigger influence in your app’s code dimension. The minimal specification has, as its title signifies, a minimal influence on the code dimension of the app. The nio specification has essentially the most influence.
The brand new java.nio APIs
The brand new java.nio APIs supported in API desugaring embrace:
- All of the lessons and APIs in java.nio.file akin to BasicFileAttributes, file manipulation, or utilization of java.nio.file.Path.
- Some extensions of java.nio.channels, such because the FileChannel#open strategies.
- A number of utility strategies akin to File#toPath.
The next code snippet illustrates how one can now use the brand new java.nio APIs on all units, together with units operating Android 7 and decrease, by means of the strategies of kotlin.io.path which depend upon java.nio.file.Information. A temp file could be created, written into, learn, and its primary attributes and its existence could be queried utilizing the brand new java.nio APIs.
import android.util.Log |
// Ensuing logcat output. |
A number of options nevertheless can’t be emulated for units operating Android 7 and decrease and as a substitute throw an occasion of UnsupportedOperationException or return null. They nonetheless work on units operating Android 8 or increased, so present code guarded by an API degree test ought to work because it used to. See the full listing of APIs accessible and the recognized limitations.
The code has been extensively examined, however we’re searching for further inputs from app builders.
Please check out the brand new model of API desugaring, and tell us the way it labored for you!
For added background see the publish Assist for newer Java language APIs from when API desugaring was launched.
Java and OpenJDK are logos or registered logos of Oracle and/or its associates.