Corso di Laurea in Ingegneria
Informatica, Elettronica e delle Telecomunicazioni
SISTEMA OPERATIVO ANDROID
Interfacce di comunicazione
Sensori
Android@Home
Google TV
Giuseppe Loseto
Corso di Sistemi Operativi
A. A. 2012 - 2013
Sistemi Operativi
A.A. 2012/13
Interfacce di comunicazione
DEI - Politecnico di Bari
USB
Wi-Fi
Bluetooth
NFC (Near-Field Communication)
NFC
Bluetooth
RFID compatible
ISO 18000-3
active
Standardisation body
ISO/IEC
Bluetooth SIG
Network Standard
ISO 13157 etc.
IEEE 802.15.1
Network Type
Point-to-point
WPAN
Cryptography
not with RFID
available
Range
< 0.2 m
~100 m (class 1)
Frequency
13.56 MHz
2.4–2.5 GHz
Bit rate
424 kbit/s
2.1 Mbit/s
Set-up time
< 0.1 s
<6s
Power consumption
< 15mA (read)
varies with class
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
DEI - Politecnico di Bari
Interfacce di comunicazione:
USB
Android supporta differenti periferiche e accessori USB attraverso due modalità:
USB accessory mode
L’hardware USB esterno opera come host USB. Questi dispositivi devono essere
compatibili con Android accessory communication protocol.
Es: docking stations, card readers.
USB host mode
Il dispositivo Android opera come host. Questi dispositivi possono interagire
direttamente con applicazioni Android.
Es: videocamere digitali, tastiere, controller di gioco.
Quando un dispositivo Android è in
modalità USB host, esso alimenta il
bus ed enumera i dispositivi USB
collegati.
La modalità host USB è supportata
in Android 3.1 e superiori.
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
DEI - Politecnico di Bari
Android Open Accessory
Development Kit
permette di integrare dispositivi Android (al momento solo via Usb e
Bluetooth) con qualsiasi altro dispositivo che implementi a bordo la logica di
interfaccia definita
un dispositivo USB (Android USB accessory) può interagire con un dispositivo
Android in modalità accessory”
i dispositivi Android USB sono progettati specificamente per connettersi
sfruttando l’Android accessory protocol
l’ADK prevede un’implementazione basata su piattaforma Arduino
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
DEI - Politecnico di Bari
Interfacce di comunicazione:
Wi-FI
Android 4.0 (API level 14) permette ai dispositivi di connettersi direttamente
tra loro via Wi-Fi, senza un access point intermedio
Usando le WiFi Direct API, è possibile scoprire e connettersi ad altri dispositivi
che supportano il Wi-Fi Direct
Connessione veloce su distanze maggiori rispetto a Bluetooth
Utile per le applicazioni che condividono molti dati tra utenti, quali giochi
multiplayer o applicazioni per la condivisione di audio/video/immagini
Le Wi-Fi Direct API sono composte da:
I metodi che permettono di identificare, inviare richieste e connessioni ai peer
definite nella classe WifiP2pManager.
I listeners che gestiscono le notifiche derivanti da chiamate a metodi
WifiP2pManager. Quando si chiamano i metodi WifiP2pManager, ogni metodo può
ricevere uno specifico listener come parametro.
Gli intents che rilevano eventi specifici Wi-Fi, come la perdita di una connessione
cade o la rilevazione di un nuovo peer.
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
DEI - Politecnico di Bari
Interfacce di comunicazione:
Bluetooth
Android supporta lo stack Bluetooth, che permette a differenti dispositivi di
scambiare dati con una comunicazione senza fili.
A livello applicativo è possibile utilizzare Bluetooth sfruttando le Android
Bluetooth APIs. Queste APIs permettono di stabilire una connessione pointto-point o multipoint.
Attraverso le Bluetooth APIs, un’applicazione Android può eseguire le
seguenti operazioni:
Effettuare scansioni alla ricerca di altri dispositivi Bluetooth
Interrogare l’adattatore Bluetooth locale per creare associazioni con dispositivi
Bluetooth rilevati
Stabilire una connessione attraverso un servizio di service discovery
Trasferire dati da/verso altri dispositivi
Gestire connessioni multiple
Due tipologie di permessi per l’utilizzo delle APIs nelle applicazioni
BLUETOOTH: richiedere o accettare una connessione, trasferire dati;
BLUETOOTH_ADMIN: effettuare il device discovery, modificare le impostazioni Bluetooth
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
DEI - Politecnico di Bari
Interfacce di comunicazione:
NFC
Near Field Communication (NFC) è una tecnologia a corto raggio senza fili (<4 cm o
meno per avviare una connessione)
NFC permette di condividere piccole quantità di dati tra un tag NFC e un dispositivo
Android o tra due dispositivi Android.
I tag possono variare in complessità.
Tag semplici sono abilitati sono per operazioni di lettura/scrittura.
Tags più complessi possono integrare micro-dispositivi per l’esecuzione di codice sul tag.
I dati memorizzati nel tag seguono lo standard NFC noto come NDEF (NFC Data Format
Exchange).
Utilizzi principali di NFC su Android:
Leggere dati NDEF da un tag NFC
Inviare messaggi NDEF tra due dispositivi Android
Anche per NFC occorre abilitare il relativo permesso
<uses-permission android:name="android.permission.NFC" />
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
DEI - Politecnico di Bari
Interfacce di comunicazione:
NDEF Record
I dati in formato NDEF sono incapsulati in messaggi detti NdefMessage contenenti uno
o più NdefRecord.
Ogni NDEF record è composto da header e payload
Identifier: ID univoco del record.
Type: descrive il tipo record.
Payload: il dato reale da leggere o scrivere.
NB: Poiché un messaggio NDEF può contenere più record NDEF non è detto che l’intero
payload sia nel primo record NDEF del messaggio.
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
Sensori (1/3)
DEI - Politecnico di Bari
Monitorare i cambiamenti nella posizione del dispositivo e il movimento
Determinare le condizioni ambientali, quali temperatura, pressione, umidità e
livello di illuminazione
È possibile accedere a questi sensori e acquisire i dati grezzi del sensore
mediante l’Android Sensor Framework
Classi e interfacce che consentono di:
Determinare quali sensori sono disponibili su un dispositivo
Determinare le capacità di un singolo sensore, come ad esempio il suo range
massimo, produttore, requisiti di alimentazione e risoluzione
Acquisire dati grezzi del sensore e definire il rate minimo a cui si acquisiscono i
dati
Attivare e disattivare il listener che identifica i cambiamenti del sensore
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
Sensori (2/3)
DEI - Politecnico di Bari
L’Android sensor framework è una parte del package android.hardware ed include le
seguenti classi ed interfacce:
SensorManager
Questa classe contiene i metodi per per accedere ad un sensore ed acquisire dei
dati. Contiene inoltre delle costanti di riferimento utili per modificare le impostazioni
per le operazioni di acquisizione.
Sensor
Crea un’istanza di un sensore specifico.
SensorEvent
Classe utilizzata per definire un evento generato da un sensore. Ogni evento
include i dati grezzi letti dal sensore, il tipo di sensore che lo ha generato,
l’accuratezza dei dati ed il timestamp associato all’evento.
SensorEventListener
Usato per ricevere delle notifiche quando i dati provenienti dal sensore o la sua
accuratezza cambiano.
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
Sensori - Esempio
DEI - Politecnico di Bari
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
public void onSensorChanged(SensorEvent event)
{
// alpha is calculated as t / (t + dT)
// with t, the low-pass filter's time-constant
// and dT, the event delivery rate
final float alpha = 0.8;
gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];
linear_acceleration[0] = event.values[0] - gravity[0];
linear_acceleration[1] = event.values[1] - gravity[1];
linear_acceleration[2] = event.values[2] - gravity[2];
}
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
Sensori (3/3)
DEI - Politecnico di Bari
Sensor
Type
Description
TYPE_ACCELEROMETER
Hardware
Measures the acceleration force in m/s2 that is applied to a device on all three physical axes.
TYPE_AMBIENT_TEMPERATURE
Hardware
Measures the ambient room temperature in degrees Celsius (°C).
TYPE_GRAVITY
Software or
Hardware
Measures the force of gravity in m/s2 that is applied to a device on all three physical axes (x,
y, z).
TYPE_GYROSCOPE
Hardware
Measures a device's rate of rotation in rad/s around each of the three physical axes (x, y, and
z).
TYPE_LIGHT
Hardware
Measures the ambient light level (illumination) in lx.
TYPE_LINEAR_ACCELERATION
Software or
Hardware
Measures the acceleration force in m/s2 that is applied to a device on all three physical axes
(x, y, and z), excluding the force of gravity.
TYPE_MAGNETIC_FIELD
Hardware
Measures the ambient geomagnetic field for all three physical axes (x, y, z) in μT.
TYPE_ORIENTATION
Software
Measures degrees of rotation that a device makes around all three physical axes (x, y, z).
TYPE_PRESSURE
Hardware
Measures the ambient air pressure in hPa or mbar.
TYPE_PROXIMITY
Hardware
Measures the proximity of an object in cm relative to the view screen of a device. This sensor
is typically used to determine whether a handset is being held up to a person's ear.
TYPE_RELATIVE_HUMIDITY
Hardware
Measures the relative ambient humidity in percent (%).
TYPE_ROTATION_VECTOR
Software or
Hardware
Measures the orientation of a device by providing the three elements of the device's rotation
vector.
TYPE_TEMPERATURE
Hardware
Measures the temperature of the device in degrees Celsius (°C). This sensor implementation
varies across devices and this sensor was replaced with the TYPE_AMBIENT_TEMPERATURE
sensor in API Level 14
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
Android Activity Recognition
DEI - Politecnico di Bari
API che permettono al sistema di riconoscere se l’utente è fermo o in
movimento
Presentate nel corso del Google I/O 2013, fanno parte delle Google Play
services APIs
Funzionalità non presenti nativamente nella piattaforma Android
Aggiungono una serie di servizi aggiuntivi implementati da Google
Non viene utilizzato il GPS, ma unicamente i sensori pre-installati nel
dispositivo, come l’accelerometro
Anche per questa funzionalità occorre abilitare il relativo permesso
<uses-permission android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION" />
Developer Guide:
http://developer.android.com/training/location/
activity-recognition.html
HTML - Floriano Scioscia
Sistemi Operativi
A.A. 2012/13
DEI - Politecnico di Bari
Android@Home
Presentato durante Google I/O 2011
Architettura per ambienti domestici basata su device
Android connessi con nuovi servizi Google
Internet of Things vision, un trend in rapida evoluzione in
cui gli oggetti del mondo reale sono collegati ad Internet
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
Project Tungsten
DEI - Politecnico di Bari
Sistema Hi-Fi basato su Android OS
Comandabile a distanza attraverso un tablet Android
Supporto a NFC (Near-Field Communication)
Collegamento alla libreria cloud di Google Music (beta) e
riproduzione in streaming di contenuti musicali
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
Android-based Devices
DEI - Politecnico di Bari
Samsung Zipel Smart Oven
forno a microonde utilizzabile attraverso un’applicazione dedicata
per smartphone Android
presentato durante CES 2012
In futuro le fotocamere digitali Samsung potrebbero
utilizzare un sistema operativo basato su Android
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
Google TV
DEI - Politecnico di Bari
piattaforma Smart TV sviluppata da Google, Intel, Sony e Logitech
inizialmente lanciato il 6 ottobre 2010, con i dispositivi ufficiali Sony e
Logitech
integra Android e la versione Linux del browser Google Chrome per
creare overlay interattivi
add-on per SDK Android, che permette a tutti gli sviluppatori di creare
applicazioni per la Smart TV Google
nuovi partner tra cui LG e Samsung
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
Google TV – Version History
DEI - Politecnico di Bari
Version
Release Date
Android Version
Devices Supported
Version Improvements
2.1
2010-10
2.1
Included in Sony
Internet TV devices.
Original version.
2.1
Update 1
2011-10-23
2.1
For Sony Internet TV
devices NSZ-GT1, NSX24GT1, NSX-32GT1,
NSX-40GT1 and NSX46GT1.
3.1
2011-12-12
3.1
Released for Logitech
Revue devices
Updated to Android 3.1
For Sony Internet TV
devices NSZ-GT1, NSX24GT1, NSX-32GT1,
NSX-40GT1 and NSX46GT1.
Improved stability and performance of the
Android operating system. Update the
system to Android 3.1 platform. Adds
Bluray 3D support for the NSZ-GT1 device.
Updates in Chrome and Flash.
3.2
2012-03-06
3.2
3.2
2nd Gen
2013-05-15
4.2.2
---
Android – Giuseppe Loseto
Announced at Google I/O 2013
Sistemi Operativi
A.A. 2012/13
DEI - Politecnico di Bari
Google TV Internet Player
from Sony (NSZ-GS7)
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
Google TV
DEI - Politecnico di Bari
Android Apps
applicazioni basate su Android
Web Apps
siti web ottimizzati per Google TV
Multi-screen Apps
utilizzano uno smartphone Android come controller
sfruttano i protocolli
Pairing Protocol, usato per il riconoscimento tra client e server su una
rete locale
Anymote Protocol, permette ad applicazioni in esecuzione su
dispositivi remoti di inviare comandi (eventi) a dispositivi Google TV
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
Android per l’Automotive
DEI - Politecnico di Bari
Dispositivi per In-vehicle Infotainment (IVI) basati su
Android
Collaborazione tra Google e General Motors
Volt, la nuova berlina "elettrica" di Chevrolet potrà contare
su una stretta integrazione fra il sistema digitale di bordo
"OnStar" e i dispositivi mobile basati su Android
l'utente-guidatore potrà indicare il luogo di destinazione e ricevere
istruzioni dettagliate visualizzate su mappe fornite da Google
Android – Giuseppe Loseto
Sistemi Operativi
A.A. 2012/13
Riferimenti
DEI - Politecnico di Bari
NFC Forum Specifications
http://www.nfc-forum.org/specs/
How to develop for Google TV?
https://developers.google.com/tv/?hl=it-IT
Android – Giuseppe Loseto