Panoramica di AOSP

Android è un sistema operativo per un'ampia gamma di dispositivi con diversi fattori di forma. La documentazione e il codice sorgente di Android sono disponibili per chiunque come Android Open Source Project (AOSP). Puoi utilizzare AOSP per creare varianti personalizzate del sistema operativo Android per i tuoi dispositivi.

AOSP è progettato in modo che non esista un punto centrale di errore, in cui un operatore del settore limita o controlla le innovazioni di un altro. Pertanto, AOSP è un prodotto per sviluppatori completo e di qualità di produzione con codice sorgente aperto per la personalizzazione e il porting.

Questa sezione della documentazione aiuta i nuovi sviluppatori AOSP a iniziare a utilizzare la piattaforma e a eseguire le attività di sviluppo essenziali.

Termini obbligatori

Di seguito è riportato un elenco di termini e definizioni utilizzati nella documentazione Guida introduttiva. Prima di continuare, studia ogni definizione.

Sviluppatore di app per Android

Gli sviluppatori di app per Android scrivono app per Android o applicazioni che vengono eseguite su Android. Esistono due tipi di sviluppatori di app: sviluppatori di app proprietarie (1p) e sviluppatori di app di terze parti (3p).

Sviluppatore di app proprietarie per Android
Uno sviluppatore di app per Android che ha accesso alle API di sistema AOSP e scrive app con privilegi e per produttori di dispositivi.
Sviluppatore di app di terze parti per Android
Uno sviluppatore di app per Android che utilizza esclusivamente l'SDK pubblico di Android per creare app per Android.

Se vuoi sviluppare app di terze parti per Android, consulta developer.android.com. Le informazioni su questo sito web sono destinate esclusivamente a chi lavora direttamente con AOSP.

Android Debug Bridge (ADB)
Uno strumento a riga di comando (adb) che consente alla workstation di comunicare con un dispositivo virtuale, emulato da software o fisico.
Dispositivo compatibile con Android
Un dispositivo in grado di eseguire qualsiasi app di terze parti scritta da sviluppatori di terze parti utilizzando l'SDK e l'NDK Android. I dispositivi compatibili con Android devono rispettare i requisiti del Compatibility Definition Document (CDD) e superare la Compatibility Test Suite (CTS). I dispositivi compatibili con Android sono idonei a partecipare all'ecosistema Android, che include la potenziale licenza di Android Play Store, la potenziale licenza della suite di applicazioni e API Google Mobile Services (GMS) e l'utilizzo del marchio Android. Chiunque può utilizzare il codice sorgente di Android, ma per essere considerato parte dell'ecosistema Android, un dispositivo deve essere compatibile con Android. Per ulteriori informazioni sulla compatibilità e su CTS, consulta la panoramica del Programma di compatibilità Android
Compatibility Definition Document (CDD)
Un documento che elenca i requisiti software e hardware per un dispositivo compatibile con Android.
Collaboratore

Una persona che contribuisce al codice sorgente AOSP. I collaboratori possono essere dipendenti di Google, dipendenti di altre aziende e privati senza affiliazione aziendale. Ogni collaboratore AOSP utilizza gli stessi strumenti, segue la stessa procedura di revisione del codice ed è soggetto allo stesso stile di codifica. Non devi essere un collaboratore per utilizzare AOSP; puoi scaricare AOSP, modificarlo in base alle tue esigenze e implementarlo su un dispositivo senza contribuire con codice per l'utilizzo da parte di altri.

Esistono limiti al tipo di contributi di codice accettati da Google. Ad esempio, potresti voler contribuire con un'API dell'applicazione alternativa, ad esempio un ambiente completo basato su C++. Google rifiuterebbe questo contributo perché Android incoraggia l'esecuzione delle applicazioni nel runtime ART. Allo stesso modo, Google non accetta contributi come le librerie GPL o LGPL che non sono compatibili con gli obiettivi di licenza.

