Panoramica di funzionalità e API

Android 13 introduce nuove fantastiche funzionalità e API per gli sviluppatori. Le sezioni riportate di seguito ti aiutano a scoprire le funzionalità per le tue app e a iniziare a utilizzare le API correlate.

Per un elenco dettagliato delle API nuove, modificate e rimosse, leggi il report Differenze API. Per maggiori dettagli sulle nuove API, visita il Riferimento API Android: le nuove API sono evidenziate per visibilità. Inoltre, per conoscere le aree in cui le modifiche alla piattaforma possono influire sulle tue app, assicurati di controllare i cambiamenti del comportamento di Android 13 per le app che hanno come target Android 13 e per tutte le app.

Produttività e strumenti per sviluppatori

Icone delle app a tema

Utente che attiva le icone delle app a tema
Attivazione delle icone delle app a tema su Android 13

A partire da Android 13, puoi attivare le icone delle app a tema. Con questa funzionalità, le icone delle app nelle app Avvio app di Android supportate vengono colorate per ereditare i colori dello sfondo scelto dall'utente e di altri temi.

Per supportare questa funzionalità, l'app deve fornire sia un'icona adattiva sia un'icona monocromatica dell'app e puntare all'icona monocromatica dell'app dall'elemento <adaptive-icon> nel file manifest. Se un utente ha attivato le icone di app a tema (in altre parole, ha attivato l'opzione Icone a tema nelle impostazioni di sistema) e l'Avvio app supporta questa funzionalità, il sistema utilizza la colorazione dello sfondo e del tema scelti dall'utente per determinare il colore della tinta, che verrà applicato all'icona dell'app monocromatica.

Nella schermata Home NON viene visualizzata l'icona dell'app a tema, bensì l'icona dell'app adattiva o standard, nei seguenti casi:

  • Se l'utente non ha attivato le icone delle app a tema
  • Se la tua app non fornisce un'icona dell'app monocromatica
  • Se Avvio app non supporta le icone delle app a tema

Per maggiori dettagli e istruzioni, vedi Icone adattive.

Lingua preferita nelle app

Lingue per app nelle impostazioni di sistema

In molti casi, gli utenti multilingue impostano la lingua del sistema su una sola lingua, ad esempio l'inglese, ma vogliono selezionare altre lingue per app specifiche, ad esempio olandese, cinese o hindi. Per consentire alle app di offrire un'esperienza migliore a questi utenti, Android 13 introduce le seguenti funzionalità per le app che supportano più lingue:

  • Impostazioni di sistema: una posizione centralizzata in cui gli utenti possono selezionare una lingua preferita per ogni app.

    L'app deve dichiarare l'attributo android:localeConfig nel file manifest dell'app per indicare al sistema che supporta più lingue. Per scoprire di più, consulta le istruzioni per creare un file di risorse e dichiararlo nel file manifest dell'app.

  • API aggiuntive: queste API pubbliche, come i metodi setApplicationLocales() e getApplicationLocales() in LocaleManager, consentono alle app di impostare una lingua diversa da quella di sistema in fase di runtime.

    Queste API si sincronizzano automaticamente con le impostazioni di sistema; pertanto, le app che utilizzano queste API per creare selettori di lingua in-app personalizzati garantiranno agli utenti un'esperienza coerente indipendentemente da dove selezionano le preferenze di lingua. Le API pubbliche consentono inoltre di ridurre la quantità di codice boilerplate, supportano APK divisi e Backup automatico per le app per archiviare le impostazioni della lingua utente a livello di app.

    Per la compatibilità con le versioni precedenti di Android, in AndroidX sono disponibili API equivalenti. Ti consigliamo di utilizzare le API aggiunte in Appcompat 1.6.0-beta01 o versioni successive.

Le app che non supportano più lingue non sono interessate da queste modifiche.

Supporto migliorato per testo e lingua

Android 13 include diversi miglioramenti di testo e lingua che ti consentono di offrire un'esperienza più raffinata, descritti nelle sezioni seguenti:

Sillabazione più veloce

