Scopriamo il cuore di Android: Android Open Source Project (AOSP). Questo progetto open-source, supervisionato da Google, è alla base di tutte le varianti di Android, dalle interfacce One UI di Samsung alla Pixel di Google. AOSP fornisce il sistema operativo di base e riceve regolarmente patch di sicurezza e nuove funzionalità. Esplora come AOSP differisce da Android stock e le implicazioni di Google Mobile Services (GMS).
Uno dei maggiori punti di forza di Android, e fonte di occasionali frustrazioni, è la sua ampia varietà di varianti software. L’interfaccia One UI di Samsung e persino l’interfaccia Pixel di Google offrono una propria interpretazione dell’esperienza principale di Android, introducendo caratteristiche e idee uniche per migliorare il software di base. Tutto questo è possibile grazie a un sistema operativo (OS) di base comune che fornisce le funzioni fondamentali. Esatto, tutte le varianti del sistema operativo Android che conoscete e amate sono basate su AOSP, o Android Open Source Project.
In parole povere, AOSP è un progetto di sviluppo del sistema operativo open-source gestito da Google. Essendo open-source, chiunque è libero di rivedere e contribuire con codice e correzioni all’archivio del progetto. Tuttavia, Google ne supervisiona la direzione generale e ha l’ultima parola sulla maggior parte del suo sviluppo. AOSP riceve regolarmente correzioni di bug, che vengono confezionate e distribuite agli smartphone Android sotto forma di patch di sicurezza mensili. Google svela inoltre ogni anno nuove funzioni alla conferenza I/O per gli sviluppatori, con rilasci annuali come Android 15.
Oltre a essere aperto ai contributi, il progetto Android Open Source è libero di essere utilizzato e modificato con una licenza open-source. Produttori come Amazon e Samsung sono liberi di modificare il progetto per i propri scopi e hanno sviluppato i propri spin-off, tra cui Fire OS, un sistema multifunzionale che non viene fornito con i servizi di Google. Questa natura aperta si è rivelata un fattore importante anche per Huawei, che ha continuato a sviluppare EMUI e Harmony OS basati su Android dopo le sanzioni commerciali degli Stati Uniti.
È anche importante notare che la maggior parte dei produttori smartphone ottiene le versioni di AOSP dai fornitori di chipset come Qualcomm. Tutto ciò perché Android deve essere adattato all’hardware tramite i driver. Questo è stato storicamente la causa dei ritardi negli aggiornamenti di Android e dei limitati anni di supporto agli aggiornamenti. In definitiva, Google è soddisfatta di questo accordo, in quanto incoraggia gli sviluppatori a utilizzare Android per un’ampia gamma di gadget connessi a internet. In cambio, una serie di aziende contribuisce a correggere e migliorare il sistema operativo.
Cosa significa Android Open Source Project (AOSP)
Come sicuramente immaginerete, i sistemi operativi sono complessi e Android non è da meno. AOSP copre una serie di livelli software all’interno del sistema operativo, fornendo punti di accesso e strumenti per gli sviluppatori di hardware e applicazioni. Forse avrete anche sentito dire che Android è basato su Linux, il che ha un certo grado di verità. Proprio come in un normale computer Linux, i livelli “inferiori” sono quelli in cui i produttori di dispositivi codificano il sistema operativo per farlo funzionare con il loro hardware specifico. Il kernel, ad esempio, è il programma principale che gestisce le risorse della CPU, la memoria di sistema, la rete e così via, in modo da consentire l’esecuzione di applicazioni e servizi. Il livello HAL (Hardware Abstraction Layer) collega le API comuni delle applicazioni per il Bluetooth, il suono, ecc. con il microfono, gli altoparlanti e altro ancora del dispositivo.
I livelli “di livello superiore” sono utilizzati dagli sviluppatori di app. Le librerie native consentono agli sviluppatori di creare contenuti con librerie di basso livello comunemente supportate, come OpenGL ES, Webkit e altre. Al di sopra di queste, Android Frameworks fornisce agli sviluppatori di app agganci per le funzioni comuni del sistema operativo che tutti noi utilizziamo quotidianamente. Queste vanno dai dati sulla posizione, alle notifiche push e alle telefonate. Android Runtime è l’intermediario che converte il codice dell’applicazione in istruzioni native per l’hardware sottostante.
Insieme, lo stack Android Open Source Project è una soluzione completa per gli sviluppatori di hardware e software Android. AOSP non è solo una base di codice in continua crescita. Google fornisce anche strumenti di progettazione e sviluppo nell’ambito del progetto, che vanno dalla documentazione sulla compatibilità alle migliori pratiche di sicurezza e ai principi di progettazione delle app. Google ospita anche una selezione di suite di test per aiutare gli sviluppatori a garantire che i loro dispositivi implementino correttamente le API e le funzionalità.
Differenza tra AOSP e Android stock
Android Open Source Project viene spesso confuso con Android stock, ma si tratta di una semplificazione eccessiva. Sebbene AOSP contenga tutto ciò che serve agli sviluppatori per costruire Android, non include tutto ciò che serve per uno smartphone finito. Questo perché Google e AOSP non possono fornire i driver di dispositivo del kernel per ogni configurazione hardware esistente. Per driver di dispositivo intendiamo il firmware necessario per l’hardware di un telefono, come il processore o le fotocamere. I produttori di telefoni e SoC, come Qualcomm e Samsung, devono incorporare questi driver nelle rispettive build di Android, il che è in parte il motivo per cui gli aggiornamenti richiedono tempo per passare da AOSP allo smartphone in mano.
Inoltre, AOSP non include la suite di applicazioni software di Google, come il browser Chrome, YouTube e il Google Play Store, oltre a non include una serie di tecnologie e API di Google che abilitano funzioni come i pagamenti mobili, i comandi vocali e l’archiviazione cloud. Queste sono concesse in licenza separatamente ai produttori come Google Mobile Services (GMS). Le app e servizi consentono a Google di trarre profitto da Android senza dover pagare nulla in anticipo. AOSP non include le app di Google e nemmeno i driver specifici per l’hardware.
Qualsiasi produttore che voglia installare GMS su Android deve ottenere una licenza GMS e un Mobile Application Distribution Agreement (MADA) per il proprio dispositivo e poi superare diversi test di compatibilità. C’è l’Android Compatibility Test Suite (CTS) per convalidare i componenti software e hardware e le API. Poi, la Google Mobile Services Test Suite (GTS) e la Vendor Test Suite (VTS) testano le capacità multimediali, il kernel del sistema operativo e le capacità HAL. Un’altra condizione per ottenere una licenza GMS è quella di precaricare un certo numero di app di Google su un nuovo dispositivo, motivo che ha portato il gigante della ricerca a subire azioni legali antitrust, dato che la maggior parte delle persone associa Android al Play Store, che richiede non solo GMS ma anche innumerevoli altre app di Google.
La differenza tra AOSP e GMS è diventata una distinzione molto importante dopo la disputa commerciale tra Stati Uniti e Cina. Quando Huawei ha perso l’accesso alle tecnologie statunitensi, non ha più potuto concedere in licenza GMS ma ha potuto continuare a utilizzare AOSP. Per questo motivo, Huawei ha iniziato a sostituire le funzioni di GMS con il proprio Huawei Mobile Service (HMS). Ciò significa che le app che si basano su GMS devono essere ricostruite con HMS per funzionare correttamente. Per questo motivo non è possibile garantire la presenza delle applicazioni Android preferite sugli ultimi dispositivi del brand cinese.
Il futuro di AOSP
Android Open Source Project continua a essere la base del successo di Android, grazie alle innumerevoli ore di contributo degli sviluppatori di tutto il mondo. Mentre i dispositivi Android non andranno da nessuna parte a breve, Google potrebbe già essere alla ricerca di un futuro sistema operativo.
Google Fuchsia è apparso per la prima volta su GitHub nell’agosto 2016, ma da allora ne abbiamo sentito parlare poco. Non sappiamo ancora molto su Fuchsia per smartphone. Detto questo, sembra essere progettato per una gamma di dispositivi ancora più ampia di Android. Fuchsia è dotato di un kernel non Linux chiamato Zircon e supporta il linguaggio di scripting Dart di Google. Al momento, Fuchsia è open-source e gratuito, proprio come Android. Speriamo che i piani futuri rimangano tali.