Domande frequenti

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

Open Source

Che cos'è il progetto Open Source Android?

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 nei telefoni cellulari e in 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 in realtà le loro idee innovative. 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 unico 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 sovrintende allo sviluppo della piattaforma open source Android principale e lavora per creare solide comunità di sviluppatori e utenti. Per la maggior parte, il codice sorgente di Android è sotto la licenza permissiva licenza Apache 2.0, piuttosto che una licenza copyleft . Abbiamo scelto la licenza Apache 2.0 perché riteniamo che incoraggi l'adozione diffusa del software Android. Per i dettagli, consultare licenze .

Perché Google si occupa di Android?

Il lancio di una piattaforma software è complesso. L'apertura è fondamentale per il successo a lungo termine di una piattaforma, perché l'apertura attira investimenti da parte degli sviluppatori e garantisce parità di condizioni. La piattaforma deve anche essere un prodotto convincente 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 i grandi dispositivi con Android arrivino sul mercato.

Assicurandoci che Android sia un successo con gli utenti, contribuiamo a garantire la vitalità di Android come piattaforma e come progetto open source. Dopotutto, chi vuole il codice sorgente di 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 per soddisfare le proprie esigenze.

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

Rilasciamo fantastici dispositivi in ​​un mercato competitivo. Incorporiamo quindi le innovazioni e i miglioramenti apportati nella piattaforma principale come versione successiva.

In pratica, ciò significa che il team di ingegneri di Android si concentra su un piccolo numero di dispositivi "ammiraglia" e sviluppa la prossima versione del software Android per supportare tali lanci di prodotti. Questi dispositivi di punta assorbono gran parte del rischio del prodotto e aprono la strada all'ampia comunità OEM, che segue 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 è considerata la versione corrente ramo stabile. Questo è il ramo che i produttori portano sui loro dispositivi. Questo ramo è tenuto sempre pronto per il rilascio.

Contemporaneamente, c'è un ramo sperimentale corrente, che è dove contributi speculativi, quali grandi funzioni di nuova generazione, sono sviluppati. Correzioni di bug e altri contributi possono essere inclusi nell'attuale ramo stabile dal ramo sperimentale a seconda dei casi.

Infine, Google lavora alla prossima versione della piattaforma Android in tandem con lo sviluppo di un dispositivo di punta. Questo ramo inserisce i cambiamenti dai rami sperimentale e stabile a seconda dei casi.

Per i dettagli sulla codeline, rami, e rilasci, vedere la 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 fornire il software più recente possibile. Nel frattempo, gli sviluppatori non vogliono tenere costantemente traccia delle 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, incluse 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 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 allo scoperto. È nostra intenzione spostare più di queste parti per aprire lo sviluppo nel tempo.

Quando vengono rilasciati i codici sorgente?

Quando sono pronti. Il rilascio del codice sorgente è un processo abbastanza complesso. Alcune parti di Android sono sviluppate all'aperto e il codice sorgente è sempre disponibile. Altre parti vengono sviluppate prima in un albero privato e il 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 dai regolatori e dagli operatori, il produttore inizia a produrre in serie i dispositivi e noi iniziamo a rilasciare il codice sorgente.

Simultaneamente alla produzione di massa, il team di Google dà il via a diversi sforzi per preparare il rilascio open source. Questi sforzi includono l'esecuzione delle 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 fa una firma finale per rilasciare il codice in open source. Proprio come i contributori open source sono tenuti a firmare un contratto di licenza per collaboratori 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 richiede solitamente circa un mese, quindi le versioni del codice sorgente spesso avvengono 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 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 che sono compatibili Android sono ammessi a partecipare l'ecosistema Android, tra cui 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'Android Open Source Project.

Ci sono limiti ai tipi di contributi al codice che accettiamo. Ad esempio, qualcuno potrebbe voler contribuire con un'API dell'applicazione alternativa, come un ambiente completo basato su C++. Rifiuteremmo questo 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.

