Il progetto Android Open Source (AOSP) mantiene uno stack software completo che può essere portato dagli OEM e da altri implementatori di dispositivi ed eseguito sul proprio hardware. Per mantenere la qualità di Android, Google ha contribuito a tempo pieno con ingegneri, product manager, progettisti di interfacce utente, tester del controllo qualità e tutti gli altri ruoli necessari per portare sul mercato i dispositivi moderni.
Di conseguenza, manteniamo una serie di linee di codice per separare chiaramente l'attuale versione stabile di Android dal lavoro sperimentale instabile. Inseriamo l'amministrazione e la manutenzione open source delle linee di codice Android nel ciclo di sviluppo del prodotto più ampio.
Gestione del codice AOSP
La tabella seguente illustra i concetti alla base della gestione e dei rilasci del codice AOSP.
- In ogni momento è disponibile l'ultima versione della piattaforma Android. Questo assume tipicamente la forma di un ramo nell'albero.
- I costruttori di dispositivi e i contributori lavorano con l'ultima versione corrente, correggendo bug, lanciando nuovi dispositivi, sperimentando nuove funzionalità e così via.
- Parallelamente, Google lavora internamente alla prossima versione della piattaforma e del framework Android in base alle esigenze e agli obiettivi del prodotto. Sviluppiamo la prossima versione di Android collaborando con un partner su un dispositivo di punta le cui specifiche sono scelte per spingere Android nella direzione in cui crediamo dovrebbe andare.
- Quando la versione n+1 è pronta, viene pubblicata nell'albero dei sorgenti pubblico e diventa la nuova versione più recente.
Termini e avvertenze
- Una release corrisponde a una versione formale della piattaforma Android, come 1.5 o 8.1. Una versione della piattaforma corrisponde alla versione nel campo
SdkVersion
dei fileAndroidManifest.xml
e definita inframeworks/base/api
nell'albero dei sorgenti. - Un progetto upstream è un progetto open source da cui lo stack Android estrae il codice. Oltre a progetti come il kernel Linux e WebKit, continuiamo a migrare alcuni progetti Android semi-autonomi come ART, gli strumenti Android SDK e Bionic per lavorare come progetti upstream. Generalmente questi progetti si sviluppano interamente nell’albero pubblico. Per alcuni progetti upstream, gli sviluppatori contribuiscono direttamente al progetto upstream. Per i dettagli, vedere Progetti upstream . In entrambi i casi, gli snapshot vengono periodicamente inseriti nelle versioni.
- In ogni momento, una linea di codice di rilascio (che può consistere in più di un ramo in git) è considerata l'unico codice sorgente canonico per una determinata versione della piattaforma Android. Gli OEM e altri gruppi che realizzano dispositivi dovrebbero estrarre solo da un ramo di rilascio.
- Vengono stabilite linee di codice sperimentali per catturare i cambiamenti della comunità in modo che possano essere ripetuti con un occhio alla stabilità.
- Le modifiche che risultano stabili vengono infine inserite in un ramo di rilascio. Ciò si applica solo alle correzioni di bug, ai miglioramenti dell'applicazione e ad altre modifiche che non influiscono sulle API della piattaforma.
- Le modifiche vengono inserite nei rami di rilascio dei progetti upstream (inclusi i progetti upstream Android) secondo necessità.
- La versione n+1 (la successiva versione principale del framework e delle API della piattaforma) è sviluppata internamente da Google. Per i dettagli, vedere Linee di codice private .
- Le modifiche vengono trasferite dai rami upstream, release e sperimentale al ramo privato di Google, se necessario.
- Quando le API della piattaforma per la versione successiva saranno stabilizzate e completamente testate, Google rilascerà la versione successiva della piattaforma (nello specifico, una nuova
SdkVersion
). Ciò corrisponde alla codeline interna che viene resa un ramo di rilascio pubblico e alla nuova codeline della piattaforma attuale. - Quando viene tagliata una nuova versione della piattaforma, allo stesso tempo viene creata una linea di codice sperimentale corrispondente.
Linee di codice private
La strategia di gestione del codice sorgente di cui sopra include una linea di codice che Google mantiene privata per focalizzare l'attenzione sull'attuale versione pubblica di Android.
Gli OEM e altri costruttori di dispositivi desiderano naturalmente fornire i dispositivi con l'ultima versione di Android. Allo stesso modo, gli sviluppatori di applicazioni non vogliono avere a che fare con più versioni della piattaforma del necessario. Nel frattempo, Google mantiene la responsabilità della direzione strategica di Android come piattaforma e prodotto. Il nostro approccio si concentra su un numero limitato di dispositivi di punta per promuovere funzionalità garantendo al contempo la protezione della proprietà intellettuale relativa ad Android.
Di conseguenza, Google è spesso in possesso di informazioni riservate di terzi e deve astenersi dal rivelare caratteristiche sensibili finché non si assicura le protezioni adeguate. Inoltre, ci sono rischi reali per la piattaforma se esistono troppe versioni della piattaforma contemporaneamente. Per questi motivi, abbiamo strutturato il progetto open source (compresi i contributi di terze parti) per concentrarci sulla versione stabile attualmente pubblica di Android. Lo sviluppo approfondito della prossima versione della piattaforma avviene in privato finché non è pronta per diventare una versione ufficiale.
Riconosciamo che molti contributori non sono d'accordo con questo approccio e rispettiamo i loro punti di vista. Tuttavia, questo è l'approccio che riteniamo migliore e quello che abbiamo scelto di implementare per Android.