Notizie sui prodotti

La quarta beta di Android 17

4 minuti di lettura
Daniel Galpin
Developer Advocate

Android 17 ha raggiunto la beta 4, l'ultima beta pianificata di questo ciclo di release, una pietra miliare fondamentale per la compatibilità delle app e la stabilità della piattaforma. Che tu stia perfezionando l'esperienza utente della tua app, assicurandoti un rendering edge-to-edge senza problemi o sfruttando le API più recenti, la beta 4 fornisce l'ambiente quasi finale di cui hai bisogno per i test. 

Prepara le tue app, librerie, strumenti e motori di gioco

Se sviluppi un SDK Android, una libreria, uno strumento o un motore grafico, è fondamentale preparare subito gli aggiornamenti necessari per evitare che gli sviluppatori di app e giochi downstream vengano bloccati da problemi di compatibilità e consentire loro di utilizzare le funzionalità dell'SDK più recenti. Informa gli sviluppatori downstream se sono necessari aggiornamenti per supportare completamente Android 17.

Android17_Timeline_01_V02.png

I test prevedono l'installazione dell'app di produzione o di un'app di test che utilizza la tua libreria o il tuo motore tramite Google Play o altri mezzi su un dispositivo o un emulatore con Android 17 beta 4. Esamina tutti i flussi della tua app e cerca problemi funzionali o dell'interfaccia utente. Ogni release di Android contiene modifiche alla piattaforma che migliorano la privacy, la sicurezza e l'esperienza utente complessiva. Esamina le modifiche al comportamento che influiscono sulle app in esecuzione sucon target Android 17 per concentrare i test, tra cui:

  • Ridimensionamento su schermi di grandi dimensioni: una volta impostato come target Android 17, non puoi più disattivare il mantenimento dell'orientamento, del ridimensionamento e dei vincoli delle proporzioni su schermi di grandi dimensioni.
  • Caricamento dinamico del codice: se la tua app ha come target Android 17 o versioni successive, la protezione del caricamento dinamico del codice (DCL) più sicuro introdotta in Android 14 per i file DEX e JAR ora si estende alle librerie native. Tutti i file nativi caricati utilizzando System.load() devono essere contrassegnati come di sola lettura. In caso contrario, il sistema genera UnsatisfiedLinkError.
  • Attiva CT per impostazione predefinita: Certificate Transparency (CT) è attivo per impostazione predefinita. (Su Android 16, CT è disponibile, ma le app dovevano attivarlo.)
  • Protezioni della rete locale: alle app con target Android 17 o versioni successive viene bloccato l'accesso alla rete locale per impostazione predefinita. Se possibile, passa all'utilizzo di selettori che preservano la privacy e utilizza la nuova ACCESS_LOCAL_NETWORK autorizzazione per un accesso ampio e persistente.
  • Protezione dell'audio in background: a partire da Android 17, il framework audio applica limitazioni alle interazioni audio in background, tra cui la riproduzione audio, le richieste di focus audio e le API di modifica del volume. In base ai feedback ricevuti, abbiamo apportato alcune modifiche dalla beta 2, tra cui l'applicazione di FGS in uso e l'esenzione dell'audio di allarme. I dettagli completi sono disponibili nelle linee guida aggiornate.

Limiti di memoria delle app

Android sta introducendo limiti di memoria delle app in base alla RAM totale del dispositivo per creare un ambiente più stabile e deterministico per le tue applicazioni e gli utenti Android. In Android 17, i limiti sono impostati in modo conservativo per stabilire le baseline di sistema, prendendo di mira perdite di memoria estreme e altri valori anomali prima che causino instabilità a livello di sistema, con conseguenti stuttering dell'interfaccia utente, consumo eccessivo della batteria e chiusura delle app. Sebbene prevediamo un impatto minimo sulla stragrande maggioranza delle sessioni delle app, ti consigliamo di seguire le seguenti best practice per la memoria, inclusa la definizione di una baseline per la memoria.

Nell'implementazione attuale, getDescription in ApplicationExitInfo conterrà la stringa "MemoryLimiter" se la tua app è stata interessata. Puoi anche utilizzare la profilazione basata su trigger con TRIGGER_TYPE_ANOMALY per ottenere dump dell'heap raccolti quando viene raggiunto il limite di memoria.

