Ti diamo il benvenuto in Now in Android, la tua guida continua alle novità e alle notizie più importanti del mondo dello sviluppo Android.
Continua a leggere per scoprire di più su Android 16 QPR2 beta 1, Android Studio Narwhal feature drop, Jetpack Compose 1.9, Media 3 1.8, Shape Morphing e Autofill in Compose e molto altro ancora.
Puoi guardare un riepilogo del video:
Abbiamo anche un podcast.
Questo post contiene le informazioni più dettagliate, quindi continua a leggere.
Android 16 QPR2 Beta 1 è ora disponibile ✨
La prima beta di Android 16 QPR2 è ora disponibile. Si tratta della prima release di Android con una versione secondaria dell'SDK Android. Le versioni secondarie dell'SDK possono includere nuove API che estendono le funzionalità della piattaforma, ma non possono introdurre modifiche al comportamento controllato targetSdkVersion, riducendo al minimo la quantità di test da eseguire sulle app.
Puoi chiamare nuove API controllando SDK_INT_FULL rispetto all'enumerazione VERSION_CODES_FULL:
if (Build.VERSION.SDK_INT_FULL >= Build.VERSION_CODES_FULL.BAKLAVA_1) { // Call new APIs from the Android 16 QPR2 release }
VERSION_CODES_FULL non può essere utilizzato negli attributi manifest uses-sdk.
Ecco alcuni aggiornamenti chiave della beta 1 di QPR2.
UI, esperienza di sistema e accessibilità:
- Un'opzione del tema scuro esteso inverte in modo intelligente le app chiare per gli utenti che preferiscono un aspetto scuro.
- Le icone delle app con temi automatici possono essere generate dal sistema se l'app non fornisce un livello monocromatico.
- Le sessioni di selezione interattiva mantengono attiva l'interfaccia utente dell'app mentre la scheda di condivisione è aperta, utilizzando
ChooserManagereChooserSession. - Una nuova API Data Transfer consente una migrazione dei dati più affidabile e sicura tra Android e iOS, richiedendo aggiornamenti al file XML delle regole di estrazione dei dati dell'app e all'implementazione di
BackupAgent. - Il pacchetto
android.graphics.pdfè stato ampliato per supportare l'annotazione e la modifica dei documenti PDF tramitePdfRenderer.Page. - I valori di
ViewConfigurationora sono personalizzati per i singoli dispositivi virtuali; esegui la migrazione aViewConfiguration.get(context)per scenari multi-display. - Ottieni un controllo più granulare del feedback aptico specificando
VibrationAttributesconView.performHapticFeedback(HapticFeedbackRequest) - Ora i riquadri delle Impostazioni rapide possono essere assegnati a categorie predefinite nel file
AndroidManifest.xml.
Audio e contenuti multimediali:
- Decodifica software per Immersive Audio Model and Formats (IAMF), un formato audio spaziale aperto.
- La condivisione audio personale per i dispositivi Bluetooth LE Audio è integrata direttamente nel selettore di output del sistema.
- Gli utenti possono controllare la luminosità HDR utilizzando un cursore di luminosità HDR/SDR
- Gli extra del selettore di foto possono evidenziare album o query di ricerca specifici.
Connettività:
- I miglioramenti della gestione dei dispositivi complementari (CDM) ti consentono di fornire icone personalizzate per i dispositivi, ascoltare il callback
EVENT_ASSOCIATION_REMOVEDe attivare la verifica tra app utilizzando DeviceId. - Gli aggiornamenti Bluetooth includono il supporto della scansione passiva per
BluetoothLeScanner(ScanSettings.SCAN_TYPE_PASSIVE), i motivi della perdita dell'associazione (BluetoothDevice.EXTRA_BOND_LOSS_REASON) e il recupero diretto degli UUID del servizio (BluetoothDevice.EXTRA_UUID_LE). - Gli aggiornamenti del ranging RTT Wi-Fi (
RttStationRangingParams) supportano il ranging rispetto alle stazioni. - È disponibile un nuovo
PhoneNumberManagerper l'analisi e la convalida dei numeri di telefono dagli header P-Associated-URI IMS. - I miglioramenti alla privacy della rete MediaRouter consentono la trasmissione su nuovi mezzi come Bluetooth e UWB. Devi utilizzare il selettore di output di sistema o richiedere le autorizzazioni
NEARBY_DEVICESper i selettori in-app personalizzati.
Privacy e sicurezza:
- Una nuova funzionalità di sicurezza a livello di sistema, Blocca dispositivo sicuro, blocca i dispositivi e richiede l'autenticazione principale per lo sblocco.
- Viene aggiunto un pulsante di attivazione/disattivazione visibile all'utente per la protezione dai furti di smartphone, che consente di attivare/disattivare il "Blocco per autenticazione fallita".
Produttività degli sviluppatori:
- Le nuove API
AppWidgetManagerti consentono di eseguire query sulle metriche di coinvolgimento dei widget. - Le app di cui è possibile eseguire il debug installate tramite ADB ora riceveranno avvisi tempestivi per la compatibilità con le dimensioni delle pagine di 16 kB.
ProfilingManageraggiunge il supporto per nuovi trigger di profilazione avviati dal sistema erequestRunningSystemTraceper acquisire le tracce in background.- Un pulsante di attivazione/disattivazione "Registrazione di stampa dettagliata" nelle Opzioni sviluppatore fornisce ulteriori informazioni di debug per Android Print Framework.
- Sono stati attivati test più solidi per le esperienze desktop e multi-display con le nuove API
UiAutomationper gli screenshot sui display non predefiniti eAccessibilityWindowInfo.refreshpubblici. - È stato aggiunto il supporto API per la nuova libreria
androidx.core:core-backported-fixes. - Ora le app GUI sono supportate nel terminale Linux
WindowInspector.addGlobalWindowViewsListenersupporta le notifiche di modifica della visualizzazione principale in tempo reale.
Puoi registrare qualsiasi dispositivo Pixel supportato per ricevere aggiornamenti beta over-the-air o utilizzare immagini di sistema a 64 bit con l'emulatore Android in Android Studio. La stabilità della piattaforma è prevista per ottobre 2025.
Il rilascio di funzionalità di Android Studio Narwhal è stabile: inizia a utilizzare la modalità Agente 🐳
Il rilascio di funzionalità di Android Studio Narwhal è ora stabile. Le nuove funzionalità e i miglioramenti includono:
- Gemini in Android Studio: modalità Agent è disponibile per le attività di programmazione in più fasi
- Le regole della raccolta di prompt personalizzano l'output dell'AI di Gemini in base alle esigenze del tuo progetto.
- Trasforma l'UI con Gemini utilizza l'UI in linguaggio naturale per iterare sull'UI Compose.
- Supporto per lo sviluppo immersivo con l'emulatore Android XR incorporato, un nuovo modello XR e Layout Inspector incorporato per XR
- Accesso esteso ai dispositivi tramite Android Partner Device Labs in Android Device Streaming.
- Anteprime di composizione migliorate con navigazione del codice migliorata e nuovo selettore di anteprime di composizione
- Compilatore Kotlin K2 attivato per impostazione predefinita per prestazioni di compilazione più rapide
- Strumenti per le dimensioni delle pagine di 16 kB con avvisi lint, analisi e un emulatore per aiutarti a prepararti per i prossimi dispositivi con dimensioni delle pagine di 16 kB.
Streaming di dispositivi Android, basato su Firebase
Lo streaming di dispositivi Android, basato su Firebase, ha introdotto il supporto stabile per i laboratori di dispositivi partner Android, consentendoti di connetterti in remoto a dispositivi Android fisici ospitati da partner OEM, tra cui Samsung, Xiaomi, OPPO, OnePlus e vivo.
Accelerare lo sviluppo con release mensili per Android Studio, con una frequenza doppia rispetto a prima
Android Studio sta passando a una cadenza di rilascio stabile mensile per velocizzare l'introduzione di nuove funzionalità e correzioni di bug critici. L'IDE Android Studio verrà aggiornato mensilmente, mentre le nuove versioni della piattaforma IntelliJ verranno introdotte ogni pochi mesi, con i rilasci di funzionalità che riempiranno le versioni stabili intermedie. L'emulatore Android e il plug-in Android per Gradle continueranno a essere aggiornati separatamente ogni due mesi. Questo programma delle pubblicazioni accelerato è supportato da investimenti a lungo termine nell'infrastruttura di test.
Novità della release di agosto 2025 di Jetpack Compose 🚀
La release di Jetpack Compose di agosto 2025 (versione 1.9) è ora stabile. Questa release introduce Modifier.dropShadow e Modifier.innerShadow per il rendering degli effetti di ombra. I nuovi modificatori onVisibilityChanged e onFirstVisible ti consentono di monitorare la visibilità degli elementi per gli aggiornamenti dell'interfaccia utente o la registrazione delle impressioni. Puoi applicare uno stile avanzato all'interno di OutputTransformation utilizzando TextFieldBuffer.addStyle per le trasformazioni del testo.
I blocchi di base LazyLayout sono ora stabili e puoi definire un LazyLayoutCacheWindow per migliorare le prestazioni di Lazy List e Griglia con il prefetching avanzato. Scrollable2D consente lo scorrimento bidimensionale, inclusi lo scorrimento rapido e lo scorrimento nidificato, con vari miglioramenti per l'interoperabilità dello scorrimento e dello scorrimento nidificato con Views. Un'API di attivazione (Composer.setDiagnosticStackTraceEnabled) fornisce dettagli più ricchi sulla posizione dell'arresto anomalo nelle analisi dello stack, consigliata solo per le build di debug. Le nuove annotazioni @RememberInComposition e @FrequentlyChangingValue, insieme ai controlli Lint associati, sono disponibili in una nuova libreria di annotazioni di runtime. I menu contestuali possono essere personalizzati utilizzando Modifier.appendTextContextMenuComponents e Modifier.filterTextContextMenuComponents. Ora è richiesta la versione 8.8.2 o successive del plug-in Android per Gradle (AGP) / Lint.
Media3 1.8.0 - Novità 🚀
Media3 1.8.0 è ora disponibile e introduce diverse nuove funzionalità e miglioramenti. ExoPlayer acquisisce una modalità di scorrimento per le ricerche frequenti e guidate dall'utente, che puoi attivare tramite ExoPlayer.setScrubbingModeEnabled. HlsInterstitialsAdsLoader ora supporta i live streaming per l'inserimento di annunci guidato dal server.
MetadataRetriever è stato aggiornato per consentirti di recuperare le durate degli elementi multimediali senza riproduzione. Per Transformer, la release introduce operazioni di taglio più rapide utilizzando elenchi di modifica MP4 con experimentalSetMp4EditListTrimEnabled e ottimizzazioni del codificatore specifiche per il chipset tramite CodecDbLite, abilitate chiamando setEnableCodecDbLite su DefaultEncoderFactory.Builder.
Altri aggiornamenti includono il supporto del download parziale in Downloader con PreCacheHelper, il routing audio XR automatico in ExoPlayer e interazioni MediaCodec più efficienti. Il modulo MediaSession ora mantiene le notifiche visibili più a lungo per impostazione predefinita e l'app demo della sessione multimediale mostra la funzionalità di ripresa della riproduzione. Una nuova app demo di composizione, creata con Kotlin e Compose, mostra l'editing video avanzato di più asset.
Articoli 📚
#WeArePlay: ti presentiamo le persone che programmano un mondo più sostenibile
L'iniziativa #WeArePlay mette in evidenza app e giochi per Android che affrontano le sfide ambientali. Il gioco BoRa – Iguaçu National Park, sviluppato da Mayla, Flávia, Andréia e Ariane, offre esperienze interattive gamificate e accessibili per l'educazione naturalistica durante le visite al parco. L'app di Louis e Justin, CyberTracker, consente ai tracker indigeni analfabeti di registrare i dati sulla biodiversità tramite un'interfaccia basata su icone, supportando gli sforzi di conservazione. Infine, Earth5R, co-fondata da Bharati e Saurabh, offre istruzione ambientale e mette in contatto gli utenti con stage e progetti per sviluppare competenze per l'economia verde.
Che cos'è l'HDR? 🌟
High Dynamic Range (HDR) consente una maggiore luminosità di picco rispetto allo standard SDR (Standard Dynamic Range) per gli sviluppatori Android, offrendo una fedeltà visiva migliorata. Android supporta l'HDR per video e immagini, incluse tecnologie come UltraHDR per la compatibilità con le versioni precedenti.
Comprendere il colore comporta tre componenti:
- Profondità di bit: definisce la precisione della rappresentazione del colore. Una profondità maggiore offre transizioni più fluide.
- Funzione di trasferimento:mappa i valori numerici dei pixel sulla luminanza o sul colore visualizzati, tenendo conto della risposta visiva non lineare dell'occhio umano. Alcuni esempi sono sRGB, HLG e PQ.
- Gamma di colori:rappresenta la gamma di colori che un dispositivo può riprodurre.
Falsi preconcetti comuni sull'HDR:
- Colori vivaci: le gamme di colori più ampie come Display P3 e Adobe RGB erano disponibili prima dell'HDR e la maggior parte dei display continua a ritagliare su P3, anche con contenuti BT.2020.
- Maggiore contrasto/migliore dettaglio del nero: l'HDR non offre neri più scuri rispetto all'SDR sullo stesso display. I display OLED offrono un contrasto infinito per entrambi. Sebbene PQ allochi più bit alle regioni scure, non è una funzionalità HDR universale.
- Profondità di bit più elevata:mentre alcuni profili video HDR (ad es. HDR10) utilizzano stream a 10 o 12 bit, questo è specifico di questi profili e non inerente all'HDR stesso; profondità di bit più elevate sono comuni anche in altri formati di imaging.
L'HDR indica principalmente una luminosità di picco più elevata. Questo "spazio libero HDR" è definito come una regione mobile rispetto all'SDR. Mentre i video HDR tradizionali spesso codificano un headroom fisso, i display moderni utilizzano un headroom dinamico, il che può portare a differenze di qualità. Tecnologie come Ultra HDR e le mappe di guadagno offrono alternative con un utilizzo efficiente dei bit. Il toolkit UI di Android utilizza l'API extendedRangeBrightness per offrire esperienze HDR, anche con RGBA_8888.
Video 📹
Elementi condivisi avanzati con morphing della forma | Suggerimenti per Jetpack Compose
Jetpack Compose ora consente transizioni avanzate tra elementi condivisi, morphing delle forme sofisticato e animazioni di visualizzazione. Gli sviluppatori possono configurare SharedTransitionLayout al livello superiore dell'app e utilizzare Modifier.sharedBounds per collegare gli elementi.
Il morphing di forme è una nuova funzionalità chiave, ottenuta sfruttando la libreria di forme grafiche AndroidX di Material 3. Ciò comporta la creazione di un oggetto Morph con forme di inizio/fine definite, la gestione del suo avanzamento con animateFloat (da AnimatedVisibilityScope) e l'applicazione come clip tramite un OverlayClip personalizzato. Gli effetti di rivelazione utilizzano skipToLookaheadSize e skipToLookaheadPosition. Tutte queste animazioni avanzate sono compatibili anche con le gesture di navigazione predittiva.
Gemini in Android Studio multimodale: sviluppo di UI basato sull'AI
L'AI Gemini in Android Studio assiste lo sviluppo dell'interfaccia utente generando codice dai progetti (inclusa la conversione da immagine a codice), creando anteprime di Compose con dati sintetici e perfezionando l'interfaccia utente esistente tramite comandi diretti.
Utilizzare un SDK abilitato per il runtime
Android 14 introduce SDK Runtime, una nuova tecnologia che isola gli SDK di terze parti in una sandbox di processo sicura e separata per migliorare la privacy e la sicurezza.
Per gli sviluppatori:
- Gli SDK runtime-enabled (RE) vengono eseguiti in questo processo separato.
- Gli SDK runtime-aware (RA) fungono da intermediari all'interno dell'app.
- Carica gli SDK RE utilizzando
SdkSandboxManagerCompat, rispettando i vincoli (ad es. primo piano, caricamento singolo). - Gli strumenti di shim semplificano la comunicazione interprocesso di basso livello.
- Esegui il rendering dell'interfaccia utente dagli SDK RE utilizzando
SandboxedSdkVieweSandboxedUiAdapter. - Avvia le attività da SDK Runtime utilizzando
SdkActivityLauncher.
Morphing di forme Material 3 di WearOS | Suggerimenti per Jetpack Compose
Wear OS Material 3 per Compose ora semplifica il morphing delle forme. Gli sviluppatori possono aggiungere facilmente modifiche animate alle forme dei pulsanti rotondi con IconButtonDefaults.animatedShapes, creare gruppi di pulsanti che animano le modifiche alla larghezza utilizzando il componente ButtonGroup e Modifier.animateWidth() e creare elenchi a scorrimento verticale (TransformingLazyColumn) in cui gli elementi vengono scalati e trasformati utilizzando TransformationSpec man mano che si avvicinano ai bordi dello schermo.
Rilasci di AndroidX 🚀
Ecco un riepilogo delle modifiche di AndroidX, con la priorità per quelle più pertinenti per gli sviluppatori di app per Android:
Modifica complessiva che influisce sulle librerie Compose:
- Predefinito
minSdkAggiornato all'API 23: perandroidx.composeanimation,foundation,material,runtimeeui, la versione minima predefinita dell'SDK è stata spostata dall'API 21 all'API 23. Ciò significa che se utilizzi le ultime versioni alpha di queste librerie Compose, la tua app richiederà implicitamente Android 6.0 (Marshmallow) o versioni successive.
Modifiche principali per gli sviluppatori di Compose:
- Nuova API retain (Compose Runtime): introduce un'API retain simile a
rememberSaveable, ma per i valori che escono dalla gerarchia di composizione senza essere serializzati. Ha una durata inferiore rispetto ai valori salvati e si comporta in modo simile aViewModel, fornendo un nuovo modo per gestire lo stato dei composable che potrebbero entrare e uscire dalla composizione. - Transizioni avanzate degli elementi condivisi (animazione e UI di Compose): nuove API per attivare/disattivare dinamicamente gli elementi condivisi, tenere conto delle transizioni in corso e impostare limiti di destinazione alternativi quando un elemento condiviso viene eliminato. È disponibile anche un nuovo
Modifier.skipToLookaheadPositionper i layout di ancoraggio. - Prefetching migliorato del pager (Compose Foundation): la strategia di prefetching del pager ora utilizza una “finestra della cache” (1 dimensione dell'area visibile) anziché un singolo elemento e il prefetching iniziale è attivato per impostazione predefinita. Gli elementi vengono conservati più a lungo per uno scorrimento più fluido.
- Gestione della messa a fuoco perfezionata per mouse/touchpad (Compose Foundation e UI):
ComposeViewsora cancella automaticamente la messa a fuoco quando si verifica un evento di pressione del puntatore (da mouse o touchpad) al di fuori del nodo attivo. Puoi disattivare questa opzione. - Rettangoli di messa a fuoco personalizzabili (Compose Foundation):
FocusPropertiesora ti consente di definire un'area di messa a fuoco personalizzata anziché utilizzare il riquadro di delimitazione predefinito, migliorando l'attraversamento della messa a fuoco e la logica "Mantieni in visualizzazione" nei contenitori scorrevoli. - Composable LifecycleOwner (Lifecycle): un nuovo composable consente di creare istanze
LifecycleOwnercon ambito direttamente all'interno dell'albero dell'interfaccia utente. Ciò è particolarmente utile per gestire i cicli di vita dei componenti in modo indipendente e per librerie come Navigation. - Supporto dei tipi Nullable in
SavedStateHandle(LifecycleeSavedState): salvataggio e ripristino semplificati delle proprietà Nullable con supporto nativo inSavedStateHandleeSavedStateRegistryOwner. - Novità
LineHeightStyle.Mode.Tight(Compose Foundation e UI): una nuova modalità Compatta consente di applicare altezze della riga più piccole, anche se ciò significa potenzialmente tagliare i glifi più alti, offrendo un controllo più preciso del layout del testo. - Tocca due volte per selezionare la parola (Compose Foundation): è stato aggiunto il supporto per il tocco doppio per selezionare le parole in
SelectionContainereBasicTextField. - Modifiche al comportamento di WindowInsets (UI e Foundation di Compose):
◦ Una nuova APIWindowInsets.cutoutPathper ottenere il percorso del ritaglio display.
◦ Il flagisWindowInsetsDefaultPassThroughEnabledè stato rimosso, impostandoWindowInsetssu not consume per impostazione predefinita, consentendo alle View secondarie di riceverli. AndroidViewrequestRectangleOnScreenCorrezione (Compose Foundation): le richieste effettuate da AndroidViews (ad es.EditTextche tenta di rimanere sullo schermo) ora vengono propagate correttamente a Compose.- Scorrimento migliorato della rotellina del mouse 2D (Compose Foundation e UI): migliore supporto per gli eventi di scorrimento della rotellina del mouse 2D, con nuove API di test e un flag per controllare il comportamento.
Nuove librerie e utilità:
androidx.core:core-backported-fixes(Nuova libreria): questa nuova libreria consente agli sviluppatori di verificare se sono state applicate correzioni di bug critici (ad es. problemi a livello di piattaforma come bug specifici della fotocamera) a un dispositivo. Ciò consente di offrire esperienze utente diverse a seconda che un bug noto sia stato risolto o meno.
Altre modifiche degne di nota:
- Attività e input di giochi:è stato aggiunto il supporto predefinito per le dimensioni delle pagine di 16 kB e il supporto del mouse per
GameActivity. - Posizionamento della descrizione comando Material3:più fornitori di posizione per le descrizioni comando, che consentono il posizionamento sopra, sotto, a sinistra o a destra dell'ancoraggio.
- Material3
DatePickerCorrezioni: assicura che DatePicker rispetti le proprie impostazioni internazionali per la formattazione dei numeri e risolve i problemi di visualizzazione RTL. - Supporto di display_override TWA (browser): è stato aggiunto il supporto della proprietà del manifest TWA
display_override, che offre un maggiore controllo sulla visualizzazione delle TWA. - Avvia URL iniziale nell'app esterna (browser): è stato aggiunto un intent per consentire l'avvio dell'URL iniziale di una TWA in un browser esterno.
Android Developers Backstage
Android Developers Backstage è tornato con un nuovo episodio.
Compilazione automatica in Compose
Jetpack Compose 1.8 introduce funzionalità di compilazione automatica notevolmente migliorate, sfruttando il sistema semantico di Compose. Gli sviluppatori ora possono integrare facilmente il riempimento automatico a livello di sistema semplicemente taggando i campi di testo con la semantica del tipo di contenuto pertinente (ad es. nome utente, password), eliminando la necessità di gestire manualmente l'albero del riempimento automatico e migliorando il rendimento.
Bene… 👋
È tutto per questa edizione, con la copertura della beta 1 di Android 16 QPR2, del rilascio di funzionalità di Android Studio Narwhal, di Jetpack Compose 1.9, di Media3 1.8, di Shape Morphing e di Autofill in Compose e molto altro ancora.
Ricontrolla a breve per il prossimo aggiornamento dell'universo degli sviluppatori Android.
Continua a leggere
-
Community
Parliamo di sicurezza: risposte alle domande più frequenti sulla verifica degli sviluppatori Android
Android ha recentemente annunciato la verifica dello sviluppatore, un ulteriore livello di sicurezza che scoraggia i malintenzionati e rende più difficile la diffusione di danni.
Matthew Forsythe • Lettura di 2 minuti
-
Community
L'attesa è finita. Siamo felici di presentare la classe 2026 di Google Play Apps Accelerator.
Robbie McLachlan • Lettura di 1 minuto
-
Community
Nel nostro ultimo film #WeArePlay, incontriamo Adriano, Wagner e Grazyelle. Il trio ha creato Matraquinha, un'app che aiuta migliaia di bambini non verbali in più di 80 paesi a comunicare.
Robbie McLachlan • Lettura di 2 minuti
Segui gli aggiornamenti
Ricevi ogni settimana gli ultimi approfondimenti sullo sviluppo per Android direttamente nella tua casella di posta.