Sistemi Mobili e Wireless Android Primi passi Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it
Ambiente di sviluppo L'ambiente di sviluppo consigliato per la programmazione Android è Eclipse con l'adt plugin Schermata d'esempio Eclipse (codice al centro, progetti e relativi file a sinistra, struttura progetto attualmente attivo a destra, log vari in basso) 2
ADT plugin L'ADT plugin aggiunge estensioni all'ambiente di sviluppo Eclipse, facilitando la creazione ed il debug delle applicazioni Android Fornisce un wizard per la creazione di tutti i file necessari ad un'applicazione Android Consente l'accesso dall'ide ad altri tool di sviluppo Android (screenshot, debug, informazioni sui processi, ) Automatizza e semplifica il processo di build delle applicazioni Fornisce editor di codice specifici per i diversi file XML Android (manifest, risorse,...) Facilita la creazione di file APK firmati per la distribuzione 3
Creare un'applicazione: esempio In Eclipse, selezionare File > New > Android Application Project (oppure File > New > Project... > Android > Android Application Project) 4
Creare un'applicazione: esempio Specificare le informazioni richieste nelle finestre che appaiono: Nome dell'applicazione Nome del progetto Nome del package (deve essere diverso da quello usato da altre app se volete che queste possano essere usate sullo stesso dispositivo) Lasciare il resto dei valori di default Lasciare i valori di default nelle finestre successive 5
Creare un'applicazione: esempio Layout di Eclipse al termine della creazione del progetto 6
Creare un'applicazione: esempio Lanciare l'applicazione tramite l'icona (o menu) Run Se appare lo schermo bloccato, sbloccare trascinando il lucchetto per poter vedere l'applicazione attiva 7
Struttura di un'applicazione Lo scheletro di un'applicazione Android è costituito da un insieme di file creati automaticamente dall'adt codice di activities, services, codice automatico generato dall'adt librerie Android risorse (icone, interfaccia, stringhe,...) file manifest 8
Struttura di un'applicazione Ogni applicazione deve avere un file AndroidManifest.xml nella directory radice Il file manifest contiene informazioni essenziali sull'applicazione che il sistema Android deve conoscere prima di poter avviare l'applicazione stessa 9
Struttura di un'applicazione In particolare, il file manifest: indica il package Java dell'applicazione che serve come identificatore unico descrive i componenti dell'applicazione (activities, services, ) indica le classi che implementano ciascuno dei componenti descrive le capacità dei componenti dichiara quali permessi l'applicazione deve ottenere per accedere ad alcune parti del sistema e interagire con altre applicazioni dichiara quali permessi altre applicazioni devono avere per poter interagire con l'applicazione dichiara il livello minimo delle API Android che l'applicazione richiede indica le librerie che l'applicazione richiede 10
Struttura di un'applicazione File manifest dell'applicazione creata in precedenza Ogni activity presente in un'applicazione deve essere dichiarata nel manifest La classe che contiene il codice dell'activity (l'attributo android:name è l'unico obbligatorio negli elementi <activity>) Intent filter che specifica come questa sia l'activity principale che viene lanciata quando si avvia l'applicazione 11
Struttura di un'applicazione Un file manifest più complesso Questa applicazione è costituita da due activity, un service ed un broadcast receiver, usa la libreria Google Maps e richiede l'accesso a Internet 12
Emulatore Android L'emulatore Android, incluso nell'sdk, simula la maggior parte delle funzionalità di un dispositivo Android hardware 13
Emulatore Android L'emulatore sfrutta delle immagini su disco per il suo funzionamento kernel sistema Android ramdisk dati utente ed sdcard Le immagini vengono create al momento della creazione di un AVD a partire da immagini di default 14
Emulatore Android Attivando diversi emulatori contemporaneamente, è possibile farli comunicare tra loro 15
Emulatore Android Limitazioni dell'emulatore Nessun supporto per telefonate vere. E' però possibile effettuare telefonate simulate. Nessun supporto per connessioni USB Nessun supporto per determinare il livello di carica della batteria e lo stato di carica AC Nessun supporto per il Bluetooth Nessun supporto per determinare inserimento/estrazione SD card Nessun supporto per determinare lo stato delle connessioni... 16
DDMS Alcune interazioni con dispositivi/emulatori Android possono avvenire attraverso i tool presenti nella prospettiva DDMS Controllo processi Controllo telefonia e GPS Controllo thread, memoria e file Log 17
DDMS Attraverso DDMS, è possibile: gestire il debug delle applicazioni trasferire file tra dispositivi/emulatori e desktop (File Explorer tramite drag&drop o appositi pulsanti) simulare stati speciali del dispositivo (stato telefonico, tecnologie di comunicazione, ) simulare chiamate telefoniche ed SMS inviare dati GPS di test controllare gestione della memoria, dei processi, etc. 18