Domande frequenti

Questa pagina fornisce le risposte ad alcune domande frequenti (FAQ).

Open Source

Che cos'è il progetto Android Open Source?

Android Open Source Project (AOSP) si riferisce alle persone, ai processi e al codice sorgente che compongono Android.

Le persone supervisionano il progetto e sviluppano il codice sorgente. I processi sono gli strumenti e le procedure che utilizziamo per gestire lo sviluppo del software. Il risultato netto è il codice sorgente, che puoi utilizzare su telefoni cellulari e altri dispositivi.

Perché abbiamo aperto il codice sorgente di Android?

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

Che tipo di progetto open source è Android?

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

Perché Google si occupa di Android?

L'avvio di una piattaforma software è complesso. L'apertura è fondamentale per il successo a lungo termine di una piattaforma, perché l'apertura attira gli investimenti 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 completamente competitiva. Google considera il progetto Android come un'operazione di sviluppo del prodotto su vasta scala e conclude gli accordi commerciali necessari per assicurarsi che ottimi dispositivi con Android arrivino sul mercato.

Assicurandoci che Android abbia successo con gli utenti, aiutiamo a garantire la vitalità di Android come piattaforma e come progetto open source. Dopotutto, chi vuole il codice sorgente per un prodotto non riuscito?

L'obiettivo di Google è 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 in base alle proprie esigenze.

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

Rilasciamo ottimi dispositivi in ​​un mercato competitivo. Quindi incorporiamo le innovazioni e i miglioramenti che abbiamo apportato alla piattaforma principale come versione successiva.

In pratica, ciò significa che il team di ingegneri di Android si concentra su un numero limitato di dispositivi "ammiraglia" e sviluppa la prossima versione del software Android per supportare quei lanci di prodotti. Questi dispositivi di punta assorbono gran parte del rischio del prodotto e aprono la strada all'ampia comunità OEM, che prosegue con più 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 di 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 è sempre idoneo al rilascio.

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

Infine, Google lavora sulla prossima versione della piattaforma Android insieme allo sviluppo di un dispositivo di punta. Questo ramo attira le modifiche dai rami sperimentali e stabili a seconda dei casi.

Per dettagli su codeline, rami e rilasci, vedere Gestione del codice AOSP .

Perché parti di Android sono sviluppate in privato?

In genere ci vuole più di un anno per portare un dispositivo sul mercato. E, naturalmente, i produttori di dispositivi vogliono spedire il software più recente possibile. Nel frattempo, gli sviluppatori non vogliono monitorare costantemente le nuove versioni della piattaforma durante la scrittura di 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, sono 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 di Android mentre creiamo la prossima versione della piattaforma. Ciò consente agli sviluppatori e agli OEM di utilizzare una singola versione senza tenere traccia del lavoro futuro incompiuto solo per tenere il passo. Altre parti del sistema Android che non sono correlate alla compatibilità delle applicazioni sono sviluppate all'aperto. È nostra intenzione spostare più di queste parti per aprire lo sviluppo nel tempo.

Quando vengono rilasciate le versioni del codice sorgente?

Quando sono pronti. Il rilascio del codice sorgente è un processo abbastanza complesso. Alcune parti di Android sono sviluppate all'aperto e quel codice sorgente è sempre disponibile. Altre parti vengono sviluppate prima in un albero privato e quel codice sorgente viene rilasciato quando la versione successiva della piattaforma è pronta.

In alcune versioni, le API della piattaforma principale sono pronte con sufficiente anticipo in modo da poter inviare il codice sorgente per una prima occhiata prima del rilascio del dispositivo. In altre versioni, questo non è possibile. In tutti i casi, rilasciamo il 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 è 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 passa anche attraverso il test 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 la produzione in serie di dispositivi e iniziamo a rilasciare il codice sorgente.

Contemporaneamente alla produzione di massa, il team di Google dà il via a diversi sforzi per preparare il rilascio open source. Questi sforzi includono le modifiche finali dell'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 l'avvio delle informazioni sulla compatibilità della piattaforma.

Il nostro team legale esegue un'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 loro 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 richiede in genere 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 AOSP è correlato al programma di compatibilità Android?

L'Android Open Source Project gestisce il software Android e ne sviluppa nuove versioni. Poiché è open source, questo software può essere utilizzato per qualsiasi scopo, incluso lo sviluppo di dispositivi che non sono compatibili con altri dispositivi basati sulla stessa sorgente.

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. Accogliamo con favore 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 codice sorgente all'Android Open Source Project.

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

Invitiamo coloro che sono interessati a contribuire con il codice sorgente a contattarci tramite i canali elencati nella pagina della community Android prima di iniziare qualsiasi lavoro. Per i dettagli, vedere Contributo .

Come faccio a diventare un committente Android?

