Domande frequenti AOSP (FAQ)

Questo documento contiene risposte a domande generali sulla piattaforma Android Open Source (AOSP).

Domande open source

Perché Google ha aperto il codice sorgente di Android?

Google ha avviato l'AOSP in risposta alle nostre esperienze nel lancio di app mobili. Volevamo assicurarci che ci fosse sempre una piattaforma aperta disponibile per operatori, OEM e sviluppatori da utilizzare per trasformare le loro idee innovative in realtà. Volevamo anche evitare qualsiasi punto centrale di fallimento, in modo che nessun singolo attore del settore potesse limitare o controllare le innovazioni di un altro. Il nostro obiettivo più importante con AOSP è garantire che il software Android open source sia implementato nel modo più ampio e compatibile possibile, a vantaggio di tutti.

Che tipo di progetto open source è Android?

Google supervisiona lo sviluppo del nucleo AOSP e lavora per creare solide comunità di sviluppatori e utenti. Per la maggior parte, il codice sorgente di Android è concesso in licenza sotto la permissiva licenza Apache 2.0, piuttosto che con una licenza copyleft . Abbiamo scelto la licenza Apache 2.0 perché crediamo che incoraggi l'adozione diffusa del software Android. Per i dettagli, vedere Licenze .

Perché Google è responsabile di Android?

Il lancio di una piattaforma software è complesso. L’apertura è vitale per il successo a lungo termine di una piattaforma, perché attira investimenti da parte degli sviluppatori e garantisce condizioni di parità. La piattaforma deve anche essere un prodotto interessante per gli utenti.

Google ha impegnato le risorse ingegneristiche professionali necessarie per garantire che Android sia una piattaforma software pienamente competitiva. Google tratta il progetto Android come un'operazione di sviluppo prodotto su vasta scala e conclude gli accordi commerciali necessari per garantire che ottimi dispositivi con Android arrivino sul mercato.

Assicurandoci che Android abbia successo tra gli utenti, contribuiamo a garantire la vitalità di Android come piattaforma e come progetto open source. Dopo tutto, chi vuole che il codice sorgente di un prodotto fallito?

Il nostro obiettivo è garantire un ecosistema di successo attorno ad Android. Abbiamo aperto il codice sorgente di Android in modo che chiunque possa modificare e distribuire il software per soddisfare le proprie esigenze.

Qual è la strategia complessiva di Google per lo sviluppo dei prodotti Android?

Rilasciamo ottimi dispositivi in ​​un mercato competitivo. Successivamente incorporiamo le innovazioni e i miglioramenti apportati alla piattaforma principale come versione successiva.

In pratica, ciò significa che il team tecnico di Android si concentra su un numero limitato di dispositivi "di punta" e sviluppa la prossima versione del software Android per supportare il lancio di tali prodotti. Questi dispositivi di punta assorbono gran parte del rischio del prodotto e aprono la strada all’ampia comunità OEM, che prosegue con altri dispositivi che sfruttano le nuove funzionalità. In questo modo, ci assicuriamo che la piattaforma Android si evolva in base alle esigenze dei dispositivi del mondo reale.

Come viene sviluppato il software Android?

Ogni versione della piattaforma Android (come 1.5 o 8.1) ha un ramo corrispondente nell'albero open source. Il ramo più recente è considerato l' attuale versione del ramo stabile . Questo è il ramo che i produttori portano sui loro dispositivi. Questo ramo viene mantenuto sempre idoneo al rilascio.

Allo stesso tempo, esiste un ramo sperimentale attuale , dove vengono sviluppati i contributi speculativi, come le grandi funzionalità di prossima generazione. Correzioni di bug e altri contributi possono essere inclusi nell'attuale ramo stabile dal ramo sperimentale, a seconda dei casi.

Infine, Google sta lavorando alla prossima versione della piattaforma Android parallelamente allo sviluppo di un dispositivo di punta. Questo ramo apporta modifiche dai rami sperimentale e stabile a seconda dei casi.

Per dettagli su codeline, rami e versioni, vedere Gestione del software Android .

Perché parti di Android vengono sviluppate in privato?

In genere è necessario più di un anno per immettere un dispositivo sul mercato. E, naturalmente, i produttori di dispositivi vogliono fornire il software più recente possibile. Nel frattempo, gli sviluppatori non vogliono tenere traccia costantemente delle nuove versioni della piattaforma quando scrivono app. Entrambi i gruppi sperimentano una tensione tra la spedizione dei prodotti e il non voler rimanere indietro.

Per risolvere questo problema, alcune parti della prossima versione di Android, comprese le API della piattaforma principale, saranno sviluppate in un ramo privato. Queste API costituiscono la prossima versione di Android. Il nostro obiettivo è focalizzare l'attenzione sull'attuale versione stabile del codice sorgente Android mentre creiamo la prossima versione della piattaforma. Ciò consente agli sviluppatori e agli OEM di utilizzare un'unica versione senza tenere traccia del lavoro futuro non completato, solo per stare al passo. Altre parti del sistema Android che non sono correlate alla compatibilità delle app vengono sviluppate apertamente. Intendiamo spostare più di queste parti per aprire lo sviluppo nel tempo.

