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:
- si stima la popolarità dello strumento in questione, es. quanti sviluppatori o aziende lo stanno veramente usando in produzione
- si valuta la dimensione della community che ruota attorno allo strumento
- 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.