La sottolineatura semplifica la lettura del testo a capo e contribuisce a rendere l'interfaccia utente più adattiva. A partire da Android 13, le prestazioni della sillabazione sono ottimizzate fino al 200%, quindi puoi abilitarle nel tuo TextView senza quasi alcun impatto sulle prestazioni di rendering. Per consentire una sillabazione più rapida, utilizza le frequenze fullFast o normalFast in setHyphenationFrequency().

API Text Conversion

Le persone che parlano lingue come il giapponese e il cinese utilizzano metodi di immissione delle lettere fonetiche, che spesso rallentano la ricerca e funzionalità come il completamento automatico. In Android 13, le app possono chiamare la nuova API Text Conversion in modo che gli utenti possano trovare ciò che cercano in modo più facile e veloce. In precedenza, ad esempio, un utente giapponese doveva eseguire questa procedura per la ricerca:

  1. Inserire Hiragana come pronuncia fonetica del termine di ricerca (ad esempio un luogo o il nome di un'app)
  2. Usa la tastiera per convertire i caratteri Hiragana in Kanji
  3. Effettua ricerche usando i caratteri Kanji
  4. Infine, ottieni i risultati di ricerca

Con la nuova API Text Conversion, gli utenti giapponesi possono digitare l'Hiragana e visualizzare immediatamente i risultati di ricerca in kanji, saltando i passaggi 2 e 3.

Miglioramento dell'altezza delle righe per gli script non latini

Android 13 migliora la visualizzazione delle scritture non latine (come tamil, birmano, telugu e tibetano) grazie a un'altezza di riga adattata a ogni lingua. Le nuove altezze delle righe impediscono il ritaglio e migliorano il posizionamento dei caratteri. La tua app può sfruttare questi miglioramenti semplicemente scegliendo come target Android 13. Assicurati di testare le app quando usi la nuova interlinea, perché le modifiche potrebbero influire sulla tua UI nelle lingue non latine.

Altezze delle righe che erano state ritagliate in Android 12 (sopra) e ora sono posizionate meglio e non vengono ritagliate in Android 13 (in basso).

Testo a capo in giapponese migliorato

A partire da Android 13, gli oggetti TextView possono eseguire il wrapping di testo in base a Bunsetsu (la più piccola unità di parole naturali) o a frasi, anziché per carattere, per applicazioni giapponesi più chiare e ordinate. Puoi sfruttare questo wrapping utilizzando android:lineBreakWordStyle="phrase" con TextView.

Testo a capo in giapponese con stile a frase attivato (sotto) e senza (sopra).

Aggiornamenti della libreria Unicode

Android 13 aggiunge gli ultimi miglioramenti, correzioni e modifiche incluse in Unicode ICU 70, Unicode CLDR 40 e Unicode 14.0.

Ecco un paio di modifiche importanti:

  • L'inglese (Canada) en‑CA e l'inglese (Repubblica delle Filippine) en‑PH utilizzano entrambi risorse di traduzione in inglese (Stati Uniti) en quando non sono disponibili risorse di traduzione, al posto dell'inglese (Regno Unito) en‑GB.
  • La categoria plurale many è stata introdotta per lo spagnolo es, l'italiano it, il portoghese pt e il portoghese (Portogallo) pt‑PT. In modo simile a quanto introdotto in francese nella CLDR v38, questo viene utilizzato per i numeri elevati.

Colorare i caratteri vettoriali

Emoji vettoriale COLRv1 (sinistra) ed emoji bitmap (destra)

A partire da Android 13, il sistema include il supporto del rendering per i caratteri COLR versione 1 (COLRv1) e aggiorna le emoji di sistema al formato COLRv1. COLRv1 è un formato di caratteri molto compatto che viene visualizzato in modo rapido e nitido in qualsiasi dimensione.

Per la maggior parte delle app, il sistema gestisce tutto e COLRv1 funziona correttamente. Tuttavia, se l'app implementa il proprio rendering del testo e utilizza i caratteri del sistema, ti consigliamo di testare il rendering delle emoji.

Per saperne di più su COLRv1, consulta le seguenti risorse:

API di posizionamento Impostazioni rapide

Le Impostazioni rapide nell'area notifiche consentono agli utenti di modificare facilmente le impostazioni o eseguire azioni rapide senza uscire dal contesto di un'app. Per le app che offrono riquadri personalizzati, stiamo semplificando la scoperta dei tuoi riquadri e la relativa aggiunta alle Impostazioni rapide. Grazie a una nuova API Tile Position, l'app ora può chiedere all'utente di aggiungere direttamente il tuo riquadro personalizzato al set di riquadri attivi delle Impostazioni rapide. Una nuova finestra di dialogo di sistema consente all'utente di aggiungere il riquadro in un solo passaggio, senza uscire dall'app, anziché dover accedere alle Impostazioni rapide per aggiungerlo.

Una finestra di dialogo che chiede all&#39;utente se vuole aggiungere un riquadro alle Impostazioni rapide.

Anteprima appunti

A partire da Android 13, il sistema mostra una conferma visiva standard quando vengono aggiunti contenuti agli appunti. La nuova conferma comporta quanto segue:

  • Conferma che i contenuti sono stati copiati correttamente.
  • Fornisce un'anteprima dei contenuti copiati.

Questa funzionalità standardizza le varie notifiche mostrate dalle app dopo la copia e offre agli utenti un maggiore controllo sugli appunti. Per ulteriori informazioni, visita la pagina delle funzionalità Copia e incolla.

Widget Copia/Incolla
Nuova UI mostrata quando i contenuti vengono inseriti negli appunti.

Gesto Indietro predittivo

Android 13 introduce un gesto Indietro predittivo per i dispositivi Android come smartphone, schermi di grandi dimensioni e pieghevoli. Il supporto di questa funzione richiede l'aggiornamento dell'app.

Per visualizzare la documentazione dettagliata, vedi Aggiornare l'app per supportare un gesto arretrato predittivo. Puoi anche provare il nostro codelab.

Bluetooth LE audio

Low Energy (LE) Audio è un sistema audio wireless pensato per sostituire Bluetooth Classic e consentire determinati casi d'uso e topologie di connessione. Consente agli utenti di condividere e trasmettere l'audio ad amici e familiari o di abbonarsi a trasmissioni pubbliche per ottenere informazioni, intrattenimento o accessibilità. È progettata per garantire che gli utenti possano ricevere audio ad alta fedeltà senza compromettere la durata della batteria e può passare senza problemi tra diversi casi d'uso che non sono possibili con Bluetooth Classic. A partire da Android 13, il sistema include il supporto integrato per LE audio, quindi gli sviluppatori ricevono queste funzionalità senza costi sui dispositivi compatibili.

MIDI 2.0

A partire da Android 13, il sistema include il supporto per lo standard MIDI 2.0, inclusa la possibilità di connettere l'hardware MIDI 2.0 tramite USB. Questo standard offre funzionalità come una maggiore risoluzione per i controller, un migliore supporto per l'intonazione non occidentale e prestazioni più espressive utilizzando controller per nota.

Miglioramenti dell'efficienza della schermata iniziale

Android 13 migliora l'efficienza delle schermate iniziali animate nell'API Splash Screen:

  • Il sistema deduce la durata dell'animazione direttamente dall'AnimatedVectorDrawable. Prima di Android 13, era necessario impostare direttamente windowSplashScreenAnimationDuration.

  • Utilizza il nuovo attributo windowSplashScreenBehavior per avere un maggiore controllo sulla visualizzazione o meno dell'icona nella schermata iniziale in Android 13 e versioni successive dell'app.

Per la documentazione dettagliata, vedi Schermate iniziali.

Ottimizzazioni ART

In Android 13 (livello API 33) e versioni successive, ART velocizza il passaggio da e verso codice nativo, con chiamate JNI ora fino a 2,5 volte più veloci. È stata inoltre rielaborata l'elaborazione dei riferimenti di runtime per renderla per lo più non bloccante, riducendo ulteriormente i jank. Inoltre, puoi utilizzare l'API pubblica di Reference.refersTo() per rivendicare prima gli oggetti non raggiungibili e noterai che l'interprete è ora più veloce grazie all'ottimizzazione delle ricerche di classi e metodi. ART esegue inoltre una maggiore verifica byte-code al momento dell'installazione, evitando di dover pagare la verifica in fase di runtime e garantendo tempi di avvio rapidi dell'app.

Privacy e sicurezza

Esportazione più sicura dei ricevitori registrati in contesto

Per contribuire a rendere più sicuri i ricevitori di runtime, Android 13 introduce la possibilità per la tua app di specificare se un Broadcast receiver registrato deve essere esportato e visibile ad altre app sul dispositivo. Nelle versioni precedenti di Android, qualsiasi app sul dispositivo poteva inviare una trasmissione non protetta a un ricevitore registrato dinamicamente, a meno che tale ricevente non fosse sorvegliata da un'autorizzazione di firma.

Questa configurazione per l'esportazione è disponibile per le app che eseguono almeno una delle seguenti operazioni:

Selettore di foto

Android 13 (livello API 33) e versioni successive includono un'esperienza di selettore di foto. Quando la tua app avvia il selettore di foto, gli utenti selezionano immagini e video specifici da condividere con l'app, ad esempio le immagini del profilo, invece di concedere all'app l'accesso per visualizzare l'intera raccolta multimediale. Questo è il metodo consigliato per accedere a foto e video dell'utente.

Il selettore di foto offre maggiore privacy agli utenti, perché la tua app non deve dichiarare alcuna autorizzazione di runtime. Inoltre, il selettore di foto offre una UI standardizzata integrata per le app, che crea un'esperienza utente più coerente.

Nuova autorizzazione di runtime per i dispositivi Wi-Fi nelle vicinanze

Android 13 (livello API 33) introduce una nuova autorizzazione di runtime nel gruppo di autorizzazioni NEARBY_DEVICES per le app che gestiscono le connessioni di un dispositivo ai punti di accesso nelle vicinanze tramite Wi-Fi. Queste app devono dichiarare la nuova autorizzazione, NEARBY_WIFI_DEVICES, quando chiamano diverse API Wi-Fi. Inoltre, se le app non derivano la posizione fisica dalle API Wi-Fi, non è necessario dichiarare l'autorizzazione ACCESS_FINE_LOCATION quando hanno come target Android 13 o versioni successive.

Scopri di più sull'autorizzazione per i dispositivi Wi-Fi nelle vicinanze.

Nuova autorizzazione per l'uso di sveglie esatte

Se la tua app ha come target Android 13 o versioni successive, puoi utilizzare l'autorizzazione USE_EXACT_ALARM, che viene concessa automaticamente all'app. Affinché l'app possa utilizzare questa autorizzazione, deve soddisfare almeno uno dei seguenti criteri:

  • La tua app è un'app sveglia o un timer.
  • La tua app è un'app di calendario che mostra le notifiche per i prossimi eventi.

Se la tua app imposta sveglie esatte, ma non soddisfa nessuno dei casi mostrati nell'elenco precedente, continua a dichiarare l'autorizzazione SCHEDULE_EXACT_ALARM e preparati per la situazione in cui l'utente nega l'accesso alla tua app.

Autorizzazioni di cui è possibile eseguire il downgrade

A partire da Android 13, la tua app può revocare l'accesso alle autorizzazioni di runtime inutilizzate. Questa API consente alla tua app di eseguire attività di miglioramento della privacy come le seguenti:

  • Rimuovi le autorizzazioni inutilizzate.
  • Rispetta le best practice sulle autorizzazioni per rafforzare la fiducia degli utenti. Ti consigliamo di mostrare agli utenti una finestra di dialogo in cui vengono mostrate le autorizzazioni che hai revocato in modo proattivo.

Schema di firma APK v3.1

Android 13 aggiunge il supporto per lo schema di firma dell'APK v3.1, che migliora l'attuale schema di firma dell'APK v3. Questo schema risolve alcuni dei problemi noti relativi alla rotazione relativi allo schema di firma dell'APK v3. In particolare, lo schema della firma v3.1 supporta il targeting per versione dell'SDK, che consente la rotazione per avere come target una release successiva della piattaforma.

Lo schema di firma v3.1 utilizza un ID di blocco non riconosciuto sul 12L o su una versione precedente. Pertanto, la piattaforma applica il seguente comportamento dei firmatari:

  • I dispositivi con Android 13 o versioni successive utilizzano il firmatario ruotato nel blocco v3.1.
  • I dispositivi che eseguono versioni precedenti di Android ignorano il firmatario ruotato e utilizzano il firmatario originale nel blocco v3.0.

Per le app che non hanno ancora ruotato la chiave di firma non sono necessarie ulteriori azioni. Ogni volta che queste app scelgono di ruotare, il sistema applica lo schema della firma v3.1 per impostazione predefinita.

Le app che sono già state ruotate e vogliono continuare a utilizzare la propria chiave di firma ruotata nel blocco di firma v3.0 devono aggiornare la chiamata a apksigner:

apksigner sign --ks keystore.jks |
  --key key.pk8 --cert cert.x509.pem
  --rotation-min-sdk-version API_LEVEL
  [signer_options] app-name.apk

...dove API_LEVEL è 32 o inferiore.

Migliore segnalazione degli errori in Keystore e KeyMint

Per le app che generano chiavi, Keystore e KeyMint ora forniscono indicatori di errore più dettagliati e accurati. Abbiamo aggiunto una gerarchia delle classi di eccezioni in java.security.ProviderException, con eccezioni specifiche per Android che includono i codici di errore Keystore/KeyMint e se l'errore può essere riprovato. Puoi anche modificare i metodi per la generazione e l'utilizzo delle chiavi (firma, crittografia) e generare nuove eccezioni. Il miglioramento dei report degli errori non si limita alla generazione delle chiavi e ora dovrebbe fornirti ciò che ti serve per ritentare la generazione delle chiavi.

Supporto per tablet e schermi grandi

Android 13 si basa sulle ottimizzazioni per tablet introdotte in Android 12 e sul rilascio di funzionalità 12L, tra cui ottimizzazioni per l'UI di sistema, miglioramento del multitasking e modalità di compatibilità migliorate. Come parte del test, assicurati che le app abbiano un aspetto ottimale su tablet e altri dispositivi con schermi di grandi dimensioni.

Per ulteriori informazioni sulle novità e su cosa testare, consulta la pagina di supporto di tablet e schermi di grandi dimensioni.

Grafica

Shader programmabili

Uno shaker animato AGSL, adattato da questo shader GLSL.

A partire da Android 13, il sistema include il supporto per gli oggetti RuntimeShader programmabili, con comportamento definito tramite Android Graphics Shading Language (AGSL). AGSL condivide gran parte della sua sintassi con GLSL, ma funziona all'interno del motore di rendering Android per personalizzare la pittura all'interno del canvas di Android e filtrare i contenuti di View. Android utilizza internamente questi Shader per implementare effetti a onde, sfocature ed allargamento dell'overscroll. Android 13 e versioni successive ti consentono di creare effetti avanzati simili per la tua app.

Miglioramenti della coreografia

Android 13 introduce metodi API pubblici per Choreographer e ASurfaceControl che forniscono alle app ulteriori informazioni sulle possibili tempistiche dei frame e aggiungono più contesto a SurfaceFlinger per il ciclo di vita dei frame. Come in precedenza, le app possono pubblicare un callback per Choreographer e ricevere informazioni sulla sequenza temporale dei frame. In Android 13 (livello API 33), Choreographer restituisce più orari di presentazione possibili e le scadenze corrispondenti per i frame. Le app possono scegliere l'ora di presentazione e inviare una notifica a SurfaceFlinger a scelta. Quindi, SurfaceFlinger non tenta di applicare transazioni o di bloccare i buffer prima del momento di presentazione desiderato.

Se la tua app utilizza i nuovi metodi Choreographer e SurfaceControl, puoi visualizzare il ciclo di vita del frame dell'app in una traccia Perfetto.

Fotocamera

Acquisizione video HDR

A partire da Android 13, le API Camera2 supportano l'acquisizione video High Dynamic Range (HDR), che consente di visualizzare in anteprima e registrare i contenuti video HDR utilizzando la fotocamera. Rispetto all'SDR (Standard Dynamic Range), l'HDR offre una gamma più ampia di colori e aumenta la gamma dinamica della componente di luminanza (dagli attuali 100 cd/m2 a 1000 s di cd/m2). In questo modo la qualità video è più simile alla vita reale, con colori più intensi, alte luci più luminose e ombre più scure.

Per ulteriori informazioni sull'acquisizione video HDR, consulta la documentazione Acquisizione video HDR.

Contenuti multimediali

Audio spaziale

L'audio spaziale è un'esperienza audio immersiva che rende i contenuti multimediali più realistici per i tuoi utenti. Consulta la nostra documentazione sull'audio spaziale per informazioni dettagliate su come eseguire l'integrazione con questa funzionalità.

Routing audio anticipato

Per aiutare le app multimediali a identificare come verrà indirizzato il loro audio, Android 13 introduce le API Audio Route nella classe AudioManager. L'API getAudioDevicesForAttributes() ti consente di recuperare un elenco di dispositivi che possono essere utilizzati per riprodurre l'audio specificato e l'API getDirectProfilesForAttributes() ti aiuta a capire se lo stream audio può essere riprodotto direttamente. Usa queste API per individuare il AudioFormat migliore da usare per la tua traccia audio.

Accessibilità

Descrizione audio

Android 13 (livello API 33) introduce una nuova preferenza di accessibilità a livello di sistema che consente agli utenti di attivare le descrizioni audio in tutte le app. Una descrizione audio è una traccia narrativa aggiuntiva composta da un narratore che parla nella presentazione, descrivendo cosa succede sullo schermo durante le pause naturali nell'audio. Le app possono seguire la preferenza dell'utente per le tracce della descrizione audio eseguendo una query con isAudioDescriptionRequested(), come mostrato nel seguente snippet di codice:

Kotlin


private lateinit var accessibilityManager: AccessibilityManager

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager::class.java)

