Oggi rilasceremo la prima versione beta di Android 17, continuando il nostro lavoro per creare una piattaforma che dia la priorità a privacy, sicurezza e prestazioni ottimizzate. Questa build continua il nostro lavoro per app Android più adattabili, introduce miglioramenti significativi alle funzionalità di fotocamera e contenuti multimediali, nuovi strumenti per l'ottimizzazione della connettività e profili espansi per i dispositivi complementari. Questa release evidenzia anche un cambiamento fondamentale nel modo in cui portiamo le nuove release alla community di sviluppatori, dal modello tradizionale di Anteprima per gli sviluppatori al programma Android Canary
Oltre l'anteprima per gli sviluppatori
Android ha sostituito la tradizionale "Anteprima per gli sviluppatori" con un canale Canary continuo. Questo nuovo modello "sempre attivo" offre tre vantaggi principali:
- Accesso più rapido: le funzionalità e le API vengono inserite in Canary non appena superano i test interni, anziché attendere una release trimestrale.
- Maggiore stabilità: i primi "test di battaglia" in Canary si traducono in un'esperienza beta più raffinata con nuove API e modifiche del comportamento che si avvicinano alla versione finale.
- Test più semplici: Canary supporta gli aggiornamenti OTA (non è più necessario il flashing manuale) e, in quanto canale di aggiornamento separato, si integra più facilmente con i flussi di lavoro CI e ti offre la finestra più breve per fornire feedback immediati sulle potenziali modifiche future.
La pianificazione di Android 17
Passeremo rapidamente da questa versione beta al traguardo della stabilità della piattaforma, previsto per marzo. In questa fase, forniremo le API SDK/NDK finali e i comportamenti relativi alle app in gran parte finali. Da quel momento avrai diversi mesi prima della release finale per completare i test.
Un anno di release
Prevediamo che Android 17 continui a ricevere aggiornamenti in una serie di release trimestrali. La prossima release nel secondo trimestre è l'unica in cui introdurremo modifiche del comportamento che interrompono le app pianificate. Prevediamo di avere una release SDK secondaria nel quarto trimestre con API e funzionalità aggiuntive.
Limitazioni di orientamento e ridimensionamento
Con la release della versione beta di Android 17, passiamo alla fase successiva della nostra roadmap adattiva: Android 17 (livello API 37) rimuove la disattivazione per sviluppatori per le limitazioni di orientamento e ridimensionamento sui dispositivi con schermi di grandi dimensioni (sw > 600 dp).
Quando la tua app ha come target l'SDK 37, deve essere pronta ad adattarsi. Gli utenti si aspettano che le loro app funzionino ovunque, sia in multitasking su un tablet, sia quando aprono un dispositivo o utilizzano un ambiente di finestre desktop, e si aspettano che l'UI riempia lo spazio e rispetti la posizione del dispositivo.
Modifiche principali per l'SDK 37
Le app che hanno come target Android 17 devono garantire la compatibilità con l'eliminazione graduale degli attributi del file manifest e delle API di runtime introdotte in Android 16. Quando vengono eseguite su uno schermo di grandi dimensioni (dimensione più piccola ≥ 600 dp), i seguenti attributi e API verranno ignorati:
| Attributi/API del file manifest | Valori ignorati |
| screenOrientation | portrait, reversePortrait, sensorPortrait, userPortrait, landscape, reverseLandscape, sensorLandscape, userLandscape |
| setRequestedOrientation() | portrait, reversePortrait, sensorPortrait, userPortrait, landscape, reverseLandscape, sensorLandscape, userLandscape |
| resizeableActivity | all |
| minAspectRatio | all |
| maxAspectRatio | all |
Esenzioni e controllo utente
Queste modifiche sono specifiche per gli schermi di grandi dimensioni; non si applicano agli schermi più piccoli di sw600dp (inclusi gli smartphone tradizionali). Inoltre, le app classificate come giochi (in base al flag android:appCategory) sono esenti da queste limitazioni.
È anche importante notare che gli utenti mantengono il controllo. Possono attivare/disattivare esplicitamente l'utilizzo del comportamento predefinito di un'app tramite le impostazioni delle proporzioni del sistema.
Aggiornamenti alle modifiche della configurazione
Per migliorare la compatibilità delle app e ridurre al minimo la riproduzione video interrotta, l'input eliminato e altri tipi di perdita di stato che causano interruzioni, stiamo aggiornando il comportamento predefinito per la ricreazione delle attività. A partire da Android 17, il sistema non riavvierà più le attività per impostazione predefinita per modifiche di configurazione specifiche che in genere non richiedono una ricreazione dell'UI, tra cui CONFIG_KEYBOARD, CONFIG_KEYBOARD_HIDDEN, CONFIG_NAVIGATION, CONFIG_UI_MODE (quando viene modificato solo UI_MODE_TYPE_DESK ), CONFIG_TOUCHSCREEN e CONFIG_COLOR_MODE. Le attività in esecuzione riceveranno semplicemente questi aggiornamenti tramite onConfigurationChanged.Se la tua applicazione si basa su un riavvio completo per ricaricare le risorse per queste modifiche, ora devi attivare esplicitamente l'utilizzo del nuovo android:recreateOnConfigChanges attributo del file manifest, che ti consente di specificare quali modifiche di configurazione devono attivare un ciclo di vita completo dell'attività (da stop a eliminare e creazione di nuovo), insieme alle costanti correlate mcc, mnc, e le nuove keyboard, keyboardHidden, navigation, touchscreen e colorMode.
Preparare l'app
Abbiamo rilasciato strumenti e documentazione per semplificare la procedura. Il nostro post del blog dedicato contiene ulteriori indicazioni, con strategie per risolvere i problemi comuni. Le app dovranno supportare i layout orizzontali e verticali per le dimensioni delle finestre nell'intera gamma di proporzioni, poiché la limitazione dell'orientamento o delle proporzioni non sarà più un'opzione. Ti consigliamo di testare l'app utilizzando la versione beta 1 di Android 17 con gli emulatori Pixel Tablet o Pixel Fold (configurati su targetSdkPreview = "CinnamonBun") o utilizzando il framework di compatibilità delle app per abilitare UNIVERSAL_RESIZABLE_BY_DEFAULT sui dispositivi Android 16.
Prestazioni
MessageQueue senza blocco
In Android 17, le app che hanno come target l'SDK 37 o versioni successive riceveranno una nuova implementazione di android.os.MessageQueue in cui l'implementazione è senza blocco. La nuova implementazione migliora le prestazioni e riduce i frame persi, ma potrebbe interrompere i client che riflettono sui MessageQueue campi e sui metodi privati.
Garbage collection generazionale
Android 17 introduce la garbage collection generazionale nel raccoglitore Concurrent Mark-Compact di ART. Questa ottimizzazione introduce raccolte di generazione giovane più frequenti e meno intensive di risorse insieme a raccolte di heap complete, con l'obiettivo di ridurre il costo della CPU e la durata complessiva della garbage collection. I miglioramenti di ART sono disponibili anche per oltre un miliardo di dispositivi con Android 12 (livello API 31) e versioni successive tramite gli aggiornamenti del sistema Google Play.
I campi static final ora sono veramente finali
A partire da Android 17, le app che hanno come target Android 17 o versioni successive non potranno modificare i campi "static final", consentendo al runtime di applicare in modo più aggressivo le ottimizzazioni delle prestazioni. Un tentativo di farlo tramite reflection (e reflection approfondita) genererà sempre un'eccezione IllegalAccessException. La modifica tramite la famiglia di metodi SetStatic<Type>Field di JNI causerà immediatamente l'arresto anomalo dell'applicazione.
Limitazioni della visualizzazione delle notifiche personalizzate
Per ridurre l'utilizzo della memoria, stiamo limitando le dimensioni delle visualizzazioni delle notifiche personalizzate. Questo aggiornamento chiude una scappatoia che consente alle app di ignorare i limiti esistenti utilizzando gli URI. Questo comportamento è controllato dalla versione dell'SDK di destinazione e viene applicato alle app che hanno come target l'API 37 e versioni successive.
Nuovi trigger di ProfilingManager per il debug delle prestazioni
Abbiamo introdotto diversi nuovi trigger di sistema in ProfilingManager per aiutarti a raccogliere dati approfonditi per il debug dei problemi di prestazioni. Questi trigger sono TRIGGER_TYPE_COLD_START, TRIGGER_TYPE_OOM, e TRIGGER_TYPE_KILL_EXCESSIVE_CPU_USAGE.
Per capire come configurare i nuovi trigger di sistema, consulta la documentazione relativa alla profilazione basata su trigger e al recupero e all'analisi dei dati di profilazione.
Contenuti multimediali e fotocamera
Android 17 offre strumenti di livello professionale per le app di contenuti multimediali e fotocamera, con funzionalità come transizioni fluide e volume standardizzato.
Aggiornamenti dinamici della sessione della fotocamera
Abbiamo introdotto updateOutputConfigurations() in CameraCaptureSession. In questo modo puoi collegare e scollegare dinamicamente le superfici di output senza dover riconfigurare l'intera sessione di acquisizione della fotocamera. Questa modifica consente transizioni fluide tra i casi d'uso e le modalità della fotocamera (ad esempio, scattare foto anziché registrare video) senza il costo della memoria e la complessità del codice di configurazione e mantenimento di tutte le superfici di output della fotocamera di cui l'app potrebbe aver bisogno durante l'avvio della fotocamera. In questo modo si eliminano i problemi o i blocchi visibili all'utente durante l'operazione.
fun updateCameraSession(session: CameraCaptureSession, newOutputConfigs: List<OutputConfiguration>)) {
// Dynamically update the session without closing and reopening
try {
// Update the output configurations
session.updateOutputConfigurations(newOutputConfigs)
} catch (e: CameraAccessException) {
// Handle error
}
}Metadati del dispositivo logico con più fotocamere
Quando lavori con fotocamere logiche che combinano più sensori di fotocamere fisiche, ora puoi richiedere metadati aggiuntivi da tutte le fotocamere fisiche attive coinvolte in un'acquisizione, non solo quella principale. In precedenza, dovevi implementare soluzioni alternative, a volte allocando stream fisici non necessari, per ottenere i metadati dalle fotocamere fisiche secondarie attive (ad es. durante un cambio di obiettivo per lo zoom in cui è attiva una fotocamera follower). Questa funzionalità introduce una nuova chiave, LOGICAL_MULTI_CAMERA_ADDITIONAL_RESULTS, in CaptureRequest e CaptureResult. Se imposti questa chiave su ON in CaptureRequest, TotalCaptureResult includerà i metadati di queste fotocamere fisiche attive aggiuntive. Puoi accedere a questi metadati completi utilizzando TotalCaptureResult.getPhysicalCameraTotalResults() per ottenere informazioni più dettagliate che potrebbero consentirti di ottimizzare l'utilizzo delle risorse nelle tue applicazioni per la fotocamera.
Supporto della codifica video versatile (VVC)
Android 17 aggiunge il supporto dello standard Versatile Video Coding (VVC). Ciò include la definizione del tipo MIME video/vvc in MediaFormat, l'aggiunta di nuovi profili VVC in MediaCodecInfo e l'integrazione del supporto in MediaExtractor. Questa funzionalità sarà disponibile sui dispositivi con supporto per la decodifica hardware e driver compatibili.
Qualità costante per la registrazione video
Abbiamo aggiunto setVideoEncodingQuality() a MediaRecorder. In questo modo puoi configurare una modalità di qualità costante (CQ) per i codificatori video, che ti offre un controllo più preciso della qualità video oltre alle semplici impostazioni del bitrate.
Protezione dell'audio in background
A partire da Android 17, il framework audio applicherà limitazioni alle interazioni audio in background, tra cui la riproduzione audio, le richieste di focus audio e le API di modifica del volume per garantire che queste modifiche vengano avviate intenzionalmente dall'utente.
Se l'app tenta di chiamare le API audio mentre l'applicazione non si trova in un ciclo di vita valido, le API di riproduzione audio e modifica del volume non andranno a buon fine senza che venga generata un'eccezione o venga fornito un messaggio di errore. L'API di focus audio non andrà a buon fine con il codice risultato AUDIOFOCUS_REQUEST_FAILED.
Privacy e sicurezza
Ritiro dell'attributo del traffico con testo in chiaro
L'attributo android:usesCleartextTraffic è ora deprecato. Se la tua app ha come target (Android 17) o versioni successive e si basa su usesCleartextTraffic="true" senza una configurazione della sicurezza di rete corrispondente, per impostazione predefinita non consentirà il traffico con testo in chiaro. Ti consigliamo di eseguire la migrazione ai file di configurazione della sicurezza di rete per un controllo granulare.
Crittografia ibrida HPKE
Stiamo introducendo un'interfaccia SPI (Service Provider Interface) pubblica per un'implementazione della crittografia ibrida HPKE, che consente una comunicazione sicura utilizzando una combinazione di crittografia a chiave pubblica e simmetrica (AEAD).
Connettività e telecomunicazioni
Cronologia chiamate VoIP migliorata
Stiamo introducendo la gestione delle preferenze utente per l'integrazione della cronologia chiamate VoIP delle app. È incluso il supporto per gli URI degli avatar di chiamanti e partecipanti nel dialer di sistema, che consente un controllo granulare da parte dell'utente sulla privacy del registro chiamate e arricchisce la visualizzazione visiva dei registri chiamate VoIP integrati.
Rilevamento della distanza e della prossimità Wi-Fi
Il rilevamento della distanza Wi-Fi è stato migliorato con nuove funzionalità di rilevamento della prossimità, che supportano il rilevamento continuo e il rilevamento sicuro peer-to-peer. Gli aggiornamenti al rilevamento della distanza Wi-Fi Aware includono nuove API per gli handle peer e la memorizzazione nella cache PMKID per il rilevamento sicuro 11az.
Produttività e strumenti per sviluppatori
Aggiornamenti per le app per dispositivi complementari
Abbiamo introdotto due nuovi profili in CompanionDeviceManager per migliorare la distinzione dei dispositivi e la gestione delle autorizzazioni:
- Dispositivi medici: questo profilo consente alle applicazioni mobile per dispositivi medici di richiedere tutte le autorizzazioni necessarie con un solo tocco, semplificando la procedura di configurazione.
- Tracker di attività fisica: il profilo DEVICE_PROFILE_FITNESS_TRACKER consente alle app complementari di indicare esplicitamente che gestiscono un tracker di attività fisica. In questo modo si garantiscono esperienze utente accurate con icone distinte riutilizzando le autorizzazioni dei ruoli degli smartwatch esistenti.
Inoltre, il CompanionDeviceManager ora offre una finestra di dialogo unificata per l'associazione dei dispositivi e le richieste di autorizzazione Dispositivi nelle vicinanze. Puoi utilizzare il nuovo metodo setExtraPermissions in AssociationRequest.Builder per raggruppare le richieste di autorizzazione Dispositivi nelle vicinanze nel flusso di associazione esistente, riducendo il numero di finestre di dialogo presentate all'utente.
Iniziare a utilizzare Android 17
Puoi registrare qualsiasi dispositivo Pixel supportato per ricevere questo e i futuri aggiornamenti di Android beta over-the-air. Se non hai un dispositivo Pixel, puoi utilizzare le immagini di sistema a 64 bit con l'emulatore Android in Android Studio.
Se attualmente partecipi al programma Android Beta, ti verrà offerto un aggiornamento over-the-air alla versione beta 1.
Se hai la versione beta 26Q1 di Android e vuoi utilizzare la release stabile finale di 26Q1 e uscire dalla versione beta, devi ignorare l'aggiornamento over-the-air alla versione beta 1 di 26Q2 e attendere la release di 26Q1.
Ci interessa il tuo feedback, quindi segnala i problemi e invia le richieste di funzionalità nella pagina di feedback. Prima riceviamo il tuo feedback, più possiamo includerlo nel nostro lavoro sulla release finale.
Per un'esperienza di sviluppo ottimale con Android 17, ti consigliamo di utilizzare l'ultima anteprima di Android Studio (Panda). Una volta configurato, ecco alcune delle cose che devi fare:
- Compila con il nuovo SDK, esegui i test negli ambienti CI e segnala eventuali problemi nel nostro tracker nella pagina di feedback.
- Testa la compatibilità dell'app attuale, scopri se la tua app è interessata dalle modifiche in Android 17, installa l'app su un dispositivo o un emulatore con Android 17 ed esegui test approfonditi.
Aggiorneremo regolarmente le immagini di sistema di anteprima/beta e l'SDK durante il ciclo di release di Android 17. Una volta installata una build beta, riceverai automaticamente i futuri aggiornamenti over-the-air per tutte le anteprime e le versioni beta successive.
Per informazioni complete, visita il sito per sviluppatori di Android 17.
Partecipa alla conversazione
Mentre ci avviciniamo alla stabilità della piattaforma e alla release stabile finale di Android 17 entro la fine dell'anno, il tuo feedback rimane la nostra risorsa più preziosa. Se sei un early adopter sul canale Canary o uno sviluppatore di app che esegue test sulla versione beta 1, ti consigliamo di unirti alle nostre community e inviare feedback. Siamo qui per ascoltarti.
Continua a leggere
-
Notizie sui prodotti
Oggi stiamo migliorando lo sviluppo Android con Gemma 4, il nostro modello open all'avanguardia più recente progettato con funzionalità di ragionamento complesso e chiamata di strumenti autonomi.
Matthew McCullough • 2 minuti di lettura
-
Notizie sui prodotti
Oggi Android 17 ha raggiunto ufficialmente la stabilità della piattaforma con la versione beta 3. Ciò significa che la superficie API è bloccata; puoi eseguire i test di compatibilità finali e pubblicare le app che hanno come target Android 17 sul Play Store.
Matthew McCullough • 5 minuti di lettura
-
Notizie sui prodotti
Vogliamo rendere più facile e veloce la creazione di app Android di alta qualità e, per aiutarti a essere più produttivo, mettiamo l'AI a portata di mano.
Matthew McCullough • 2 minuti di lettura
Segui gli aggiornamenti
Ricevi ogni settimana nella tua casella di posta le ultime informazioni sullo sviluppo Android