Android passa al sistema di compilazione Bazel

Sviluppatori di Google che sono dietro lo sviluppo di Android, ha dato sapere tramite un annuncio che il Progetto si sta muovendo Open source Android (AOSP) per utilizzare il sistema di compilazione Bazel invece dell'attuale sistema di compilazione Soong, Ninja e Make.

Il supporto di Bazel è già stato aggiunto al repository Android, Ma la transizione al nuovo sistema di compilazione per impostazione predefinita se si diffonderà in più versioni piattaforma per rendere la migrazione il più semplice e trasparente possibile.

Nel 2020 e nel 2021 non sono previste modifiche significative nei flussi di lavoro di costruzione di piattaforme e verrà mantenuto il supporto per i sistemi di costruzione esistenti.

Per consentire una migrazione graduale, alcuni cambiamenti per semplificare le build Android sono già inclusi in Bazel, come la capacità di analizzare ed eseguire file di build in formato Ninja.

Si sostiene che per la piattaforma Android, il passaggio a Bazel aumenterà la flessibilità di configurazione del processo di compilazione, Migliorerà l'introspezione / monitoraggio dell'avanzamento della compilazione e la connessione delle dipendenze, implementerà build ripetibili, semplificherà gli script di build complessi, migliorerà l'integrazione con vari gestori di build e test e ridurrà i tempi di compilazione.

La migrazione a Bazel consentirà ad AOSP di:

Fornire maggiore flessibilità per configurare la compilazione AOSP (migliore supporto per i condizionali)
Consenti più introspezione sui progressi e le dipendenze della build AOSP
Abilita build AOSP corrette e riproducibili (impermeabili)
Introdurre un meccanismo di configurazione che ridurrà la complessità delle build AOSP
Consentire un'ulteriore integrazione delle attività di costruzione e collaudo
Combina tutti questi elementi per ottenere tempi di costruzione significativi e miglioramenti dell'esperienza
I vantaggi di questa migrazione alla comunità Bazel sono:

Investimenti significativi in ​​corso in Bazel per supportare le build della piattaforma Android
L'ecosistema di Bazel e l'espansione della comunità includeranno inizialmente decine di migliaia di sviluppatori di piattaforme Android e produttori di apparecchiature originali (OEM) di telefoni Android e venditori di chip.
Le regole Bazel di Google per la creazione di app Android saranno open source, utilizzate in AOSP e mantenute da Google in collaborazione con la comunità Android / Bazel.
Migliore compatibilità con Bazel per la creazione di app Android
Migliore supporto delle regole per altri linguaggi utilizzati per creare la piattaforma Android (Rust, Java, Python, Go, ecc.)
Forte supporto per le versioni Bazel Long Term Support (LTS), a vantaggio della comunità Bazel ampliata
Documentazione migliorata (tutorial e riferimenti)

L'ecosistema di Bazel su Android amplierà il numero di partecipanti coinvolti nello sviluppo, semplificherà l'app per creare app Android (incluso Google intende aprire codice per creare script per le sue applicazioni Android), migliorerà il supporto per vari linguaggi di programmazione utilizzati in Android (Rust, Java, Python, Go), fornirà risorse per la creazione di versioni di lunga durata e lo farà portare a una documentazione migliore e più ampia.

Bazel è sviluppato dagli ingegneri di Google e viene utilizzato per realizzare la maggior parte dei progetti interni dell'azienda. Il progetto si distingue per l'elevata velocità di costruzione, per cui vengono utilizzate tecniche di caching e parallelizzazione del processo di costruzione.

Anche gli strumenti garantire un assemblaggio ripetibileIn altre parole, il risultato della creazione del progetto sulla macchina dello sviluppatore sarà esattamente lo stesso della creazione su sistemi di terze parti, come i server di integrazione continua. Funzionalità aggiuntive vengono implementate tramite il meccanismo per il collegamento di estensioni.

A differenza di Make e Ninja, Bazel ha un approccio di livello superiore per creare regole di compilazione che, invece di definire associazioni di comandi per i file da compilare, utilizzano blocchi predefiniti più astratti e definiscono piattaforme di destinazione / build.

I componenti del progetto sono descritti nel file di testo BUILD sotto forma di un pacchetto di librerie, eseguibili e test, senza dettagli a livello di singoli file e comandi per chiamare il compilatore.

Nei file BUILD, tutte le dipendenze devono essere completamente definite, sulla base del quale si decide di ricostruire i componenti dopo aver apportato modifiche (vengono ricostruiti solo i file modificati) e parallelizzare il processo di compilazione.

fonte: https://developers.googleblog.com


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.