Domande frequenti (FAQ) su AOSP

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

Informazioni su android-latest-release

Perché non riesco a inviare il commit ad aosp-main?

Non puoi inviare richieste a aosp-main perché questo ramo è ora di sola lettura.

Dove devo proporre modifiche ad AOSP?

Dovresti proporre nuove modifiche a android-latest-release (se utilizzi Repo) o al ramo di rilascio più recente specificato nel manifest di android-latest-release (se utilizzi direttamente Git). Le modifiche proposte esistenti in altri rami (ad esempioaosp-main) non devono essere spostate.

Con quale ramo devo eseguire la sincronizzazione?

  • Quando utilizzi Repo, esegui la sincronizzazione con android-latest-release utilizzando il seguente comando:

    repo init --partial-clone --no-use-superproject -b android-latest-release -u https://android.googlesource.com/platform/manifest
  • Quando utilizzi direttamente Git, esegui la sincronizzazione con il branch di revisione predefinito specificato nel android-latest-release manifest.

Per ulteriori dettagli sulla sincronizzazione dei rami, consulta Inizializza il client Repo.

Il codice di android-latest-release verrà unito ad aosp-main?

No, il codice non verrà unito a aosp-main, che è un ramo di sola lettura dal 27 marzo 2025.

Dove viene eseguito il push del codice per la release successiva?

Google spinge il codice per la release successiva nel ramo della release pubblica più recente e aggiorna il manifest android-latest-release in modo che indichi questo ramo.

La mia richiesta di modifica verrà selezionata dal ramo android-latest-release in Gerrit interno?

Dopo aver caricato una modifica proposta, Google la esaminerà e, se accettata, la selezionerà in Gerrit interno.

Come faccio a sapere se la mia richiesta di modifica è stata accettata?

Le modifiche accettate e selezionate vengono visualizzate in un push futuro a un ramo di release sull'host Android e possono essere sincronizzate con il repo utilizzando android-latest-release. Non esiste un meccanismo di notifica per quando una modifica proposta viene accettata o rifiutata.

Qual è il flusso di lavoro generale dal momento in cui una modifica viene proposta da un collaboratore esterno a quando viene unita al branch di release più recente?

  1. Un collaboratore esterno propone una modifica a android-latest-release (se si utilizza Repo) o all'ultimo ramo di rilascio specificato nel manifest di android-latest-release (se si utilizza direttamente Git).

  2. Google esamina la modifica. Se la modifica riguarda:

    • Se accettata, Google seleziona la modifica e la unisce al ramo di sviluppo interno.

    • Non accettata, Google non seleziona le modifiche.

  3. Il collaboratore esterno controlla la modifica in android-latest-release.

Cosa succede se non ho più bisogno della modifica proposta?

Se non hai più bisogno della modifica proposta, non vuoi che venga unita o se sai che Google l'ha già esaminata, abbandonala in modo che rimanga nella cronologia delle modifiche proposte sull'host Android.

Domande sull'open source

Perché Google ha reso pubblico il codice sorgente di Android?

Google ha avviato AOSP in risposta alle nostre esperienze di lancio di app mobile. Volevamo assicurarci che fosse sempre disponibile una piattaforma aperta che potesse essere utilizzata da operatori, OEM e sviluppatori per realizzare le loro idee innovative. Volevamo anche evitare un punto di fallimento centrale, in modo che nessun singolo attore del settore potesse limitare o controllare le innovazioni di un altro. Il nostro scopo più importante con AOSP è assicurarci che il software Android open source venga implementato nel modo più ampio e compatibile possibile, a beneficio di tutti.

Che tipo di progetto open source è Android?

Google supervisiona lo sviluppo del codice sorgente di AOSP e si impegna a creare solide comunità di sviluppatori e utenti. Per la maggior parte, il codice sorgente di Android è concesso in licenza ai sensi della permissiva Licenza Apache 2.0, anziché di una licenza copyleft. Abbiamo scelto la licenza Apache 2.0 perché riteniamo che incoraggi l'adozione diffusa del software Android. Per maggiori dettagli, consulta Licenze.

Perché è Google a gestire Android?

Il lancio di una piattaforma software è complesso. L'apertura è fondamentale per il successo a lungo termine di una piattaforma, perché attira gli investimenti degli sviluppatori e garantisce un'esperienza equa per tutti. La piattaforma deve anche essere un prodotto interessante per gli utenti.

Google ha impegnato le risorse di ingegneria professionale necessarie per garantire che Android sia una piattaforma software completamente competitiva. Google tratta il progetto Android come un'operazione di sviluppo completo del prodotto e stipula i contratti commerciali necessari per garantire che sul mercato vengano commercializzati dispositivi Android di alta qualità.

Assicurarci che Android sia un successo tra gli utenti contribuisce a garantire la vitalità di Android come piattaforma e come progetto open source. Dopo tutto, chi vuole il codice sorgente di un prodotto non riuscito?

Il nostro obiettivo è garantire un ecosistema di successo per Android. Abbiamo reso pubblico il codice sorgente di Android in modo che chiunque possa modificare e distribuire il software in base alle proprie esigenze.

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

Lanciamo dispositivi fantastici in un mercato competitivo. Poi, le innovazioni e i miglioramenti apportati vengono incorporati nella piattaforma di base come versione successiva.