unnamed (2).png
L'attività LeakCanary in Profiler di Android Studio

Per aiutarti a trovare le perdite di memoria, Android Studio Panda aggiunge l'integrazione di LeakCanary direttamente in Profiler di Android Studio come attività dedicata, contestualizzata all'interno dell'IDE e completamente integrata con il codice sorgente.

Un footprint di memoria più leggero si traduce direttamente in prestazioni più fluide, maggiore durata della batteria e un'esperienza premium su tutti i fattori di forma. Costruiamo insieme un futuro più veloce e affidabile per l'ecosistema Android.

Trigger di profilazione per le anomalie delle app

Android introduce un servizio di rilevamento delle anomalie on-device che monitora i comportamenti che richiedono molte risorse e le potenziali regressioni di compatibilità. Integrato con ProfilingManager, questo servizio consente alla tua app di ricevere artefatti di profilazione attivati da eventi specifici rilevati dal sistema.

Utilizza il trigger TRIGGER_TYPE_ANOMALY per rilevare problemi di prestazioni del sistema, come chiamate di binder eccessive e memoria utilizzata eccessiva. Quando un'app supera i limiti di memoria definiti dal sistema operativo, il trigger di anomalie consente agli sviluppatori di ricevere dump dell'heap specifici dell'app per identificare e risolvere i problemi di memoria. Inoltre, per lo spam eccessivo di binder, il trigger di anomalie fornisce un profilo di campionamento dello stack sulle transazioni di binder.

Questo callback API si verifica prima di qualsiasi applicazione imposta dal sistema. Ad esempio, può aiutare gli sviluppatori a raccogliere dati di debug prima che l'app venga terminata dal sistema a causa del superamento dei limiti di memoria. Per capire come utilizzare il trigger, consulta la nostra documentazione sulla profilazione basata su trigger.

    val profilingManager = applicationContext.getSystemService(ProfilingManager::class.java)
    val triggers = ArrayList<ProfilingTrigger>()  
    triggers.add(ProfilingTrigger.Builder(
                 ProfilingTrigger.TRIGGER_TYPE_ANOMALY))
    val mainExecutor: Executor = Executors.newSingleThreadExecutor()
    val resultCallback = Consumer<ProfilingResult> { profilingResult ->
        if (profilingResult.errorCode != ProfilingResult.ERROR_NONE) {
            // upload profile result to server for further analysis          
            setupProfileUploadWorker(profilingResult.resultFilePath)
        } 
    profilingManager.registerForAllProfilingResults(mainExecutor, resultCallback)
    profilingManager.addProfilingTriggers(triggers)
}

Crittografia post-quantistica (PQC) in Android Keystore

Android Keystore ha aggiunto il supporto per ML-DSA (Module-Lattice-Based Digital Signature Algorithm) standardizzato da NIST. Sui dispositivi supportati, puoi generare chiavi ML-DSA e utilizzarle per produrre firme quantum-safe, interamente nell'hardware sicuro del dispositivo. Android Keystore espone le varianti dell'algoritmo ML-DSA-65 e ML-DSA-87 tramite le API standard di Java Cryptographic Architecture: KeyPairGeneratorKeyFactorySignature. Per ulteriori dettagli, consulta la nostra documentazione per gli sviluppatori.

KeyPairGenerator generator = KeyPairGenerator.getInstance(
        ML-DSA-65, "AndroidKeyStore");
generator.initialize(
        new KeyGenParameterSpec.Builder(
                my-key-alias,
                KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY)
        .build());
KeyPair keyPair = generator.generateKeyPair();

Inizia 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 beta 4.

Continua a segnalare problemi e inviare richieste di funzionalità nella pagina dei 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 dei feedback.
  • Esegui il test di 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 beta successive.

Per informazioni complete, visita il sito per sviluppatori di Android 17.

Partecipa alla conversazione

Il tuo feedback rimane la nostra risorsa più preziosa. Che tu sia un early adopter sul canale Canary o uno sviluppatore di app che esegue test sulla beta 4, ti invitiamo a unirti alle nostre community e a inviare feedback. Teniamo conto dei tuoi gusti.

Scritto da:

Continua a leggere