Ti diamo il benvenuto in Now in Android, la tua guida continua alle novità e agli aspetti più importanti del mondo dello sviluppo Android.
Continua a leggere per scoprire di più su Android 16 QPR2 beta 1, il feature drop di Android Studio Narwhal, Jetpack Compose 1.9, Media 3 1.8, Shape Morphing e Compilazione automatica in Compose e molto altro.
Puoi guardare un riepilogo video:
Abbiamo anche un podcast.
Tuttavia, questo post contiene le informazioni più approfondite, quindi continua a leggere.
Android 16 QPR2 Beta 1 è ora disponibile ✨
È ora disponibile la prima versione beta di Android 16 QPR2, la prima release di Android con una versione SDK secondaria di Android. Le versioni SDK minori possono includere nuove API che estendono le funzionalità della piattaforma, ma non possono introdurre modifiche al comportamento con controllo di accesso targetSdkVersion, riducendo al minimo la necessità di testare le app con queste versioni.
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 di QPR2 Beta 1.
UI, esperienza di sistema e accessibilità:
- Un'opzione di tema scuro esteso inverte in modo intelligente le app chiare per gli utenti che preferiscono un aspetto scuro.
- Le icone delle app a tema automatico possono essere generate dal sistema se la tua app non fornisce un livello monocromatico.
- Le sessioni di selezione interattive mantengono attiva l'interfaccia utente dell'app mentre il foglio di condivisione è aperto, utilizzando
ChooserManagereChooserSession. - Una nuova API Data Transfer consente una migrazione dei dati più affidabile e sicura tra Android e iOS, richiedendo aggiornamenti all'XML delle regole di estrazione dei dati della tua app e all'implementazione di
BackupAgent. - Il pacchetto
android.graphics.pdfè stato ampliato per supportare l'annotazione e la modifica di documenti PDF tramitePdfRenderer.Page. - I valori di
ViewConfigurationsono ora personalizzati per i singoli dispositivi virtuali; esegui la migrazione aViewConfiguration.get(context)per gli scenari con più display. - Puoi ottenere un controllo più granulare del feedback aptico specificando
VibrationAttributesconView.performHapticFeedback(HapticFeedbackRequest). - Ora i riquadri 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à dell'HDR utilizzando un cursore della luminosità HDR/SDR
- Gli extra del selettore di foto possono mettere in evidenza album o query di ricerca specifici.
Connettività:
- I miglioramenti apportati a Gestione dispositivi associati (CDM) ti consentono di fornire icone dei dispositivi personalizzate, 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 di accoppiamento (BluetoothDevice.EXTRA_BOND_LOSS_REASON) e il recupero diretto degli UUID dei servizi (BluetoothDevice.EXTRA_UUID_LE). - Gli aggiornamenti di Wi-Fi RTT Ranging (
RttStationRangingParams) supportano il rilevamento della distanza dalle stazioni. - È disponibile un nuovo
PhoneNumberManagerper l'analisi e la convalida dei numeri di telefono dalle intestazioni IMS P-Associated-URI. - I miglioramenti della 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
- Un nuovo stato di sicurezza a livello di sistema, Blocca dispositivo in modo sicuro, blocca i dispositivi e richiede l'autenticazione principale per lo sblocco.
- Viene aggiunto un pulsante di attivazione/disattivazione rivolto agli utenti per la protezione dai furti dello smartphone per attivare/disattivare il "Blocco per autenticazione fallita".
Produttività degli sviluppatori:
- Le nuove API
AppWidgetManagerti consentono di eseguire query sulle metriche sul coinvolgimento dei widget. - Le app abilitate al debug installate tramite ADB ora riceveranno avvisi tempestivi sulla compatibilità con le dimensioni delle pagine di 16 kB.
ProfilingManageraggiunge il supporto per i nuovi trigger di profilazione avviati dal sistema erequestRunningSystemTraceper acquisire le tracce in background.- Un pulsante di attivazione/disattivazione "Registrazione di stampa dettagliata" in Opzioni sviluppatore fornisce informazioni di debug aggiuntive per il framework di stampa Android.
- Sono stati abilitati test più efficaci per le esperienze desktop e multi-display con le nuove API
UiAutomationper gli screenshot su display non predefiniti eAccessibilityWindowInfo.refreshpubblici. - È stato aggiunto il supporto API per la nuova libreria
androidx.core:core-backported-fixes. - Le app GUI sono ora supportate nel terminale Linux
WindowInspector.addGlobalWindowViewsListenersupporta le notifiche di modifica della visualizzazione principale in tempo reale.
Puoi registrare qualsiasi Pixel supportato per ricevere gli 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.
Android Studio Narwhal Feature Drop è stabile: inizia a utilizzare la modalità Agente 🐳
Il rilascio di funzionalità Android Studio Narwhal è ora stabile. Le nuove funzionalità e i miglioramenti includono:
- Gemini in Android Studio: Agent Mode è disponibile per le attività di programmazione multifase
- Le regole della libreria dei prompt personalizzano l'output AI di Gemini in base alle esigenze del tuo progetto.
- Trasforma la UI con Gemini utilizza la UI in linguaggio naturale per eseguire l'iterazione sulla UI di Compose.
- Supporto per lo sviluppo immersivo con l'emulatore Android XR incorporato, un nuovo modello XR e Layout Inspector incorporato per XR
- Accesso ai dispositivi ampliato tramite Android Partner Device Labs in Android Device Streaming.
- Migliori anteprime di Compose con una navigazione del codice migliorata e il nuovo selettore di anteprima di Compose
- Compilatore Kotlin K2 abilitato per impostazione predefinita per prestazioni di build più rapide
- Strumenti per le dimensioni delle pagine di 16 kB con avvisi di 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
Android Device Streaming, basato su Firebase, ha introdotto il supporto stabile per Android Partner Device Labs, consentendoti di connetterti da remoto ai dispositivi Android fisici ospitati dai partner OEM, tra cui Samsung, Xiaomi, OPPO, OnePlus e vivo.
Accelerating development with monthly releases for Android Studio — releasing 2X more often than before
Android Studio sta passando a una cadenza di rilascio stabile mensile per velocizzare l'introduzione di nuove funzionalità e correzioni di bug critici. Mentre l'IDE di Android Studio verrà aggiornato mensilmente, le nuove versioni della piattaforma IntelliJ verranno introdotte ogni pochi mesi, con i rilasci di funzionalità che colmeranno le release stabili intermedie. L'emulatore Android e il plug-in Android per Gradle continueranno ad aggiornarsi 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 agosto 2025 di Jetpack Compose (versione 1.9) è ora stabile. Questa release introduce Modifier.dropShadow e Modifier.innerShadow per il rendering degli effetti box-shadow. I nuovi modificatori onVisibilityChanged e onFirstVisible ti consentono di monitorare la visibilità degli elementi per gli aggiornamenti della UI o il logging delle impressioni. Puoi applicare uno stile avanzato all'interno di OutputTransformation utilizzando TextFieldBuffer.addStyle per le trasformazioni del testo.
I componenti di base di LazyLayout sono ora stabili e puoi definire un LazyLayoutCacheWindow per migliorare le prestazioni di Lazy List e Grid con il precaricamento 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 le visualizzazioni. Un'API di attivazione (Composer.setDiagnosticStackTraceEnabled) fornisce dettagli più completi sulla posizione degli arresti anomali 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 successiva 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 ottiene una modalità di scrubbing per le ricerche frequenti guidate dall'utente, che puoi attivare tramite ExoPlayer.setScrubbingModeEnabled. HlsInterstitialsAdsLoader ora supporta i live streaming per l'inserimento di annunci guidato dal server.
MetadataRetriever è stata aggiornata per consentirti di recuperare le durate degli elementi multimediali senza riproduzione. Per Transformer, la release introduce operazioni di ritaglio più rapide utilizzando gli elenchi di modifica MP4 con experimentalSetMp4EditListTrimEnabled e ottimizzazioni dell'encoder specifiche per il chipset tramite CodecDbLite, attivate chiamando setEnableCodecDbLite su DefaultEncoderFactory.Builder.
Ulteriori aggiornamenti includono il supporto del download parziale in Downloader con PreCacheHelper, il routing automatico dell'audio XR 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 del playback. Una nuova app demo di Composition, creata con Kotlin e Compose, mostra l'editing video avanzato con più asset.
Articoli 📚
#WeArePlay: ti presentiamo le persone che programmano un mondo più sostenibile
L'iniziativa #WeArePlay mette in evidenza app per Android e giochi che affrontano le sfide ambientali. Il gioco BoRa — Iguaçu National Park, sviluppato da Mayla, Flávia, Andréia e Ariane, offre esperienze interattive accessibili e basate sulla gamification per l'educazione alla natura 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 formazione ambientale e mette in contatto gli utenti con stage e progetti per sviluppare competenze per la green economy.
Che cos'è l'HDR? 🌟
La tecnologia High Dynamic Range (HDR) consente agli sviluppatori Android di aumentare la luminosità di picco oltre lo Standard Dynamic Range (SDR), offrendo una maggiore fedeltà visiva. Android supporta l'HDR per video e immagini, incluse tecnologie come UltraHDR per la compatibilità con le versioni precedenti.
La comprensione del colore coinvolge tre componenti:
- Profondità di bit: definisce la precisione della rappresentazione dei colori, con una profondità maggiore che offre transizioni più fluide.
- Funzione di trasferimento: mappa i valori numerici dei pixel alla luminanza o al colore visualizzati, adattandoli alla risposta visiva umana non lineare. Alcuni esempi sono sRGB, HLG e PQ.
- Gamma cromatica: rappresenta la gamma di colori che un dispositivo può riprodurre.
Falsi preconcetti sull'HDR:
- Colori vivaci: gamme di colori più ampie come Display P3 e Adobe RGB erano disponibili prima dell'HDR e la maggior parte dei display si limita ancora a P3, anche con contenuti BT.2020.
- Più contrasto/migliore dettaglio dei neri: l'HDR non offre intrinsecamente neri più scuri rispetto all'SDR sullo stesso display. I display OLED offrono un contrasto infinito per entrambi. Sebbene il PQ assegni più bit alle regioni scure, non è una funzionalità HDR universale.
- Profondità di bit più elevata: sebbene alcuni profili video HDR (ad es. HDR10) utilizzino stream a 10 o 12 bit, questa è una caratteristica specifica di questi profili e non è intrinseca all'HDR stesso; profondità di bit più elevate sono comuni anche in altri formati dell'immagine.
HDR indica principalmente una luminosità di picco più elevata. Questo "headroom HDR" è definito come una regione mobile rispetto a 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 gainmap 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 metamorfosi delle forme | Suggerimenti per Jetpack Compose
Jetpack Compose ora consente transizioni avanzate degli elementi condivisi, morphing delle forme sofisticato e animazioni di rivelazione. Gli sviluppatori possono configurare SharedTransitionLayout al livello più alto 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, l'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 i gesti Indietro predittivi.
Gemini multimodale in Android Studio: sviluppo dell'UI basato sull'AI
Gemini AI in Android Studio assiste lo sviluppo della UI generando codice dai progetti (inclusa la conversione da immagine a codice), creando anteprime di Compose con dati sintetici e perfezionando la UI esistente tramite comandi diretti.
Utilizza un SDK runtime-enabled
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 sensibili al runtime (RA) fungono da intermediari all'interno della tua app.
- Carica gli SDK RE utilizzando
SdkSandboxManagerCompat, rispettando i vincoli (ad es. in primo piano, caricamento singolo). - Gli strumenti shim semplificano la comunicazione tra processi di basso livello.
- Esegui il rendering della UI dagli SDK RE utilizzando
SandboxedSdkVieweSandboxedUiAdapter. - Avvia le attività da SDK Runtime utilizzando
SdkActivityLauncher.
WearOS Material 3 shape morphing | Jetpack Compose Tips
Wear OS Material 3 per Compose ora semplifica il morphing delle forme. Gli sviluppatori possono aggiungere facilmente modifiche alle forme animate ai 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 ridimensionati e trasformati utilizzando TransformationSpec man mano che si avvicinano ai bordi dello schermo.
Release di AndroidX 🚀
Ecco un riepilogo delle modifiche di AndroidX, con priorità a quelle più pertinenti per gli sviluppatori di app per Android:
Modifica complessiva che influisce sulle librerie Compose:
minSdkpredefinito elevato 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 lasciano la gerarchia di composizione senza essere serializzati. Ha una durata inferiore rispetto ai valori salvati e si comporta in modo simile a unViewModel, fornendo un nuovo modo per gestire lo stato dei componibili che potrebbero entrare e uscire dalla composizione. - Transizioni degli elementi condivisi migliorate (Compose Animation e UI): 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 del pager migliorato (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 inoltre conservati più a lungo per uno scorrimento più fluido.
- Gestione dello stato attivo perfezionata per mouse/touchpad (Compose Foundation e UI):
ComposeViewsora cancella automaticamente lo stato attivo quando si verifica un evento di pressione del puntatore (da mouse o touchpad) al di fuori del nodo attivo. Questa opzione può essere disattivata. - 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 vista" nei contenitori scorrevoli. - LifecycleOwner Composable (Lifecycle): Un nuovo componibile consente di creare istanze con ambito
LifecycleOwnerdirettamente all'interno dell'albero dell'interfaccia utente. Questo è particolarmente utile per gestire i cicli di vita dei componenti in modo indipendente e per librerie come Navigation. - Supporto per i 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à Tight consente di applicare altezze di riga inferiori, anche se ciò significa potenzialmente tagliare i glifi più alti, offrendo un controllo più preciso del layout del testo. - Tocca due volte per selezionare una parola (Compose Foundation): è stato aggiunto il supporto per il doppio tocco per selezionare le parole in
SelectionContainereBasicTextField. - Modifiche al comportamento di WindowInsets (Compose UI e Foundation):
◦ Una nuova APIWindowInsets.cutoutPathper ottenere il percorso del ritaglio display.
◦ Il flagisWindowInsetsDefaultPassThroughEnabledè stato rimosso, impostandoWindowInsetsin modo che non venga utilizzato per impostazione predefinita, consentendo alle visualizzazioni secondarie di riceverlo. AndroidViewrequestRectangleOnScreenCorrezione (Compose Foundation): le richieste effettuate da AndroidView (ad es.EditTextche tenta di rimanere sullo schermo) ora vengono propagate correttamente a Compose.- Scorrimento con rotellina del mouse 2D migliorato (Compose Foundation e UI): supporto migliorato per gli eventi di scorrimento con 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 esempio problemi a livello di piattaforma come bug specifici della fotocamera) a un dispositivo. In questo modo, è possibile offrire esperienze utente diverse a seconda che un bug noto sia stato risolto o meno.
Altre modifiche degne di nota:
- Attività e input di gioco: è stato aggiunto il supporto predefinito per le dimensioni delle pagine di 16 kB e il supporto del mouse per
GameActivity. - Posizionamento dei tooltip di Material3: più provider di posizione per i tooltip, che consentono il posizionamento sopra, sotto, a sinistra o a destra dell'ancoraggio.
- Material3
DatePickerCorrezioni: garantisce che DatePicker rispetti le proprie impostazioni internazionali per la formattazione dei numeri e risolve i problemi di visualizzazione RTL. - Supporto di display_override per le TWA (browser): è stato aggiunto il supporto della proprietà del manifest delle TWA
display_override, che offre un maggiore controllo sulla visualizzazione delle TWA. - Avvia l'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 altro episodio.
Compilazione automatica in Compose
Jetpack Compose 1.8 introduce funzionalità di compilazione automatica notevolmente migliorate, sfruttando il sistema di semantica di Compose. Ora gli sviluppatori possono integrare facilmente la compilazione automatica a livello di sistema semplicemente aggiungendo tag ai campi di testo con la semantica del tipo di contenuti pertinente (ad es. nome utente, password), eliminando la necessità di gestire manualmente l'albero della compilazione automatica e migliorando le prestazioni.
E ora… 👋
Per questa edizione è tutto, con la copertura di Android 16 QPR2 beta 1, il rilascio di funzionalità di Android Studio Narwhal, Jetpack Compose 1.9, Media 3 1.8, Shape Morphing e Compilazione automatica in Compose e molto altro.
Torna a trovarci presto per il prossimo aggiornamento dall'universo degli sviluppatori Android.
-
CommunityOltre 900 partecipanti si sono uniti ai nostri spazi per gli eventi per un keynote sulle nostre prospettive per il futuro, sessioni demo, decine di workshop, un hackathon e discussioni della community incentrate su idee e feedback sulla piattaforma Android.
Florina Muntenescu • Tempo di lettura: 1 min -
CommunityParliamo 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 contenuti dannosi.
Matthew Forsythe • Tempo di lettura: 2 min -
CommunityAd aprile abbiamo rilasciato le competenze Android ufficiali. Questo blog post illustra i feedback che abbiamo ricevuto e spiega la filosofia e la metodologia alla base del progetto.
Jose Alcérreca • Tempo di lettura: 4 min
Ricevi gli ultimi approfondimenti sullo sviluppo Android direttamente nella tua casella di posta ogni settimana.