+Tools
PROGETTARE
CON I DSP
TMS320F28
di MAURIZIO DI PAOLO EMILIO
Negli ultimi anni abbiamo assistito ad una vera e propria rivoluzione
tecnologica incentrata principalmente sulla mobilità che ha portato alla
Alcuni accorgimenti
per una scheda
nascita e allo sviluppo di nuovi settori di mercato in fortissima crescita. Il
che funzioni
settore alla testa di questa rivoluzione è sicuramente quello dei telefoni
al primo colpo
cellulari, ed in particolare quello dei dispositivi
conosciuti come smartphone
L
a vera sfida innovativa nel campo
della telefonia mobile non si gioca
più solo sull’hardware dei telefoni, ormai
giunti a livelli altissimi di prestazioni e
funzionalità, ma sui sistemi operativi
che li animano. L’attenzione dei principali produttori di tecnologie mobili, infatti, si è spostata prevalentemente sull’esperienza-utente, sulla semplicità
delle interfacce e sull’ottimizzazione
dei software per un uso in mobilità.
Android è un sistema operativo per
dispositivi mobili costituito da uno
stack software che include un sistema operativo di base, i middleware per le comunicazioni e le applicazioni di base. Caratteristiche
Figura 1: architettura di Android.
13
FOCUS ON
17
SKILLS
33
INSIDE
40
TOOLS
6
TIPS’N TRICKS
3
MARKET NEWS
29
SPOTLIGHT
56
EVENTS ZAPPING
48
ANALOG
ABBONAMENTO
Elettroshop - Comfile
principali di Android sono la struttura
open source (escluse alcune versioni
intermedie), e il suo basarsi su kernel Linux. La piattaforma usa il database
SQLite, la libreria dedicata SGL per la
grafica bidimensionale (invece del classico server X delle altre distribuzioni
linux) e supporta lo standard OpenGL
ES 2.0 per la grafica tridimensionale.
Le applicazioni vengono eseguite tramite la Dalvik virtual machine, una macchina virtuale adattata per l’uso su dispositivi mobili. Android è fornito di
una serie di applicazioni preinstallate:
un browser, basato su WebKit, una rubrica e un calendario. Le applicazioni
sono la forma più generica per indicare
software installabili su Android. Dato
che su Google Play tali applicazioni
vengono definite “apps“, questo termine è ampiamente diffuso nella comunità di utilizzatori. Per motivi di sicurezza informatica, le apps possono
essere scaricate e utilizzate mediante un
servizio di distribuzione fidato, quindi un
sito internet che fornisca sia l’applicazione stessa che le relative certificazioni (software). Per venire incontro alle necessità degli sviluppatori, è stata
però prevista la possibilità di disattivare il controllo di tali certificati, attraverso una voce presente nel menu “Im-
13
FOCUS ON
17
SKILLS
33
INSIDE
40
TOOLS
6
TIPS’N TRICKS
3
MARKET NEWS
29
SPOTLIGHT
56
EVENTS ZAPPING
48
ANALOG
ABBONAMENTO
postazioni” (Android versione 2.2). Tutto iniziò un pò di tempo fa quando Google decise di adottare il linguaggio di
programmazione Java per lo sviluppo
delle applicazioni Android e di abbandonare la JVM (Java Virtual Machine) e
la JME (Java Mobile Ecosystem) a favore di un alternativa la Dalvik Virtual
Machine. Ma che cos’è una VM, una
virtual machine? E’ un software che
può essere un sistema operativo, un
emulatore o una virtualizzazione hardware completa. In sostanza, e in poche
parole, vi possono essere due tipi di
Virtual Machine: la System VM e la
Process VM ove VM sta per Virtual Machine. Nel primo caso, la VM supporta
l’esecuzione di un sistema operativo
completo (conosciuta anche come Hardware Virtual Machine), mentre nel secondo caso la VM supporta l’esecuzione di processi singoli.
SOFTWARE & LIBRERIE
Android è un sistema operativo open
source per dispositivi mobili, basato
sul kernel 2.6 di Linux, rivale decennale di Windows. A livello tecnico, la piattaforma open source di Android è un
set di sottosistemi software composto
da applicazioni Java, che vengono eseguite su uno speciale framework, basato
anch’esso su Java e orientato agli oggetti, a sua volta eseguito su un nucleo costituito da librerie Java eseguite
tramite la macchina virtuale Dalvik, specifica per dispositivi mobili, dotata di
compilatore just-in-time (JIT). Dalvik è una macchina virtuale, progettata da Dan Bornstein, dipendente Google, ed è uno dei componenti
di Android. È ottimizzata per sfruttare la poca memoria presente nei dispositivi mobili, consente di far girare
diverse istanze della macchina virtuale contemporaneamente e nasconde al
sistema operativo sottostante la gestione della memoria e dei thread. Dalvik è spesso associato alla Macchina
virtuale Java, anche se il bytecode con
cui lavora non è Java. Altre differenze
con la JVM tradizionale sono la mancata
gestione delle eccezioni. Dalla versione
2.2 include un compilatore Just In Time
per migliorare le prestazione della macchina virtuale. Diversi sono i componenti che compongono le librerie Android e sviluppate in linguaggio C: un
surface manager, un framework multimediale OpenCore, un sistema a database relazionali SQLite, API grafiche
3D OpenGL ES 2.0, un motore grafico e
di layout basato su WebKit, un motore
grafico SGL, SSL ed una libreria libc
Bionic, libreria standard per C basata in
gran parte su BSD. Il sistema operativo
Android è composto in tutto da 12 milioni di righe di codice che comprendono 3 milioni di righe XML, 2,8 milioni
di righe di C, 2,1 milioni di righe di Java
e 1,75 milioni di righe di C++.
ARCHITETTURA DI ANDROID
I componenti base dell’architettura di
Android sono:
Il sistema operativo
Le librerie native
Una Virtual machine
Le librerie Java
L’architettura di Android è distribuita
in vari livelli o layer dove quello inferiore offre un servizio al quello superiore
(Figura 1). Commentando l’immagine, al
livello più basso è presente il Kernel di
Linux nella versione 2.6. Questo livello
comprende vari driver per la gestione
delle diverse periferiche: dallo schermo
alla tastiera, dalla scheda di rete Wi-Fi
all’alimentazione. A un livello superiore
si trovano le librerie native sviluppate
nei linguaggi di programmazione C e
C++. Queste, tutte insieme rappresentano il cuore di Android e sono:
Il Surface Manager (in poche parole, il
componente che gestisce la visualizzazione grafica).
Il Media Framework (il componente che
gestisce i codec audio e video basato
sulla libreria open-source OpenCore).
SQLite, un DBMS relazionale che permette di registrare i dati in modo persistente sul dispositivo scritto in linguaggio C.
Il motore di rendering dei font FreeType.
LibWebCore ossia un browser-engine
basato sul browser open source WebKit
che può essere integrato in varie applicazioni. Le due librerie SGL e OPENGL
ES che gestiscono rispettivamente la
grafica 2D la prima e la grafica 3D la seconda. La libreria SSL che gestisce il
Secure Socket Layer.
La libreria Libc chiamata anche Bionic
libc che non è altro che un’implementazione della libreria standard C.
Le core library che permettono l’esecuzione delle applicazioni (versione dex
del runtime).
Al terzo livello verso l’alto è presente
l’APPLICATION FRAMEWORK (AF) co-
13
FOCUS ON
17
SKILLS
33
INSIDE
40
TOOLS
6
TIPS’N TRICKS
3
MARKET NEWS
29
SPOTLIGHT
56
EVENTS ZAPPING
48
ANALOG
ABBONAMENTO
vita delle applicazioni nel dispositivo.
Il Location Manager gestisce le informazioni relative alla localizzazione, in
pratica “serve” le applicazioni Location Board application o LBA.
La gestione degli eventi associati alle
applicazioni grafiche e il rendering è
possibile grazie al View System.
Il Notification Manager gestisce le informazioni di notifica tra il dispositivo e
l’utente.
Infine, al quarto livello troviamo le applicazioni vere e proprie che utilizzano
i livelli sottostanti appena descritti;. Tra
le applicazioni di esempio possiamo
citare la gestione dei contatti, la calcolatrice o la gestione delle chiamate.
stituito da una serie di componenti e
API che eseguono dei compiti di seguito descritti:
L’Activity Manager è uno degli strumenti fondamentali per mezzo del quale l’utente interagisce con l’applicazione.
Il Content Provider condivide le informazioni tra i vari processi, una sorta di
cartella condivisa.
Il Window Manager gestisce le finestre
delle varie applicazioni.
Il Telephony Manager consente la gestione di quelle funzionalità peculiari di
un telefono.
Il Resource Manager ha il compito preciso di ottimizzare le risorse.
Il Package Manager gestisce il ciclo di
Codice MIP 2826286
13
FOCUS ON
17
SKILLS
33
INSIDE
40
TOOLS
6
TIPS’N TRICKS
3
MARKET NEWS
29
SPOTLIGHT
56
EVENTS ZAPPING
48
ANALOG
ABBONAMENTO