Android per sistemi embedded
Valter Minute
[email protected]
Vminute
By PresenterMedia.com
•Agenda or Summary Layout
A second line of text could go here
1
Cos’è Android
2
Android e l’embedded
3
L’accesso all’hardware
4
Android Open Source Project
5
Customizzare Android
Parenti serpenti
I molti possibili utilizzi del robottino
To Java or not to Java?
Datemi i sorgenti!
Un’occhiata sotto il cofano
•Valter Minute
Una veloce presentazione
•
Sviluppatore su sistemi embedded dal 1999
•Chi siete voi?
Piccoli sondaggisti crescono
•
•
•
•
•
Sviluppatori
Sviluppatori Embedded
Sviluppatori in ambiente Java
Sviluppatori in ambiente Linux
Sviluppatori Android
•COS’È ANDROID?
•Android
Vi presento il robottino!
•
•
•
Android è il più diffuso sistema operativo per dispositivi mobili
E’ basato sul kernel linux e utilizza il linguaggio Java
E’ sviluppato da Google e supportato dai principali silicon
vendor
•La storia di Android
C’era una volta un robottino...
•
•
•
•
2003 – Viene fondata Android inc.
2005 – Google acquisisce Android inc.
2007 – Viene annunciata la Open Headset Alliance
2008 – Viene rilasciato il primo device Android
•Le versioni di Android
Un sistema ad alto tasso glicemico
•
•
•
•
•
•
•
•
•
•
•
1.0 – Settembre 2008
1.1 – Febbraio 2009
1.5 (cupcake) – Aprile 2009
1.6 (donut) – Settembre 2009
2.0/2.1 (eclair) – Ottobre 2009
2.2 (froyo) – Maggio 2010
2.3 (gingerbread) – Dicembre 2010
3.0 (honeycomb) – Febbraio 2011
4.0 (ice cream sandwitch) – Ottobre 2011
4.1/4.2 (jellybean) – Luglio 2012
4.2.2 – Febbraio 2013
•Android e Linux
Parenti serpenti?
•
•
•
•
•
Android è basato sul kernel di Linux
Le applicazioni user mode in Android sono normalmente basate
sull’Android Framework
Kernel mode comune
User mode differente
Licensing
•L’architettura di Android
Deja vù?
•Android e Java
Welcome to Dalvik, Iceland
•
•
•
Le applicazioni Android possono essere sviluppate in linguaggio
Java
Android non utilizza la JVM ufficiale
Dalvik è una JVM che non esegue bytecode Java
•Licensing
Roba per avvocati...
•
•
•
•
Il Kernel di Linux ha licenza GPL
La maggior parte dei componenti di Android hanno licenza
BSD/Apache
Android Brand
Google applications
•L’ambiente di sviluppo
Si eclissa Eclipse?
•
•
•
•
Android Development Toolkit è attualmente basato su Eclipse
Android Studio
Linguaggio Java
Ambiente di sviluppo gratuito
•DEMO – ECLIPSE E ANDROID
STUDIO
•ANDROID E L’EMBEDDED
•Android e l’embedded
To custom or not to custom...
•
•
Dispositivi Android commerciali
Dispositivi Android custom
•Utilizzare un dispositivo commerciale?
Android the easy way...
•
•
•
•
•
Android è molto più aperto degli altri sistemi mobili
Non è necessario passare per un marketplace
E’ possibile rimpiazzare funzionalità di sistema
Le applicazioni hanno accesso alla maggior parte delle
funzionalità del sistema
Non ci sono vincoli di form-factor etc.
•DEMO – CONTROLLARE UN DEVICE
EMBEDDED DA ANDROID
•Realizzare un dispositivo custom
Costruiamoci il nostro robottino!
•
•
•
•
•
Possibilità di customizzazione maggiori
Hardware specializzato
Integrazione di funzioni specifiche
Compatibilità con le applicazioni
Nessun costo di licenza
•Qualche esempio
Come on baby light my kindle fire!
•Qualche esempio
Inchiostro elettronico a fiumi
•Qualche esempio
L’ora ai tempi di Android
•Qualche esempio
Android videogames
•Licensing
Roba da avvocati...
•
•
•
•
Il Kernel Linux ha licenza GPL
La maggior parte dei componenti user mode ha licenza
Apache/BSD
Branding
Google applications
•L’ACCESSO ALL’HARDWARE
•Dispositivi supportati
Hardware access the Android way
•
•
•
•
•
Android supporta nativamente una serie di dispositivi
Display e touch, tastiere, GPS, connettività, cattura video,
sensori, led etc.
Kernel mode
HAL
Le funzioni di questi device sono accessibili attraverso il
framework
•Dispositivi non supportati
I live it my way....
•
•
•
•
•
Supporto kernel mode
Supporto user mode
E’ possibile estendere il framework per supportare funzionalità
aggiuntive
SDK estesi
JNI
•DEMO – JNI
•ANDROID OPEN SOURCE PROJECT
•AOSP
The source of power
•
•
•
•
•
source.android.com
GIT e repo
Componenti user mode
C/C++/Java
Librerie e componenti esterni
•Sorgenti alternative
Famolo strano...
•
•
•
•
Linaro
Silicon vendors (Freescale, Intel, Texas Instruments etc.).
Supporto per board specifiche
Versioni non sempre aggiornate rispetto ad AOSP
•CUSTOMIZZARE ANDROID
•Aggiungere componenti
Dal pinguino al robottino
•
•
•
•
•
Il porting di software da Linux ad Android richiede qualche
modifica
Makefile
Libreria C
Librerie esterne
THTTPD
•DEMO – THTTPD
•Customizzare componenti esistenti
Use the source Luke!
•
•
•
Documentazione (o mancanza di…)
Modifiche ai sorgenti
Modifiche alla user interface
•DEMO – ANDROID E PANDABOARD
•Q&A