In pratica, questo significa che il team di ingegneria di Android si concentra su un numero ridotto di dispositivi "flagship" e sviluppa la versione successiva del software Android per supportare i lanci di questi prodotti. Questi dispositivi di punta assorbono gran parte del rischio del prodotto e aprono la strada alla vasta community di OEM, che li segue 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 reali.

Come viene sviluppato il software Android?

Ogni versione della piattaforma Android (ad esempio 1.5 o 8.1) ha un ramo corrispondente nella struttura ad albero open source. Il ramo più recente è considerato la versione del branco stabile corrente a cui fa riferimento il manifest android-latest-release. Si tratta del ramo che i produttori eseguono il porting sui propri dispositivi. Questo ramo viene mantenuto idoneo per il rilascio in qualsiasi momento.

Infine, Google lavora alla prossima versione della piattaforma Android in tandem con lo sviluppo di un dispositivo di punta.

Perché alcune parti di Android vengono sviluppate in privato?

In genere, sono necessari più di un anno per lanciare un dispositivo sul mercato. E, ovviamente, i produttori di dispositivi vogliono spedire il software più recente possibile. Al contempo, gli sviluppatori non vogliono monitorare costantemente le nuove versioni della piattaforma quando scrivono app. Entrambi i gruppi devono fare i conti con la necessità di spedire i prodotti e di non rimanere indietro.

Per risolvere il problema, alcune parti della prossima versione di Android, tra cui le API di piattaforma di base, vengono sviluppate in un ramo privato. Queste API costituiscono la prossima versione di Android. Il nostro obiettivo è attirare l'attenzione sull'attuale versione stabile del codice sorgente di Android mentre creiamo la versione successiva della piattaforma. In questo modo, sviluppatori e OEM possono utilizzare una singola versione senza monitorare il lavoro futuro incompiuto solo per stare al passo.

Quando vengono rilasciate le release del codice sorgente?

Quando è tutto pronto. Il rilascio del codice sorgente è un processo piuttosto complesso. Alcune parti di Android, come il kernel, vengono sviluppate in modo aperto e il codice sorgente è sempre disponibile. Altre parti vengono sviluppate in un primo momento in un albero privato e il codice sorgente viene rilasciato quando è pronta la versione successiva della piattaforma.

In alcune release, le API di base della piattaforma sono pronte con un anticipo sufficiente per poter spingere il codice sorgente per un'anteprima prima del rilascio del dispositivo. In altre release, questa operazione 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.

Che cosa comporta il rilascio del codice sorgente di una nuova versione di Android?

Il rilascio del codice sorgente di una nuova versione della piattaforma Android è un processo importante. 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 implementati gli smartphone. Il codice viene sottoposto anche a test degli operatori. Si tratta di una fase importante del processo, in quanto aiuta a rilevare i bug del software.

Quando la release viene approvata da regolatori e operatori, il produttore inizia a produrre i dispositivi in serie e noi iniziamo a rilasciare il codice sorgente.

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

Il nostro team legale dà l'approvazione finale per il rilascio del codice in open source. Così come i collaboratori open source sono tenuti a firmare un Contratto di licenza per i collaboratori che attesta la loro proprietà intellettuale del contributo, Google deve verificare che l'autore sia autorizzato a fornire contributi.

Dal momento dell'inizio della produzione di massa, la procedura di rilascio del software richiede solitamente circa un mese, pertanto le release del codice sorgente avvengono spesso nello stesso periodo in cui i dispositivi raggiungono gli utenti.

Che relazione c'è tra AOSP e il Programma di compatibilità Android?

AOSP gestisce 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 sorgente.

La funzione del Programma di compatibilità Android è definire un'implementazione di riferimento di Android compatibile con le app di terze parti scritte dagli sviluppatori. I dispositivi compatibili con Android sono idonei a partecipare all'ecosistema Android, incluso Google Play; i dispositivi che nonsoddisfano i requisiti di compatibilità non fanno parte di questo ecosistema.

In altre parole, il Programma di compatibilità Android ci consente di distinguere i dispositivi compatibili con Android da quelli che eseguono semplicemente derivati del codice sorgente. Accogliamo con favore tutti gli utilizzi del codice sorgente di 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 in codice che accettiamo. Ad esempio, qualcuno potrebbe voler contribuire con un'API di app alternativa, come un ambiente completo basato su C++. declineremmo questo contributo, perché Android incoraggia l'esecuzione delle app nel runtime ART. Analogamente, non accetteremo contributi come le librerie GPL o LGPL non compatibili con i nostri obiettivi di licenza.

Invitiamo gli utenti interessati a contribuire con il codice sorgente a contattarci tramite i canali elencati nella community Android prima di iniziare qualsiasi lavoro. Per maggiori dettagli, consulta Contributi.

Come faccio a diventare un committer di Android?

AOSP non ha una definizione di committer. Tutti i contributi (inclusi quelli scritti dai dipendenti di Google) vengono esaminati da un sistema basato su web noto come Gerrit, che fa parte del processo di ingegneria di Android. Questo sistema lavora in tandem con il sistema di gestione del codice sorgente Git per gestire in modo ordinato i contributi al codice sorgente.

Un approvatore designato deve esaminare e accettare tutte le modifiche proposte. Gli approvatori sono in genere dipendenti di Google, ma sono responsabili di tutti i contenuti inviati, indipendentemente dalla loro origine.

Per maggiori dettagli, vedi Invio di patch.