L'Android Open Source Project non ha davvero una nozione di committente . Tutti i contributi (compresi quelli creati 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.

Una volta inviate, le modifiche devono essere accettate da un approvatore designato. 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 di patch .

Torna in cima

Compatibilità

Che cos'è la "compatibilità" di Android?

Definiamo un dispositivo compatibile con Android come un dispositivo in grado di eseguire qualsiasi applicazione scritta da sviluppatori di terze parti utilizzando Android SDK e NDK. Lo usiamo come filtro per separare i dispositivi che possono partecipare all'ecosistema delle app Android e quelli che non possono. Per i dispositivi che sono adeguatamente compatibili, i produttori di dispositivi possono richiedere l'approvazione per l'utilizzo del marchio Android. I dispositivi non compatibili derivano dal codice sorgente Android e non possono utilizzare il marchio Android.

In altre parole, la compatibilità è un prerequisito per la partecipazione all'ecosistema delle app Android. Chiunque può utilizzare il codice sorgente di Android. Ma se il dispositivo non è compatibile, non è considerato parte dell'ecosistema Android.

Qual è il ruolo di Google Play nella compatibilità?

I produttori di dispositivi con dispositivi compatibili con Android possono richiedere la licenza del software client di Google Play. I dispositivi con licenza diventano parte dell'ecosistema delle app Android, consentendo ai loro utenti di scaricare le app degli sviluppatori da un catalogo condiviso da tutti i dispositivi compatibili. La licenza non è disponibile per i dispositivi non compatibili.

Quali tipi di dispositivi possono essere compatibili con Android?

Il software Android può essere trasferito su molti dispositivi diversi, inclusi alcuni su cui le app di terze parti non funzionano correttamente. L' Android Compatibility Definition Document (CDD) esplicita le configurazioni specifiche del dispositivo che sono considerate compatibili.

Ad esempio, sebbene il codice sorgente di Android possa essere trasferito per essere eseguito su un telefono che non dispone di una fotocamera, il CDD richiede che tutti i telefoni dispongano di una fotocamera. Ciò consente agli sviluppatori di fare affidamento su un insieme coerente di funzionalità durante la scrittura delle proprie app.

Il CDD continua ad evolversi per riflettere le realtà del mercato. Ad esempio, la versione 1.6 del CDD supporta solo i telefoni cellulari. Ma la versione 2.1 consente ai dispositivi di omettere l'hardware di telefonia, consentendo la compatibilità di dispositivi non telefonici come lettori musicali in stile tablet. Man mano che apportiamo queste modifiche, aumenteremo anche Google Play per consentire agli sviluppatori di mantenere il controllo su dove sono disponibili le loro app. Per continuare l'esempio di telefonia, un'app che gestisce i messaggi di testo SMS non è utile su un lettore multimediale, quindi Google Play consente allo sviluppatore di limitare quell'app esclusivamente ai dispositivi telefonici.

Se il mio dispositivo è compatibile, ha automaticamente accesso a Google Play e al branding?

No. L'accesso non è automatico. Google Play è un servizio gestito da Google. Il raggiungimento della compatibilità è un prerequisito per ottenere l'accesso al software e al branding di Google Play. Dopo che un dispositivo è qualificato come dispositivo compatibile con Android , il produttore del dispositivo deve compilare il modulo di contatto incluso nella licenza di Google Mobile Services per richiedere l'accesso a Google Play. Ci metteremo in contatto se possiamo aiutarti.

Se non sono un produttore, come posso ottenere Google Play?

Google Play è concesso in licenza solo ai produttori di telefoni che spediscono i dispositivi. Per domande su casi specifici, contatta android-partnerships@google.com .

Come posso accedere alle app Google per Android, come Maps?

Le app Google per Android come, ad esempio, YouTube, Google Maps e Gmail sono proprietà di Google che non fanno parte di Android e sono concesse in licenza separatamente. Contatta android-partnerships@google.com per richieste relative a queste app.

La compatibilità è obbligatoria?

No. Il programma di compatibilità Android è facoltativo. Il codice sorgente di Android è aperto, quindi chiunque può usarlo per costruire qualsiasi tipo di dispositivo. Tuttavia, se i produttori desiderano utilizzare il nome Android con i loro prodotti o desiderano accedere a Google Play, devono prima dimostrare che i loro dispositivi sono compatibili .

Quanto costa la certificazione di compatibilità?

Non ci sono costi per ottenere la compatibilità Android per un dispositivo. La Compatibility Test Suite è open source e disponibile a chiunque per il test del dispositivo.

Quanto tempo impiega la compatibilità?

Il processo è automatizzato. La Compatibility Test Suite genera un rapporto che può essere fornito a Google per verificare la compatibilità. Infine, intendiamo fornire strumenti self-service per caricare questi rapporti su un database pubblico.

