Android
Marco Teodori
Assistente Ricercatore - Fondazione Ugo Bordoni
Insegnamento “Tecniche audiovisive”
Corso di Laurea in Ingegneria delle
Comunicazioni
Agenda
•
•
•
•
•
•
Cos’è?
Storia
Architettura
Android features
Ambiente di sviluppo
Android oltre il mobile
Che cos'è Android?
Android è uno stack software per dispositivi
mobili costituito da:
• Il sistema operativo
• Middleware
• Key application
• Ambiente di sviluppo per programmare
applicazioni in linguaggio Java
Storia
• 2005 : Acquistato Android Inc.
• 2007 : Costituzione della Open Handset Alliance
• 1° versione SDK
• 2008 : G1 T-Mobile
• Rilascio sorgente con licenza Apache 2
• Annuncio release candidate sdk 1.0
• Possibilità di acquisto Dev Phone 1
• 2009 : Rilascio sdk 1.5 Cupcake >> tastiera virtuale
• Rilascio sdk 1.6 >>Quick search box
• Rilascio sdk 2.0
• 2010: Rilascio sdk 2.2 Froyo
• 2011 : Rilascio sdk 2.3 GingerBread
• Rilascio sdk 3.0
Architettura
Architettura/Linux Kernel
Android adotta la versione 2.6 di Linux:
• Gestione della sicurezza
• Memory Management
• Process Management
• Network Stack
• Driver Model
Il kernel agisce anche da layer di astrazione fra l'hardware e il resto
dello stack software.
Architettura/Libraries
Android comprende un vasto set di librerie C/C++ :
• System C library: derivate BSD ottimizzata per dispositivi mobili Linuxbased
• Media Libraries: basate su PacketVideo's OpenCORE
• Surface Manager: accesso al sottosistema di visualizzazione
• LibWebCore
• SGL-motore grafico 2D
• 3D libraries-derivate da OpenGL ES 1.0 APIs
• FreeType
• SQLite
Architettura/Android Runtime
• Android include un set di librerie di base che fornisce la maggior
parte delle funzionalità disponibili nel linguaggio di
programmazione Java.
• Ogni applicazione Android gira in un proprio processo, con la
propria istanza della macchina virtuale Dalvik. La Virtual Machine
Dalvik esegue file Dalvik Executable (.dex), ottimizzata per
dispositivi con memoria ridotta.
• La VM Dalvik si basa sul kernel Linux per le funzionalità di base
offerte da quest'ultimo, come il threading e di memoria a basso
livello di gestione.
Architettura/Application Framework 1/2
• Gli sviluppatori possono sfruttare tutto l'hardware del
device:
– per accedere alle informazioni di posizione
– eseguire applicazioni in background
– allarmistica
• Gli sviluppatori hanno pieno accesso alle APIs usate per le
applicazioni core.
Architettura/Application Framework 2/2
Alla base delle applicazioni c'è un ricco insieme di servizi e sistemi, che
includono:
• Un ricco ed estendibile insieme di Viste: elenchi, griglie, caselle di testo,
pulsanti ed un browser web
• Content Providers, che permette di accedere ai dati di altre applicazioni e
di condividere con i propri
• Resource Manager, che provvede all'accesso alle risorse “non-code”
come: localized strings, graphics, e layout files
• Notification Manager che permette alle applicazioni di attivare avvisi
nella status bar
• Activity Manager che gestisce il ciclo di vita delle applicazioni
Android Features 1/5
•
•
•
Set di Layout
- VGA
- 2D Graphics
- 3D Graphics basate sulle specifiche OpenGL ES 2.0
- Layout tradizionali per smartphone
Storage
- SQLite
Connectivity
- GSM/EDGE
- IDEN
- CDMA
- EV-DO
- UMTS
- Bluetooth
- Wi-Fi
- LTE
- WiMAX
Android Features 2/5
• Messaging
- SMS
- MMS
• Web browser
- Utilizza WebKit come motore di rendering e V8 Chrome per il
motore Javascript
• Java support
- Si possoo scrivere applicazioni in Java, ma Android non ha una Java
Virtual Machine e quindi il bytecode non sarà interpretato, e quindi
eseguito. E' necessario ricompilare il bytecode Java in un eseguibile
Dalvik, che sarà eseguito dall'apposita virtual machine. Dalvik è una
virtual machine progettata per Android ed ottimizzata per sistemi
alimentati a batteria con limitata memoria e CPU. Il supporto a
J2ME è offerto grazie a terze parti come J2ME MIDP Runner.
Android Features 3/5
•
•
Media support
- H.263, H.264
- MPEG-4 SP
- AMR, AMR-WB
- AAC, HE-AAC
- MP3
- MIDI
- Ogg Vorbis
- WAV
- JPEG,PNG,GIF,BMP
Streaming media support
- RTP/RTSP streaming (3GPP PSS, ISMA)
- HTML progressive download (HTML5 <video> tag)
- Adobe Flash Streaming (RTMP)
- Apple HTTP Live Streaming
- Microsoft Smooth Streaming
- Adobe Flash HTTP Dynamic Streaming
Android Features 4/5
• Multi-touch
- Supporto nativo al Multi-touch
• Bluetooth versione 2.2+ di Android
- A2DP, AVRCP
- Trasferimento file OPP
- Accesso alla rubrica PBAP
- Invio contatti tra dispositivi
• Videocalling ( non supportata su tutti i
dispositivi )
• Multitasking
Android Features 5/5
• Voice based features
- ricerca Vocale
- comandi Vocali (supportati dalla versione 2.2)
• Tethering
- supportato ufficialmente dalla versione 2.2 , permettendo al
dispositivo dotato di Android di funzionare da wireless/wired
hotspot.
Ambiente di sviluppo
•
•
•
•
•
Android API
Development tools
Emulatore Android
Dalvik Debug Monitoring Service (DDMS)
Documentazione ed esempi
Creazione, compilazione, emulazione
• Un’applicazione è descritta da tre tipi di file:
– Codice Java
– Risorse statiche XML
– Manifest.xml
Esempio
Ciclo di vita di una applicazione 1/2
Le applicazioni running sono gestite in una gerarchia:
• foreground process (priorità critica)
• visible process (alta priorità)
• service process (bassa priorità)
• background process
• empty process
Le Activity sono mantenute in un activity stack (LIFO)
Un activity ha tre stati: running o active, paused, stopped
Ciclo di vita di una applicazione 2/2
Pubblicare un'applicazione
Iscriversi al market come sviluppatore (25€)
• Dare un numero di versione
• Firmare il pacchetto
• Pubblicare l'applicazione
• Google trattiene il 30% degli incassi
Android oltre il mobile
People of Lava Sweden
è il primo produttore di TV ad
utilizzare Android 1.5 su i
suoi apperecchi
Conclusioni
•
•
•
•
Ambiente di sviluppo open source
L'architettura è disegnata pensando anche allo sviluppatore
E’ possibile testare l’applicazione sul device
Lo sviluppo è semplice e veloce