// Where your media player is initialized
if (accessibilityManager.isAudioDescriptionRequested) {
    // User has requested to enable audio descriptions
}

Java


private AccessibilityManager accessibilityManager;

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager.class);

// Where your media player is initialized
if(accessibilityManager.isAudioDescriptionRequested()) {
    // User has requested to enable audio descriptions
}

Le app possono monitorare la modifica delle preferenze dell'utente aggiungendo un listener a AccessbilityManager:

Kotlin

private val listener =
    AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled ->
        // Preference changed; reflect its state in your media player
    }

override fun onStart() {
    super.onStart()

    accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener)
}

override fun onStop() {
    super.onStop()

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener)
}

Java

private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> {
    // Preference changed; reflect its state in your media player
};

@Override
protected void onStart() {
    super.onStart();

    accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener);
}

@Override
protected void onStop() {
    super.onStop();

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener);
}

Funzionalità di base

Aggiornamenti di OpenJDK 11

Android 13 avvia il lavoro di aggiornamento delle librerie principali di Android per allinearsi alla release OpenJDK 11 LTS con aggiornamenti della libreria e supporto del linguaggio Java 11 per gli sviluppatori di applicazioni e piattaforme. Le modifiche principali alla libreria introdotte in Android 13 saranno disponibili anche per i dispositivi Android 12 tramite un aggiornamento di sistema Google Play al modulo ART Mainline.

