title-article
Perché dovrei installare Android sul mio hardware custom?
installare Android su hardware custom

Come Mobimentum lavoriamo da diversi anni su hardware embedded e hardware custom con Android a bordo. La nostra iniziale passione ha avuto un netto riscontro positivo e oggi possiamo dire che la scelta di Android è stata vincente.

Il dubbio più grande di solito è: Avrò potenza a sufficienza per far girare Android?Secondo la legge di Moore “la complessità di un microcircuito raddoppia ogni 18 mesi” e con essa aumenta l’efficienza e la potenza fornita dal SoC: un moderno processore mobile come lo Snapdragon 820 è più potente dell’IBM Deep Blue che sconfisse Kasparov nel 1997. Con più CPU e più memoria a disposizione possiamo utilizzare software stack più complesse come Virtual Machine Java e derivate Android quali Dalvik o ART.

Ma quali sono i vantaggi di installare Android su un hardware custom piuttosto che altri sistemi operativi? Vediamone alcuni.

Utilizzo di componenti standard che nascono per mobile

L’industria mobile (smartphone, tablet, miniPC, etc.) è cresciuta tantissimo dall’introduzione di iOS (2007) e Android (2008): oggi c’è una forte competizione tra i produttori hardware e questo porta a specifiche migliori, componenti più affidabili e crescita tecnologica importante, soprattutto sulle architetture ARM.

I componenti hardware mobile (CPU, GPU, memoria, sensori, etc.) sono impacchettati in un singolo SoC che può essere utilizzato come base di partenza per costruire un intero computer: tutti gli smartphone di fascia alta sono “mossi” da processori Qualcomm Snapdragon, Samsung Exynos, Huawei Kirin e altri processori con set di istruzioni ARM RISC.

Il prezzo contenuto e l’abbondante disponibilità di questi componenti giocano un ruolo fondamentale per le industrie che producono hardware di tutti i tipi: dai droni alle soluzioni ARM server-side, dispositivi medicali connessi, sistemi in-car e Internet of Things in genere.

Proliferazione di sviluppatori Android

Iniziare a sviluppare su Android è semplice e poco costoso: sono sufficienti un computer, uno smartphone anche di fascia bassa (100-150€) e – per vendere app su Google Play – un account da sviluppatore da 25€. Il mercato offre pertanto un discreto numero di sviluppatori Android, favoriti anche da altri aspetti:

  • la disponibilità di corsi gratuiti per Android come ad es. Udacity Android Nanodegree
  • la (da sempre) ampia disponibilità di sviluppatori Java che possono facilmente convertirsi ad Android
  • un ecosistema cresciuto attorno al Play Store con milioni di app che sono state create negli ultimi 8 anni

Strumenti di sviluppo moderni

L’ecosistema Android comprende diversi strumenti “allo stato dell’arte” per sviluppare (Android Studio), per compilare (build tools), debuggare e profilare (DDMS, Android Studio, systrace), così come emulatori discretamente performanti per testare in diverse condizioni di rete, GPS, hardware, dimensioni dello schermo e versioni del sistema operativo.

La toolchain di Android comprende anche strumenti di sviluppo nativo per il porting di giochi in C e lo sviluppo di driver di sistema o moduli del kernel.

Connettività “out-of-the-box”

Android è stato scritto con la connettività come primo obiettivo ed è quindi messo a punto per diversi sistemi di connessione come WiFi e rete telefonica (GSM, CDMA, LTE) e supporta nativamente le chiamate VoIP.

Utilizzando android tutti i layer dell’infrastruttura di rete sono immediatamente disponibili senza bisogno di setup o configurazioni aggiuntive.

Miliardi di app disponibili

Il Play Store contiene miliardi di applicazioni che si possono installare sul proprio dispositivo, molte delle quali sono open source cioè liberamente scaricabili e modificabili in base alle proprie esigenze.

Quindi mi conviene davvero installare Android sul mio hardware custom?

Decisamente sì! Come prevede la prassi quando si sceglie uno strumento o un software per un nuovo progetto:

  1. si stima la popolarità dello strumento in questione, es. quanti sviluppatori o aziende lo stanno veramente usando in produzione
  2. si valuta la dimensione della community che ruota attorno allo strumento
  3. si prende una decisione

Nel caso di Android abbiamo “due sì”, la community è in costante crescita, anche nel modding e nella personalizzazione del sistema operativo, e sempre più grandi aziende stanno puntando su Android per i loro prodotti.