Android per sistemi embedded Valter Minute valter@valterminute.com Vminute By PresenterMedia.com
Agenda or Summary Layout A second line of text could go here 1 2 3 4 5 Cos è Android Parenti serpenti Android e l embedded I molti possibili utilizzi del robottino L accesso all hardware To Java or not to Java? Android Open Source Project Datemi i sorgenti! Customizzare Android 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