Quando vengono effettuate le versioni del codice sorgente?

Quando saranno pronti. Il rilascio del codice sorgente è un processo abbastanza complesso. Alcune parti di Android sono sviluppate apertamente e il codice sorgente è sempre disponibile. Le altre parti vengono sviluppate prima in un albero privato e il codice sorgente viene rilasciato quando è pronta la versione successiva della piattaforma.

In alcune versioni, le API della piattaforma principale sono pronte con sufficiente anticipo in modo da poter inviare il codice sorgente per uno sguardo anticipato prima del rilascio del dispositivo. In altre versioni ciò non è possibile. In ogni caso, rilasciamo il codice sorgente della piattaforma quando riteniamo che la versione sia stabile e quando il processo di sviluppo lo consente.

Cosa comporta il rilascio del codice sorgente per una nuova versione di Android?

Il rilascio del codice sorgente per una nuova versione della piattaforma Android è un processo significativo. Innanzitutto, il software viene integrato in un'immagine di sistema per un dispositivo e sottoposto a varie forme di certificazione, inclusa la certificazione normativa governativa per le regioni in cui verranno distribuiti i telefoni. Il codice viene anche sottoposto a test da parte dell'operatore. Questa è una fase importante del processo perché aiuta a rilevare i bug del software.

Quando il rilascio viene approvato dalle autorità di regolamentazione e dagli operatori, il produttore inizia a produrre in serie i dispositivi e noi iniziamo a rilasciare il codice sorgente.

Contemporaneamente alla produzione di massa, il team di Google avvia diversi sforzi per preparare la versione open source. Questi sforzi includono l'esecuzione di modifiche finali all'API, l'aggiornamento della documentazione (per riflettere eventuali modifiche apportate durante i test di qualificazione, ad esempio), la preparazione di un SDK per la nuova versione e il lancio delle informazioni sulla compatibilità della piattaforma.

Il nostro team legale effettua l'approvazione finale per rilasciare il codice in open source. Proprio come i contributori open source sono tenuti a firmare un contratto di licenza per i contributori che attesti la proprietà intellettuale del loro contributo, Google deve verificare che la fonte sia autorizzata a fornire contributi.

Dal momento in cui inizia la produzione di massa, il processo di rilascio del software dura solitamente circa un mese, quindi i rilasci del codice sorgente spesso avvengono più o meno nello stesso momento in cui i dispositivi raggiungono gli utenti.

In che modo l'AOSP si collega al Programma di compatibilità Android?

L'AOSP mantiene il software Android e sviluppa nuove versioni. Poiché è open source, questo software può essere utilizzato per qualsiasi scopo, incluso lo sviluppo di dispositivi non compatibili con altri dispositivi basati sulla stessa fonte.

La funzione del Programma di compatibilità Android è definire un'implementazione di base di Android compatibile con app di terze parti scritte dagli sviluppatori. I dispositivi compatibili con Android possono partecipare all'ecosistema Android, incluso Google Play; i dispositivi che non soddisfano i requisiti di compatibilità esistono al di fuori di tale ecosistema.

In altre parole, il Programma di compatibilità Android è il modo in cui separiamo i dispositivi compatibili con Android dai dispositivi che eseguono semplicemente derivati ​​del codice sorgente. Diamo il benvenuto a tutti gli usi del codice sorgente Android, ma per partecipare all'ecosistema Android, un dispositivo deve essere identificato come compatibile con Android dal programma.

Come posso contribuire ad Android?

Puoi segnalare bug, scrivere app per Android o contribuire con il codice sorgente all'AOSP.

Esistono limiti ai tipi di contributi di codice che accettiamo. Ad esempio, qualcuno potrebbe voler contribuire con un'API dell'app alternativa, come un ambiente completamente basato su C++. Rifiuteremo tale contributo perché Android incoraggia l'esecuzione delle app nel runtime ART. Allo stesso modo, non accetteremo contributi come librerie GPL o LGPL che siano incompatibili con i nostri obiettivi di licenza.

Incoraggiamo coloro che sono interessati a contribuire con il codice sorgente a contattarci tramite i canali elencati nella Community Android prima di iniziare qualsiasi lavoro. Per i dettagli, vedere Contribuire .

Come posso diventare un committer Android?

L'AOSP non ha realmente la nozione di committer. Tutti i contributi (compresi quelli scritti dai dipendenti di Google) passano attraverso un sistema basato sul Web noto come Gerrit che fa parte del processo di progettazione di Android. Questo sistema funziona in tandem con il sistema di gestione del codice sorgente Git per gestire in modo pulito i contributi del codice sorgente.

Un approvatore designato deve accettare tutte le modifiche inviate. Gli approvatori sono in genere dipendenti di Google, ma gli stessi approvatori sono responsabili di tutti gli invii, indipendentemente dall'origine.

Per i dettagli, vedere Invio delle patch .