Android 13 include le seguenti modifiche alle librerie principali:

  • Supporto per la parola chiave var per variabili locali e come parametri lambda.
  • Nuovi metodi nella classe String:

    • isBlank()
    • lines()
    • repeat()
    • strip()
    • stripLeading()
    • stripTrailing()
  • Supporto per Collection.toArray(IntFunction) per facilitare l'adattamento di una raccolta a un array.

  • Supporto per ifPresentOrElse(), isEmpty(), orElseThrow() e stream() in java.util corsi Optional, OptionalDouble, OptionalInt e OptionalLong.

  • Supporto esteso per SocketOptions, incluso il riutilizzo dei socket.

  • Funzionalità NullReader, NullWriter, InputStream, OutputStream e transferTo() Reader che trasferiscono i caratteri letti a un Writer.

  • Funzionalità aggiunta per la codifica e decodifica degli URL mediante Charsets.

  • Funzionalità di Charset per FileReader, FileWriter, PrintStream e PrintWriter.

  • Nuove funzioni transferTo(), readNBytes(), readAllBytes() e writeBytes() per ByteArrayInput o OutputStream e Input o OutputStream.

  • Supporto di runtime e compilatore per java.lang.invoke.VarHandle.

  • Aggiorna java.util.concurrent all'API OpenJDK 11 utilizzando VarHandle internamente.

Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.