Se ti interessa contribuire con il codice sorgente, contatta Google prima di iniziare a lavorare.

Compatibility Test Suite (CTS)

Una suite di test senza costi di livello commerciale, disponibile per il download come binario o come sorgente in AOSP. CTS è un insieme di unit test progettati per essere integrati nel tuo flusso di lavoro quotidiano. L'obiettivo di CTS è rivelare le incompatibilità e garantire che il software rimanga compatibile durante l'intero processo di sviluppo.

Cuttlefish

Un dispositivo virtuale Android configurabile che può essere eseguito da remoto, utilizzando offerte cloud di terze parti, come Google Cloud Engine, e localmente su macchine Linux x86.

Developer

Nel contesto di AOSP, uno sviluppatore è chiunque lavori con AOSP in qualsiasi modo. Il termine "sviluppatore" viene utilizzato per fare riferimento in modo generico alle varie persone che potrebbero leggere questa documentazione, come produttori di apparecchiature originali (OEM), produttori di smartphone, operatori e creatori di System-on-a-Chip (SoC).

Google Mobile Services (GMS)

Una raccolta di app e API Google che possono essere preinstallate sui dispositivi.

Target

Una permutazione di un dispositivo, ad esempio un modello o un fattore di forma specifico. Ad esempio, aosp_cf_x86_64_only_phone-userdebug rappresenta uno smartphone x86 da 65 MB con informazioni di debug progettato per essere eseguito sull'emulatore Cuttlefish.

Filosofia di governance

Un gruppo di aziende noto come Open Handset Alliance (OHA), guidato da Google, ha creato Android. Oggi, molte aziende, sia membri originali di OHA sia altre, hanno investito molto in Android. Queste aziende hanno allocato risorse di ingegneria significative per migliorare Android e portare i dispositivi Android sul mercato.

Le aziende che hanno investito in Android lo hanno fatto perché ritengono che sia necessaria una piattaforma aperta. Android è intenzionalmente ed esplicitamente un progetto open source (in contrapposizione al software senza costi); un gruppo di organizzazioni con esigenze condivise ha messo in comune le risorse per collaborare a un'unica implementazione di un prodotto condiviso. Innanzitutto, la filosofia di Android è pragmatica. L'obiettivo è un prodotto condiviso che ogni collaboratore può adattare e personalizzare.

Naturalmente, la personalizzazione incontrollata può portare a implementazioni incompatibili. Per evitare l'incompatibilità, Android Open Source Project (AOSP) gestisce il Programma di compatibilità Android, che spiega cosa significa essere compatibili con Android e cosa è richiesto ai produttori di dispositivi per ottenere questo stato. Chiunque può utilizzare il codice sorgente di Android per qualsiasi scopo e Google accoglie tutti gli utilizzi legittimi. Tuttavia, per partecipare all'ecosistema condiviso di applicazioni che i membri di OHA stanno creando intorno ad Android, i produttori di dispositivi devono partecipare al Programma di compatibilità Android.

AOSP è guidato da Google, che gestisce e sviluppa ulteriormente Android. Sebbene Android sia costituito da più sottoprogetti, AOSP è strettamente una gestione di progetti. Google visualizza e gestisce Android come un unico prodotto software olistico, non una distribuzione, una specifica o una raccolta di parti sostituibili. L'intenzione di Google è che i produttori di dispositivi portino Android su un dispositivo; non implementano una specifica o curano una distribuzione.

Passaggi successivi

  • Se non hai familiarità con AOSP e vuoi seguire un tutorial sullo sviluppo AOSP, vai al tutorial AOSP.

  • Se ritieni che il tuo dispositivo debba essere compatibile con Android, consulta il Programma di compatibilità Android.

  • Se vuoi scoprire di più sul background di AOSP, inclusa la partecipazione di Google alla piattaforma, consulta le domande frequenti su AOSP.