L'intervista ad Android 11: i googler rispondono alle nostre domande scottanti

476

Aurich Lawson/Getty Images

Abbiamo stabilito una piccola tradizione qui ad Ars. Ogni anno al Google I/O, teniamo una conferenza per saperne di più su Android direttamente dalle persone che lo realizzano. Naturalmente, quest'anno, quasi tutti gli eventi principali sono stati cancellati a causa della pandemia di coronavirus, nulla è veramente normale e Google I/O non è mai avvenuto.

Possiamo ancora fare interviste su Internet però! Quindi, anche se è successo più avanti nel corso dell'anno rispetto al normale, siamo stati comunque in grado di tenere la nostra chat annuale con alcuni dei più importanti Googler presso il quartier generale di Android: Dave Burke, VP of Engineering di Android, e Iliyan Malchev, Principal Engineer di Android e leader del Progetto Treble.

Siamo venuti preparati con domande sugli angoli più misteriosi di Android 11, che in realtà hanno portato a molte discussioni interessanti sul futuro. Imparerai a conoscere una prossima riscrittura dello stack Bluetooth e si parla molto di modularità e facilità di aggiornamento (come si spera che i piani, un giorno, ti consentano di aggiornare il kernel Linux e le API per sviluppatori con la stessa facilità con cui scarichi un'app aggiornare).

La serie di interviste Android

Visualizza altre storie

Questa intervista si è svolta pochi giorni prima del lancio di Android 11, che è diventato definitivo l'8 settembre. Come al solito, questo è stato solo leggermente modificato per chiarezza e includerò qualsiasi sfondo necessario in corsivo. Dato lo strano stato di tutto quando siamo entrati tutti in una chat video di Google Meet, COVID è stato un ovvio primo argomento.

Ars: Come state affrontando il COVID-19 nella terra di sviluppo di Android?

Dave Burke: Buona. Come tutti, quando abbiamo fatto il passaggio al lavoro da casa, è stato un po' una corsa a dir poco. Avevamo un sacco di cose sulla produttività degli sviluppatori da appianare. Molte persone usano workstation ad alta potenza per costruire il sistema operativo, con un telefono collegato tramite USB, e volevamo trovare un modo in cui potessero ancora utilizzare le loro workstation ma eseguire il flashing su un telefono collegato a un laptop. Quindi abbiamo fatto un sacco di lavori sull'infrastruttura e quant'altro per far funzionare tutti. In realtà ha funzionato abbastanza bene. Sono rimasto piuttosto colpito.

Annuncio pubblicitario

Anche Google Meet ha funzionato alla grande. Ricordo di aver pensato un paio di anni fa: "Wow, Google sta investendo molto in questo materiale di videoconferenza, perché non usare qualcosa di commerciale?" Ma ora sono così felice che Google abbia costruito il proprio. Molti di noi ora usano le stanze Meet, quindi abbiamo molti canali virtuali simili a Slack, se vuoi chiamarlo così. È stato abbastanza buono!

Voglio dire, ovviamente è stata anche dura, non avere cose come conversazioni nel corridoio. Abbiamo visto da qualche parte tra il 7 e l'11 percento di calo della produttività, direi, all'inizio. Poi sembrava riprendersi man mano che le persone si adattavano. Abbiamo riportato il programma indietro di circa un mese solo perché abbiamo bisogno di accogliere le persone con quella transizione. Anche l'industria ha avuto bisogno di tempo per adattarsi, ma sì, sta principalmente funzionando. Certo, penso che saremmo tutti molto felici di tornare al lavoro.

Iliyan Malchev: Penso che la più grande preoccupazione per il COVID fosse solo: "L'infrastruttura dell'ISP sarà in grado di gestire questo enorme picco nel consumo dei media?" Sembra che abbia resistito per la maggior parte.

Burke: L'altra cosa su cui ho lavorato sono le notifiche di esposizione con Apple, quindi è stato piuttosto intenso. Stiamo costruendo la capacità di rilevare se sei stato approssimativo con qualcuno che è risultato positivo al COVID-19. Abbiamo lavorato velocemente su questo, quindi è stato un secondo lavoro in più.

Ah, sì, le notifiche di esposizione al COVID di Android arrivano su uno smartphone vicino a te. Le API per questo sono state fornite in Google Play Services e sono state implementate praticamente su tutti i due miliardi di dispositivi Android di Google Play disponibili. Gli aggiornamenti completi del sistema operativo potrebbero dipendere dal produttore del dispositivo, ma gli aggiornamenti di Play Services colpiscono tutti i telefoni su cui è installato il Play Store, quindi praticamente tutti i telefoni Android al di fuori della Cina.
Ingrandisci / Google inizierà a generare app COVID stesso in modo che gli stati e altre entità possano essere operativi più facilmente.

Google

Il problema attuale con il monitoraggio del COVID è che le singole organizzazioni sanitarie devono creare app che si collegano a questa API e, negli Stati Uniti, di solito è il governo statale. Gli Stati non hanno davvero sviluppatori di app competenti a disposizione per qualcosa del genere (il tuo sito Web DMV locale è un disastro tanto quanto il mio?). Finora, solo sei stati hanno attualmente app COVID. Sembra che il prossimo passo di Google per provare a risolvere questo problema sia creare app stesse, quindi gli stati devono solo fornire un file di configurazione per essere operativi.

Aggiornamenti della linea principale del progetto

Project Mainline, noto anche come "Aggiornamenti di sistema di Google Play", è uno dei più grandi cambiamenti in arrivo su Android da qualche tempo. La funzionalità ha debuttato in Android 10 ed è un passo importante nella modularizzazione di Android. Mainline ha aggiunto un nuovo tipo di file "APEX", progettato per impacchettare i componenti principali del sistema per una facile aggiornabilità tramite il Play Store. In precedenza, il Play Store distribuiva solo file APK che, poiché erano stati creati pensando ad app di terze parti, presentavano ogni sorta di limitazioni di sicurezza e funzionalità che non avrebbero funzionato per i componenti principali del sistema. I file APEX possono provenire solo da Google o dal tuo OEM, quindi questi offrono molta più potenza e si avviano prima nel processo di avvio. I file APEX possono fare cose come aggiornare il framework dell'app, cosa che non potresti mai fare con un'app.

Mainline riguardava anche l'integrazione degli OEM con Google che acquisiva più codice di base di Android, codice che in precedenza era disponibile per gli OEM per la personalizzazione. Google ha dovuto sedersi con tutti gli OEM (immagino che questi incontri assomiglino al Senato Galattico) e chiedere: "Hai davvero bisogno di personalizzare il modo in cui funziona il risolutore DNS?" Quando tutte le risposte restituiscono "no", questo diventa un modulo Mainline e tutti accettano di spedire lo stesso pezzo di codice. Quando ci sono problemi di personalizzazione, Google e gli OEM stanno lavorando insieme per eseguire l'upstream del codice in un modulo che tutti possono utilizzare.

Quello era Android 10. Per Android 11, l'ultima notizia che abbiamo ricevuto su Mainline è stato il primo post sul blog di anteprima per sviluppatori di Google di febbraio, che diceva che c'erano "12 nuovi moduli" in Mainline. Non ha fornito molti più dettagli di così.

Ars: il tuo post sul blog diceva che c'erano "12 nuovi moduli apex" in Android 11, ma cosa sono esattamente?

Burke: Sì, ce n'è un mucchio. Ho una lista qui: quindi statsd, che è il nostro demone per la raccolta di statistiche, e questo ha senso perché vuoi avere una telemetria uniforme. Il tethering Wi-Fi è un nuovo modulo. NNAPI, l'API delle reti neurali, è un altro spazio che sta cambiando rapidamente man mano che apprendiamo più tecniche nell'apprendimento automatico. ADBD. Cella di trasmissione. Ci sono alcuni moduli Wi-Fi. Roba di estensione SDK. Oh, e anche un fornitore di contenuti multimediali, che è alla base dell'archiviazione con ambito, quindi volevamo che fosse aggiornabile.

Annuncio pubblicitario

Penso che ci siano un totale di 21 moduli ora e penso che probabilmente più importante di quelli che sono i moduli reali è il lavoro che è stato fatto nell'infrastruttura per renderli possibili. Abbiamo una gestione delle versioni molto avanzata. Abbiamo telemetria a breve e lungo termine. Abbiamo la capacità A-B. Abbiamo un'istantanea del file system nel rollback. E l'altra parte, ovviamente, è solo un cambiamento culturale per gli sviluppatori per imparare a scrivere in un modulo che viene aggiornato continuamente. Sono piuttosto entusiasta delle basi che abbiamo gettato più di quello che sono i moduli specifici perché c'è molto altro in arrivo.

Ars: Parlando di "altro a venire", volevo chiedere di quel "modulo di estensione SDK", che sembra piuttosto importante. È così interessante come immagino? Vuoi fornire nuovi livelli API tramite il Play Store?

OK, timeout mentre spiego questa domanda: le versioni di Android sono identificate per te e per me dai loro numeri di versione, ma internamente Android si identifica con le app con un numero chiamato in modo intercambiabile "livello SDK" o "livello API". Quindi tutte le nuove funzionalità, autorizzazioni e restrizioni di sicurezza in Android 11 sono disponibili per le app in "Livello API 30". In passato, i livelli API sono sempre aumentati di +1 con ogni versione di Android (anche per le versioni 0.1 più piccole, motivo per cui siamo al livello 30).

La speculazione con un modulo SDK è che Google sarebbe in grado di spedire interi nuovi livelli SDK agli sviluppatori, incluse nuove funzionalità, senza dover rilasciare un intero aggiornamento del sistema operativo. Questo sarebbe assolutamente incredibile per Android, dal momento che gli aggiornamenti completi del sistema operativo hanno una distribuzione così scarsa e una base di utenti ridotta che gli sviluppatori sono riluttanti a supportare nuove API quando nessuno può eseguirle. I livelli API su Google Play sarebbero proprio come un'implementazione di Play Services, in cui una nuova funzionalità può raggiungere due miliardi di dispositivi praticamente da un giorno all'altro. Anche questo sembra molto difficile da credere, perché una nuova API per sviluppatori può colpire qualsiasi parte del sistema operativo. Come potresti aggiornarlo tramite un singolo modulo?

Burke: Penso che l'intera idea di moduli OS aggiornabili sia un cambiamento piuttosto profondo, quindi è tutto piuttosto interessante. Ma sì, abbiamo la possibilità in Android 11, Android R, come lo chiamiamo noi, di creare nuove API di sistema e distribuirle nei moduli principali. Questo è in R. In S [Android S would be version 12], pianificheremo di essere effettivamente in grado di fornire nuove API pubbliche nei moduli Mainline, quindi stiamo semplicemente estendendo l'ampiezza di cosa è un modulo e cosa è aggiornabile.

Ars: Dovrà essere più limitato di un aggiornamento completo del sistema operativo, giusto? Quanto può funzionare bene rispetto a un'OTA? Sembra incredibile ma anche piuttosto difficile.

Burke: Sì, penso che sia ancora presto. Hai ragione. La sfida con i moduli aggiornabili è che il modulo si aggiorna ma non si può presumere che tutto ciò che lo circonda si aggiorni. Quindi, devi stare attento e avere API interne stabili o confini tra quelle interfacce.

Quindi sì, stiamo ancora lavorando. Penso che quello che vuoi veramente sia che l'API sia connessa solo a un altro modulo aggiornabile, altrimenti non ha molto senso. Stiamo costruendo la capacità e poi vedremo per cosa la useremo.