Incoraggiamo coloro che sono interessati a contribuire codice sorgente per contattarci tramite i canali elencati nella Comunità Android pagina prima di iniziare qualsiasi lavoro. Per dettagli, vedere Contribuire .

Come si diventa committer Android?

Il progetto Open Source Android in realtà non hanno una nozione di un 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.

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 qua il Submitting Patches .

Torna in cima

Compatibilità

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

Definiamo un dispositivo compatibile con Android come uno che può eseguire qualsiasi applicazione scritta da sviluppatori di terze parti utilizzando l'SDK di Android e NDK. Lo usiamo come filtro per separare i dispositivi che possono partecipare all'ecosistema delle app Android e quelli che non possono farlo. Per i dispositivi adeguatamente compatibili, i produttori di dispositivi possono richiedere l'approvazione per utilizzare il marchio Android. I dispositivi non compatibili derivano dal codice sorgente di Android e non sono autorizzati a 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 propri utenti di scaricare le app degli sviluppatori da un catalogo condiviso da tutti i dispositivi compatibili. La licenza non è disponibile per i dispositivi incompatibili.

Quali tipi di dispositivi possono essere compatibili con Android?

Il software Android può essere portato su molti dispositivi diversi, inclusi alcuni su cui le app di terze parti non funzionano correttamente. La definizione di compatibilità Android Document (CDD) precisa le configurazioni dei dispositivi specifici che sono considerati compatibili.

Ad esempio, sebbene il codice sorgente di Android possa essere portato 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 ai dispositivi non telefonici come i lettori di musica in stile tablet di essere compatibili. Mentre apportiamo queste modifiche, miglioreremo anche Google Play per consentire agli sviluppatori di mantenere il controllo su dove sono disponibili le loro app. Per continuare l'esempio della 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 un dispositivo è qualificato come un dispositivo compatibile con Android , il produttore del dispositivo devono compilare il modulo di contatto incluso nella concessione di licenze di Google Mobile Services a cercare 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 dispositivi. Per domande su casi specifici, il contatto android-partnerships@google.com .

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

Le app di 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. Contattare android-partnerships@google.com per richieste relative a queste applicazioni.

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 vogliono 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 dei dispositivi.

Quanto tempo ci vuole per la compatibilità?

Il processo è automatizzato. Compatibility Test Suite genera un report che può essere fornito a Google per verificare la compatibilità. Alla fine intendiamo fornire strumenti self-service per caricare questi report 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 Documento di definizione della compatibilità (CDD) per ogni versione. Redigiamo il CDD per una nuova versione di Android in consultazione con vari OEM che forniscono input.

Per quanto tempo sarà supportata ogni versione di Android 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 spedire vecchie versioni 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 la schermata iniziale, il dialer e la 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 sulla definizione della compatibilità limita il grado in cui agli OEM è consentito modificare l'interfaccia utente del sistema per le aree che hanno un impatto 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 corrispondente versione della piattaforma Android avrà raggiunto una convergenza sufficiente per 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, rilasciamo versioni bozza di CDD.

In che modo vengono convalidate le dichiarazioni di compatibilità dei produttori di dispositivi?

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

Cosa succede se un dispositivo che dichiara di essere compatibile si scopre successivamente avere problemi di compatibilità?

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

Torna in cima

Suite di test di compatibilità

Qual è lo scopo del CTS?

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 il processo di progettazione per rilevare tempestivamente i problemi di compatibilità.

Che tipo di cose fa il test CTS?

Il CTS attualmente verifica che tutte le API con tipizzazione sicura Android supportate siano presenti e si comportino correttamente. Inoltre, verifica altri comportamenti del sistema non API come il ciclo di vita dell'applicazione e le prestazioni. Abbiamo in programma di aggiungere il supporto nelle future versioni di CTS per testare le API morbidi come Intenti.

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 report CTS con il 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 casi di test CTS è uno dei modi migliori per aiutare Android.

Chiunque può utilizzare il CTS sui dispositivi esistenti?

La definizione di compatibilità documento richiede che i dispositivi compatibili implementano l' adb utilità di debug. 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