Chi determina la definizione di compatibilità?

Google è responsabile della direzione generale di Android come piattaforma e prodotto, quindi Google mantiene il Compatibility Definition Document (CDD) per ogni versione. Redigiamo il CDD per una nuova versione di Android in consultazione con vari OEM che forniscono input.

Per quanto tempo ciascuna versione di Android sarà supportata per i nuovi dispositivi?

Il codice di Android è open source, quindi non possiamo impedire a qualcuno di utilizzare una vecchia versione per avviare un dispositivo. Google sceglie invece di non concedere in licenza il software client di Google Play per l'utilizzo su versioni considerate obsolete. Ciò consente a chiunque di continuare a distribuire versioni precedenti di Android, ma quei dispositivi non utilizzeranno il nome Android ed esisteranno al di fuori dell'ecosistema delle app Android, proprio come se non fossero compatibili.

Un dispositivo può avere un'interfaccia utente diversa ed essere comunque compatibile?

Il programma di compatibilità Android determina se un dispositivo può eseguire applicazioni di terze parti. I componenti dell'interfaccia utente forniti con un dispositivo (come schermata iniziale, dialer e combinazione di colori) in genere non hanno molto effetto sulle app di terze parti. Pertanto, i costruttori di dispositivi sono liberi di personalizzare l'interfaccia utente. Il documento di definizione della compatibilità limita la misura in cui gli OEM sono autorizzati a modificare l'interfaccia utente del sistema per le aree che influiscono sulle app di terze parti.

Quando vengono rilasciate le definizioni di compatibilità per le nuove versioni di Android?

Il nostro obiettivo è rilasciare una nuova versione dell'Android Compatibility Definition Document (CDD) quando la versione della piattaforma Android corrispondente è sufficientemente convergente da consentirlo. Sebbene non possiamo rilasciare una bozza finale di un CDD per una versione del software Android prima che il primo dispositivo di punta venga spedito con quel software, i CDD finali vengono sempre rilasciati dopo il primo dispositivo. Tuttavia, laddove possibile, pubblichiamo versioni bozza di CDD.

Come vengono convalidate le dichiarazioni di compatibilità dei produttori di dispositivi?

Non esiste un processo di convalida per la compatibilità del dispositivo Android. Tuttavia, se il dispositivo deve includere Google Play, in genere Google convalida la compatibilità del dispositivo prima di accettare la licenza del software client di Google Play.

Cosa succede se un dispositivo che dichiara la compatibilità viene successivamente riscontrato con problemi di compatibilità?

In genere, i rapporti di Google con i licenziatari di Google Play ci consentono di chiedere al produttore di deveice di rilasciare immagini di sistema aggiornate che risolvano i problemi.

Torna in cima

Suite di test di compatibilità

Qual è lo scopo del CTS?

La Compatibility Test Suite è uno strumento utilizzato dai produttori di dispositivi per garantire che i loro dispositivi siano compatibili e per riportare i risultati dei test per le convalide. Il CTS deve essere eseguito frequentemente dagli OEM durante tutto il processo di progettazione per rilevare tempestivamente i problemi di compatibilità.

Che tipo di cose testa il CTS?

Il CTS attualmente verifica che tutte le API di tipo avanzato Android supportate siano presenti e si comportino correttamente. Verifica anche altri comportamenti di sistema non API come il ciclo di vita e le prestazioni dell'applicazione. Abbiamo in programma di aggiungere il supporto nelle future versioni CTS per testare le API soft come Intents.

I rapporti CTS saranno resi pubblici?

Sì. Sebbene non sia attualmente implementato, Google intende fornire strumenti self-service basati sul Web per consentire agli OEM di pubblicare report CTS in modo che chiunque possa visualizzarli. I produttori possono condividere i rapporti CTS con un pubblico più ampio che desiderano.

Come viene concesso in licenza il CTS?

Il CTS è concesso in licenza con la stessa licenza software Apache 2.0 utilizzata dalla maggior parte di Android.

Il CTS accetta contributi?

Sì grazie! L'Android Open Source Project accetta contributi per migliorare il CTS proprio come per qualsiasi altro componente. In effetti, migliorare la copertura e la qualità dei test case CTS è uno dei modi migliori per aiutare Android.

Qualcuno può utilizzare il CTS su dispositivi esistenti?

Il documento di definizione della compatibilità richiede che i dispositivi compatibili implementino l'utilità di debug adb . Ciò significa che qualsiasi dispositivo compatibile (compresi quelli disponibili al dettaglio) deve essere in grado di eseguire i test CTS.

I codec sono verificati da CTS?

Sì. Tutti i codec obbligatori sono verificati da CTS.

Torna in cima