SINTESI VOCALE APPLICATA NELL'IMPLEMENTAZIONE DI UN INTERLOCUTORE VIRTUALE PER SISTEMI ANDROID

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "SINTESI VOCALE APPLICATA NELL'IMPLEMENTAZIONE DI UN INTERLOCUTORE VIRTUALE PER SISTEMI ANDROID"

Transcript

1 UNIVERSITÀ POLITECNICA DELLE MARCHE FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica e dell'automazione SINTESI VOCALE APPLICATA NELL'IMPLEMENTAZIONE DI UN INTERLOCUTORE VIRTUALE PER SISTEMI ANDROID Relatore: Prof. Aldo Franco Dragoni Tesi di: Emanuele Cardelli Anno Accademico 2011/2012

2

3 Indice Generale Introduzione...5 Capitolo 1: Il Sistema Android Scelta del sistema 1.2 Breve storia di Android 1.3 Architettura 1.4 Componenti di un'applicazione 1.5 Scheduling della memoria centrale 1.6 Ciclo di vita di un'attività 1.7 Il file Manifest Capitolo 2: Sintesi Vocale Storia 2.2 Tecnologia 2.3 Diffusione dei sistemi VCD 2.4 Android.speech.tts Capitolo 3: Ambiente di Sviluppo Primi Passi 3.2 Virtual Device Manager 3.3 Strumento di disegno per layout xml 3.4 Prospettiva per gestire Device Reali 3.5 Divisione delle risorse Capitolo 4: Configurazione input e output dell'applicazione...31

4 Capitolo 5: Interprete VXML Standard VoiceXML 5.2 Librerie d'appoggio per la costruzione dell'interprete 5.3 Sincronizzazione I/O 5.4 Descrizione dell'interprete Capitolo 6: Conclusione e sviluppi futuri...43 BIBLIOGRAFIA...45 APPENDICE A: Codice dell'applicazione di test per l'input-output...46 APPENDICE B: Codice dell'interprete...50 APPENDICE C: Codice dell'applicazione definitiva...67

5 Introduzione Indice Io e il mio collega, Nicola Sturari, abbiamo scelto di incentrare il nostro tirocinio sullo sviluppo di un applicativo per dispositivi mobili al fine di poter vantare un'esperienza in questo settore in forte crescita. Volendo programmare qualcosa che potesse contemporaneamente rendere più accessibile e più comodo l'uso di alcune funzioni di Smartphone e affini, ci siamo dunque posti l'obiettivo di dar vita a un'applicazione vocale che non fosse fine a se stessa, ma andasse a costituire una base comune: un programma di appoggio sul quale chiunque, semplicemente costruendo un dialogo nel semplice linguaggio a markup VoiceXML, avrebbe potuto fondare una applicazione specifica in grado di sostenere un dialogo con l'utente. Per fare questo abbiamo iniziato studiando il sistema Android e le sue funzioni per poi arrivare alla configurazione dei sistemi di input e output sonori; dopodiché ci siamo informati sullo standard VoiceXML, abbiamo cercato un interprete Java che potesse essere implementato e, non trovandolo, ce ne siamo costruiti uno da noi. Questa tesi vuole ripercorrere l'esperienza vissuta dapprima esponendo lo studio teorico affrontato come il sistema Android e lo standard VoiceXML per poi passare a capitoli più pratici nel quale si illustra il modus operandi per mezzo del quale abbiamo ottenuto il risultato sperato. 5

6 Il Sistema Android Indice 1.1 Scelta del sistema Tra i sistemi disponibili la scelta è subito ricaduta su Android per via della sua forte presenza nel mercato e, soprattutto, grazie alla caratteristica di essere Open-Source: ambiente ideale per l'apprendimento. Abbiamo infatti trovato subito librerie, tutorial e strumenti di sviluppo disponibili gratuitamente per tutti i principali sistemi operativi Desktop. Data la natura del nostro progetto i sistemi per smartphone offrono un grande vantaggio: la recente moda di poter comandare il proprio telefono tramite il solo utilizzo della voce ha infatti concentrato grandi aziende sullo sviluppo dei sistemi di sintesi e riconoscimento vocale e dato che, grazie alla natura di Android, i programmi sono svincolati dai motori per la gestione dell'input-output audio, il nostro progetto non potrà che trarre passivamente beneficio dal vedere aumentare l'efficienza di questi ultimi. 6

7 1.2 Breve Storia di Android Android is not just a blueprint for the faraway future, but a complete platform that will give mobile operators, handset manufacturers, and developers everything they need to build innovative devices, software and services. We are committed to commercially deploy handsets and services using the Android Platform. -da openhandsetalliance.com Il sistema Android fu inizialmente scritto dalla Startup Android Inc., società aquisita nel 2005 da Google Inc., dopodichè i fondatori della prima azienda iniziarono lo sviluppo del sistema basandosi sulla versione 2.6 del celebre Kernel Linux finchè, nel 2007, la Open Handset Alliance presentò pubblicamente il sistema. L'alleanza consiste in un accordo tra molte compagnie tra cui possiamo trovare colossi come Google, Intel, Samsung, ebay, Telecom Italia, etc. il cui scopo è quello di sviluppare standard aperti per dispositivi mobili: Each member of the Open Handset Alliance is strongly committed to greater openness in the mobile ecosystem. Increased openness will enable everyone in our industry to innovate more rapidly and respond better to consumers demands. Our first joint project as a new Alliance is Android. Android was built from the ground up with the explicit goal to be the first open, complete, and free platform created specifically for mobile devices. -da openhandsetalliance.com Già una settimana dopo la presentazione di Android furono pubblicati librerie, emulatori, tutorial e strumenti di sviluppo per qualsiasi sistema basato su architettura x86 con Windows, Mac OS X o Linux. 7

8 L'anno seguente venne rilasciata la prima versione del sistema ma, come si può verificare dal grafico, questo iniziò ad essere commercialmente significativo dalla versione 2.0 Eclair rilasciata verso la fine del Le funzioni di sintesi e riconoscimento vocale non erano presenti in origine ma furono aggiunte nel 2009 con la versione 1.6. Ad Oggi Android è giunto alla versione 4 e Google Play, il negozio virtuale offerto dall'omonima azienda per la distribuzione delle applicazioni, contiene circa programmi. 8

9 1.3 Architettura Come già accennato, Android si basa sul Kernel Linux, questo è di tipo Monolitico e la compattezza e velocità che caratterizza tale tipologia di sistema è ideale per un dispositivo dalle risorse di calcolo limitate come un telefono, unito al fatto che Linux permette di modificare il Kernel senza dover essere ricompilato dando di fatto la possibilità ai singoli venditori di personalizzarlo e modificarlo adattandolo perfettamente alle caratteristiche di ogni proprio modello. Volendo dare una panoramica sull'architettura di Android, immediatamente sopra il kernel troviamo le principali librerie, anch'esse attinte dal mondo dell'open-source: Surface Manager: gestisce l'accesso alle funzioni del display e si occupa dei layout delle finestre; Media Framework: librerie per utilizzare i codec per i vari file multimediali; SQLite: DBMS implementato all'interno del sistema per gestire in maniera 9

10 estremamente efficiente basi di dati; OpenGL ES: versione per sistemi Embedded delle celebri librerie OpenGL atte alla costruzione di elementi grafici 2D e 3D; FreeType: insieme di fonts; WebKit: librerie per la navigazione internet utilizzate anche da Browser per sistemi Desktop come Google Chrome o Apple Safari; SGL: librerie grafiche di basso livello che lavora assieme a Surface Manager; SSL: librerie per il Secure Socket Layer; libc: implementazione delle basilari librerie del linguaggio C; Salendo troviamo l'application Framework che si occupa di compiti come la gestione delle finestre, lo scambio di informazioni tra processi, le funzionalità di telefonia e, in generale, i compiti basilari del sistema che vengono continuamente richiamati dalle applicazioni, costituenti l' ultimo livello del sistema. Merita particolare attenzione la Dalvik Virtual Machine: consiste, appunto, in una macchina virtuale progettata da Google per permettere l'esecuzione di programmi progettati in codice Java ma, a differenza della Java Vritual Machine, non esegue codice bytecode ma i file.class devono essere riconvertiti in.dex (Dalvik Executable) prima dell'installazione sul dispositivo. Questo perchè la Dalvik Virtual Machine è una VM Registered-Based, a differenza della Java che è Stack-Based: riusciamo a risparmiare in termini di numero di istruzioni in linguaggio bytecode a fronte di una compilazione più onerosa. Questa scelta è stata presa per via della scarsa capacità di memoria e calcolo presente nei telefoni rispetto i Personal Computer. 10

11 Questo schema spiega come avviene l'ottimizzazione del bytecode: The Dalvik optimizer does the following: For virtual method calls, replace the method index with a vtable index. For instance field get/put, replace the field index with a byte offset. Also, merge the boolean / byte / char / short variants into a single 32-bit form (less code in the interpreter means more room in the CPU I-cache). Replace a handful of high-volume calls, like String.length(), with "inline" replacements. This skips the usual method call overhead, directly switching from the interpreter to a native implementation. Prune empty methods. The simplest example is Object.<init>, which does nothing, but must be called whenever any object is allocated. The instruction is replaced with a new version that acts as a no-op unless a debugger is attached. Append pre-computed data. For example, the VM wants to have a hash table for lookups on class name. Instead of computing this when the DEX file is loaded, we can compute it now, saving heap space and computation time in every VM where the DEX is loaded. -da netmite.com 11

12 Nonostante le intrinseche differenze tra le virtual machine, tutta la riconversione del codice è trasparente al programmatore che può quindi utilizzare le normali librerie Java. Dalla versione di Android 2.2 la Dalvik VM implementa il Dalvik Just in time compiler che permette di aumentare le performance del bytecode traducendone parte in linguaggio C o C++ in fase di esecuzione e rendendo l'efficienza sempre più vicina ad un codice scritto interamente in linguaggio nativo, ma mantenendo comunque i vantaggi delle macchine virtuali. 1.4 Componenti di una applicazione I componenti sono i mattoni con cui viene costruita un'applicazione, sono indipendenti tra loro e svolgono ruoli ben definiti. Si dividono in 4 tipi: Attività : la documentazione ufficiale la definisce una singola e precisa cosa che l utente può fare. È la parte del programma che interagisce con l'utente, incaricata, quindi, di gestire input-output e, non obbligatoriamente ma nella maggior parte dei casi, presenta un'interfaccia grafica. Servizio: componente che agisce in background, destinato a compiere tutte le operazioni a lungo termine. Ad esempio un servizio potrebbe gestire l'aggiornamento di dati via internet o eseguire un brano musicale, comunque svolge ruoli che non richiedono l'interazione diretta dell'utente e che vengono eseguiti senza interrompere l'attività attuale. Content Provider: strumento tramite il quale i programmi gestiscono i file, gestisce l'accesso ad una directory centralizzata e sono pensati per permettere la comunicazione tra più applicazioni. Broadcast Receiver: viene utilizzato per intercettare un messaggio che si dirada in tutto il sistema come può essere il segnale di batteria quasi scarica. Spesso sfruttato come canale di comunicazione tra gli altri componenti. 12

13 Una peculiarità delle componenti di Android consiste nel fatto che un'applicazione può richiamare lo specifico componente di un'altra, ovviamente utilizzando il sistema come tramite perchè considerata un'operazione privilegiata. Attività, Servizi e Broadcast Receiver sono richiamati tramite l'oggetto intent, struttura dati che invia un messaggio asincrono a cui si possono legare informazioni extra, utile per gestire negli stessi comandi l'esecuzione di un componente e il passaggio dei dati utili. Gli intent possono essere espliciti o impliciti: nel primo caso si indica la precisa classe cui si fa riferimento mentre nel secondo si dichiara solitamente il tipo di azione (come ACTION_RECOGNIZE_SPEECH che indica l'azione di riconoscimento vocale) e il sistema, a seconda delle impostazioni del singolo utente, deciderà quale progamma lanciare per soddisfare la richiesta. Abbiamo sfruttato, nel nostro progetto, questa caratteristica per permettere al programma di essere indipendente dal sistema di riconoscimento e di sintesi: verranno sempre usati i motori vocali preferiti dall'utente poiché non si fa riferimento ai singoli ma al tipo di azione che deve essere eseguita. 1.5 Scheduling della memoria centrale Android è stato progettato per essere multitasking, l'obiettivo è riuscire a fornire all'utente un sistema che riesca a gestire contemporaneamente più applicazioni e poter passare da una all'altra rapidamente e prontamente, tutto questo sfruttando le potenzialità limitate di un telefono. Quando un processo viene chiuso in realtà rimane in esecuzione e mantiene i propri dati in memoria centrale. Finché quest'ultima è disponibile, la macchina riuscirà a mantenere tutti i processi in stato di running, dunque passare dall'uno all'altro consiste solamente nel riportare il secondo in primo piano a sfavore di quello accantonato. Nel momento in cui la memoria centrale scarseggia un sistema Desktop, tipicamente, 13

14 si avvale di un meccanismo di swap che sposta i dati dei processi meno importanti dalla Ram alla memoria di massa. In Android, una volta deciso il processo meno importante, si chiede al Kernel di forzarne la chiusura, conseguentemente le risorse vengono liberate in un tempo ridotto. Questo metodo non consente alle applicazioni che vengono chiuse nessuna azione, non possono quindi salvare il proprio stato per essere riprese in futuro, ma, per poter ricostruire anche programmi chiusi forzatamente dal Kernel nelle stesse condizioni in cui l'utente le aveva lasciate, ogni volta che una activity passa in background viene salvato il suo stato attraverso un oggetto Bundle: struttura dati delle librerie di Android in cui vengono salvate le informazioni più importanti sullo stato di esecuzione. In questo modo il sistema, in condizioni di scarse risorse, può liberare memoria senza nessun controllo tra i processi in background e senza ridare l'esecuzione al programma in modalità utente. Per poter gestire quei programmi che necessitano un esecuzione in background con questo meccanismo bisogna avvalersi dei componenti già pensati a tal scopo: si evita così che le applicazioni vengano forzatamente chiuse come le altre. Ad esempio se un'applicazione ha un Broadcast Receiver, una volta che intercetta il messaggio di sistema ha 10 secondi per gestirlo con la propria routine, scaduti i quali verrà riposta alla stessa priorità delle altre in background, con la possibilità di essere terminata. Questo metodo è molto efficiente ma quando c'è la necessità di avere operazioni in sottofondo con un tempo di esecuzione indeterminato si usano i Servizi: questo tipo di componente esegue delle operazioni in background a lungo termine ed è l'applicazione a controllarne l'avvio e il termine. In una situazione di scarsità di memoria, se non basta forzare l'uscita delle applicazioni standard si forza la chiusura anche dei processi contenenti servizi ma Android, tenendo conto della loro natura, cercherà di riattivarli appena possibile. Nel caso in cui si vogliano programmare dei servizi che necessitano di rimanere attivi, come la riproduzione di un brano musicale, si può classificare il servizio in stato di foreground, ovvero con la stessa priorità che ha l'activity con cui l'utente sta interagendo, a patto però che venga segnalato al cliente del sistema attraverso una 14

15 notifica: rimanendo nell'esempio del brano musicale, quando questi viene eseguito permane nella barra delle notifiche un'icona. 1.6 Ciclo di vita di un'attività In un dispositivo cellulare, rispetto un sistema Desktop, lo schermo è piccolo: per questo nel sistema Android solo un' Activity alla volta può interagire con l'utente, ovvero occupare lo schermo. L'attività in primo piano è quella che ha maggior priorità e, come già spiegato, se ha bisogno di una maggiore quantità di memoria centrale vengono terminate quelle in sottofondo in favore della prima. Come si può osservare dall'immagine a fianco, la vita di un'activity è scandita da 7 stati: oncreate(bundle savedinstancestate): è la funzione richiamata alla creazione dell'attività, ha come argomento l'oggetto Bundle in cui sono salvate le informazioni sullo stato d'esecuzione, inizialmente è null; onstart(): chiamata quando l'attività sta per ottenere il controllo dello schermo, quindi la priorità d'esecuzione; onrestart(): si attiva se l'attività sta per essere richiamata dopo essere stata 15

16 fermata; onresume(): eseguito quando l'attività sta per iniziare l'interazione con l'utente; onpause(): segnala che non si sta più interagendo con l'utente; onstop(): chiamato quando l'attività perde il possesso dello schermo; ondestroy(): eseguito quando l'attività sta per essere terminata. Grazie alla programmazione ad oggetti, il programmatore può sovrascrivere una o più di queste funzioni, attraverso un metodo detto Override, già presenti nella classe Activity per poter ottenere i propri scopi. Comunque è fortemente consigliato lasciare all'inizio delle funzioni la routine originale, situazione che si può ottenere semplicemente con il comando super.nome_funzione; infatti in Java il comando super è una parola chiave che indica il costruttore della classe madre. È infine importante osservare che quando l'applicazione deve cambiare orientamento, ad esempio perché l'accelerometro interno al dispositivo indica al sistema che l'utente ha ruotato lo stesso, l'attività viene completamente distrutta e ricostruita, richiamando quindi l'oncreate(). Questa caratteristica faceva si che, se l'utente ruotava il dispositivo mentre la nostra applicazione era in attesa della stringa dal programma di riconoscimento vocale, venivano re-inizializzate le variabili (cosa che avviene normalmente nell'oncreate) con la conseguenza di avere una stringa vuota. Per ovviare al problema abbiamo dichiarato nel manifest (spiegato nel prossimo paragrafo) che l'activity richieda l'orientamento verticale, eliminando la possibilità di ruotarsi. 16

17 1.7 Il file Manifest Ogni applicazione Android utilizza un file xml, detto manifest, che contiene tutte le dichiarazioni dei propri componenti. es. Dichiarazione di un'activity: <manifest xmlns:android="http://schemas.android.com/apk/res/android" [...]> <application > <activity [.]>[..]</activity> </application> </manifest> All'interno dello spazio riservato ai singoli componenti è possibile specificare a quali tipi di azioni questo è in grado di rispondere attraverso un intent-filter al fine di rispondere velocemente ai già esposti intent impliciti. Un'altra informazione fondamentale è la richiesta dei permessi di cui il programma ha bisogno: come meccanismo di sicurezza, infatti, il sistema Android distingue molti tipi di azioni privilegiate come l'accesso alla memoria esterna, l'accesso a internet, la lettura dello stato del telefono ecc. ; tutto ciò che richiede un'applicazione viene mostrato all'utente al momento dell'installazione come misura di sicurezza ulteriore alle continue scansioni svolte dall'antivirus Bouncer utilizzato da Google. In questo file è anche indicata la versione minima di Android per poter eseguire l'applicazione (il sistema è pienamente retrocompatibile, basta dichiarare il minimo) e altri meta-dati utili come l'orientamento dello schermo, il nome dell'applicazione, l'icona ecc.. 17

18 Sintesi Vocale Indice 2.1 Storia Con Sintesi Vocale si intende l'azione di riprodurre la voce umana attraverso congegni artificiali. Le applicazioni di una simile tecnologia sono ampie: può essere utilizzata per permettere la lettura di testi a persone con problemi di vista, per dare ad un programma informatico la facoltà di parlare attraverso gli altoparlanti di un supermercato, per poter controllare tutte le funzioni del proprio telefono mentre si guida senza distogliere lo sguardo dalla strada e molto ancora. L'uomo ha concepito l'idea di sintesi vocale molto prima dell'avvento dell'informatica: già nel X secolo troviamo coraggiosi tentativi meccanici pensati a tal scopo. Nel 1779 Christian Kratzenstein riuscì a costruire un modello in grado di riprodurre le vocali e pochi anni dopo Wolfgang von Kempelen, grazie all'introduzione di elementi ispirati a labbra e lingua, produsse una macchina capace anche di esprimere consonanti. Joseph Faber nel 1846 creò Euphonia, sintetizzatore in grado di riprodurre persino l'inno nazionale inglese. I dispositivi di sintesi basati sull'elettronica iniziarono a vedere la luce grazie ai Bells Labs che, negli anni trenta, svilupparono il Vocoder: un sintetizzatore elettronico basato su input da tastiera. 18

19 2.2 Tecnologia Generalmente si divide il processo di text-to-speech, ovvero la conversione di testo in onde sonore, in due fasi: La prima, detta Front-End, consiste in una analisi del testo che normalizza tutto (numeri, simboli, etc.) per poi convertirli in fonemi dividendoli logicamente per periodi e proposizioni. La seconda, detta Back-End converte i fonemi ottenuti in suono. Le tecniche attualmente utilizzate per la seconda fase sono principalmente due: la sintesi concatenativa e la sintesi basata sulle regole. La differenza tra le due è sostanziale: la prima utilizza dei campioni di voce umana pre-registrati mentre la seconda genera di per se le forme d'onda da riprodurre. La sintesi concatenativa può essere effettuata memorizzando in un database un'enorme quantità di registrazioni che comprendano singole lettere, sillabe, parole che gli algoritmi di selezione andranno a scandire continuamente per formare le frasi. Possiamo suddividere questa tipologia di TTS per il numero di fonemi memorizzati: utilizzando fonemi doppi, ad esempio, rispetto un sistema che ne ha solo di singoli, la qualità sarà maggiore perché l'operazione di incollare le piccole serie di lettere si presenta meno frequentemente ed è proprio questo fenomeno a generare i tipici disturbi che fanno sembrare la voce scattosa e poco comprensibile. D'altro canto gestire un numero molto più vasto di registrazioni genera una quantità considerevolmente maggiore di combinazioni delle stesse, rendendo il calcolo della composizione della frase un processo più esoso e richiedendo una memoria di grandi 19

20 dimensioni. Volendo estremizzare questo concetto un sintetizzatore vocale sarebbe perfetto se possedesse un database con tutte le proposizioni possibili, numero che, essendo infinito, richiederebbe una quantità infinita di memoria e potenza di calcolo. Ciò che ho intuitivamente chiamato incollare è in realtà una procedura fondamentale dei sistemi TTS chiamata smoothing : dovendo generare una frase componendo insieme tanti piccoli spettri vocali bisogna ridurre il più possibile la differenza tra le loro estremità in modo che non si formi uno stacco udibile. Per ovviare al problema alcuni sintetizzatori utilizzano un'elaborazione digitale per costruire la frazione di congiunzione tra due fonemi; altri utilizzano un secondo database contenente i difoni ovvero tutte le possibili transizioni fra suoni diversi. La sintesi concatenativa è la tecnica che assicura una maggior naturalezza del parlato perché la voce registrata è autentica, anche se può essere incomprensibile se l'algoritmo non riesce ad eseguire uno smoothing di qualità. La sintesi basata sulle regole sfrutta dei modelli acustici per generare forme d'onda e modularne i parametri. La voce risulta molto meno naturale presentando un tipico suono metallico ma è più intellegibile perchè non presenta le nette differenze tra sillabe che affliggono la sintesi concatenativa; inoltre richiede poca memoria e potenza di calcolo: è quindi indicata per sistemi portatili o embedded in cui le potenzialità sono limitate. 2.3 Diffusione dei sistemi VCD Con l'acronimo VCD si indica voice commanded device, ovvero tutti i dispositivi in grado di proporre all'utente un interfaccia di controllo puramente basata sul dialogo. Questa modalità di comando si sta, col tempo, ampliando e migliorando: nei pù recenti sistemi operativi Desktop troviamo già inserita questa funzionalità: per esempio la casa Microsoft ha implementato da Windows Vista in poi un software che permette 20

21 all'utente di controllare il sistema, gestire file, scrivere documenti e spedire solamente con l'uso della voce. Un altro ambito che merita citazione è l'automobilismo: esistono già sistemi che permettono di eseguire i compiti più basilari, come rispondere alle telefonate o cambiare musica, attraverso un sistema vocale, senza distogliere l'attenzione e le mani del conducente. Ford Sync ne è un ottimo esempio: si tratta di un programma integrato in alcune autovetture che si appoggia su un sistema operativo embedded della Microsoft pensato per macchine: Windows Embedded Automotive. Un veicolo dotato di questo programma attualmente può: Informare il conducente sullo stato del veicolo; Controllare la navigazione GPS con la possibilità di conoscere il traffico e informazioni di vario genere; Collegarsi ad uno smartphone tramite il quale effettuare chiamate oppure aprire ed utilizzare applicazioni; Collegarsi in via remota ad un computer fisso, modificare e stampare documenti; e altro ancora. Per quanto strabiliante, il campo di maggior utilizzo, e quindi che da più spinta allo sviluppo, rimane quello degli Smartphone: tutte le più grandi ditte hanno investito e stanno investendo nell'interazione vocale; Android ha Pico TTS e molti altri sul market, Windows Phone ha Speech, IOS ha Siri e anche BlackBerry OS offre funzioni simili. Tutti quanti consentono già funzioni basilari come effettuare chiamate o scrivere messaggi e alcuni, come Android, permettono già di effettuare 21

22 ricerche su internet, scrivere , avviare e controllare la navigazione gps, controllare la riproduzione di brani musicali, etc. 2.4 Android.speech.tts Android.speech.tts è la classe delle API Android che contiene tutto ciò che serve per controllare l'esecuzione di una sintesi vocale. La classe è indipendente dal sintetizzatore utilizzato, che sia Pico TTS (quello di default) o uno qualunque acquistato dal market. Prima di tutto offre dei metodi per verificare se è presente un sintetizzatore vocale: TextToSpeech.Engine.CHECK_TTS_DATA e per accertarsi che sia installata la lingua richiesta: TextToSpeech mtts; //Creo un'oggetto di tipo TextToSpeech if(mtts.islanguageavailable(locale.uk)){ //Controlla che sia installato l'inglese mtts.setlanguage(locale.uk); //quindi lo imposta Possiamo poi alterare la frequenza e la velocità della voce rispettivamente tramite le funzioni mtts.setpitch(float numero) e mtts.setspeechrate(float numero). Un'altra opzione interessante che offre la classe è la possibilità di associare ad una stringa un file audio di modo che il compito di rendere vocalmente tale testo, qualora si incontrasse, non verrà affidata al Text-to-Speech ma subentrerà direttamente la riproduzione del file indicato: mtts.addspeech(string testo, String percorso_file). Per l'output standard, che va direttamente alla scheda audio, si usa la funzione: mtts.speak(string testo_da_riprodurre,int queuemode,hashmap params) Dove queuemode indica come il sintetizzatore deve gestire la coda di richieste: QUEUE_ADD se si vuole aggiungere in coda le nuove chiamate o QUEUE_FLUSH se si preferisce interrompere quelle in esecuzione a favore delle nuove. Infine attraverso la funione: mtts.synthetizetofile(string testo,hashmap params, String percorso_file) si ridireziona l'output verso un file audio. 22

23 Ambiente di Sviluppo Indice 3.1 Primi Passi Il sito base, cui fa riferimento ogni sviluppatore, è developer.android.com dal quale è possibile scaricare tutto il software necessario allo sviluppo, visualizzare le references delle varie versioni del sistema Android e consultare tutorial precisi e completi: Vi è anche una guida sulla configurazione dell'ide Eclipse, considerato il predefinito: probabilmente scelto dalla Open Handet Alliance in vista della sua natura di programma open-source, multipiattaforma e per essere già familiare nell'ambiente professionale dei programmatori Java. Bisogna quindi scaricare il vero e proprio SDK all'interno del quale è presente un tool per scaricare alcuni strumenti opzionali e le librerie della versione di Android desiderata (nel nostro caso la 2.1): 23

24 Infine è disponibile un plug-in per il suddetto IDE Eclipse che permette a ques'ultimo di interfacciarsi direttamente con l'sdk e gestire tutta la compilazione in modo trasparente all'utente, oltre a fornire diversi strumenti che vedremo in seguito. Il Plug-In è facilmente installabile dal sistema integrato di Eclipse per l'installazione di nuovo software, basta indicare il sito sorgente. 24

25 3.2 Virtual Device Manager L'ambiente di sviluppo offre la possibilità di generare macchine virtuali con sistema Android. Com'è possibile vedere nell'immagine, la virtual device si configura facilmente tramite un'apposita scheda fornita dal plugin ove è possibile specificare la risoluzione dello schermo, le librerie utilizzate e alcune specifiche hardware: Il dispositivo virtuale è pienamente funzionante: può persino connettersi ad internet tramite la connessione del computer ospitante simulando una rete UMTS. È però sprovviso di programmi come il market Google Play per motivi legali legati al fatto di non avere un numero di serie o un IMEI. Una volta avviato, si presenta così: 25

26 e l'ide lo seleziona automaticamente come bersaglio per il test dell'applicazione (se le librerie sono compabili, altrimenti,se configurato, avvia il giusto emulatore). La virtualizzazione del sistema comporta notevoli vantaggi: La possibilità di testare il programma indipendentemente dall'hardware, provandolo con diversi processori, diversa memoria e risoluzione dello schermo; La sicurezza di non poter in alcun modo danneggiare il sistema in fase di testing poiché completamente contenuto dalla macchina virtuale. L'unico aspetto negativo che solitamente si presenta con questa tecnica, la perdita di prestazioni, viene a essere meno pesante poiché Android richiede una potenza di calcolo e una quantità di risorse decisamente inferiori ad un normale sistema operativo per computer da tavolo e questi ultimi sono, in genere, abbastanza potenti da sostenerlo in emulazione senza rallentamenti. 26

27 3.3 Strumento Di disegno per layout xml Lo schema standard di programmazione per Android è impostato in modo tale da separare il più possibile il codice e i dati. Questo principio è stato applicato anche al layout che è possibile dichiarare in un file separato in formato xml, per poi essere implementato attraverso la funzione setcontentview(r.layout.nome_layout). La classe R è generata automaticamente da Eclipse e permette di tenere traccia e di collegare tutte le risorse esterne al codice. Questo metodo di progettazione, oltre a conferire la capacità di modificare il design delle applicazioni senza il rischio di inficiarne il funzionamento, permette di utilizzare un editor grafico per la realizzazione dei layout che, non dovendo generare complicato codice Java come WindowBuilder e simili, risulta essere molto efficiente: 27

28 3.4 Prospettiva per gestire Device Reali Un'ultima funzionalità che voglio citare del plug-in per Eclipse consiste in una prospettiva, ovvero una configurazione dell'interfaccia dell'ide, in cui sono state già predisposte tutte le view per gestire il debug su dispositivi Android fisici collegati al computer: Nell'immagine possiamo vedere in alto a sinistra la lista dei dispositivi Android connessi con tutti i processi attualmente in esecuzione. Per ogni processo si possono richiedere dettagli avanzati come la visualizzazione dei Threads o lo stato dell'heap, mostrato in figura. Per poter testare le applicazioni su un telefono reale bisogna configurare opportunamente il sistema operativo in uso (in Windows installare opportuni driver forniti da Google, in Linux impostare delle regole di sicurezza che variano a seconda del costruttore del telefono). L'applicazione testata viene firmata digitalmente in modo che solo il computer con cui si programma possa in futuro modificarla, cosa che ad 28

29 altri verrebbe impedito da Android. 3.5 Divisione delle Risorse Nel momento in cui si crea un nuovo progetto Android, Eclipse, configurato dal plug-in, predispone già tutte le risorse del progetto come si può vedere in figura. Come nei normali progetti Java la cartella src contiene i vari file Java suddivisi per package; le cartelle res e assets contengono le risorse esterne necessarie all'applicazione: in particolare la prima ha una struttura già impostata che vede drawable ospitare le risorse grafiche, layout i file formato xml che definiranno gli oggetti visivi delle componenti e values che contiene i file in cui sono scritti diversi dati utili al programma, in modo da potervi accedere e modificarli senza alterare il codice Java. Si possono dichiarare i seguenti tipi di risorse: stringhe, colori, misure, rettangoli di colore, vettori di numeri interi, vettori di stringhe e stili. L'utilizzo dell'ide, inoltre, permette di impostare tutti i tipi di risorsa senza scrivere xml ma direttamente da un'interfaccia apposita: 29

30 Infine la cartella gen contine i file che vengono generati automaticamente: in particolare la già citata classe R.Java funge da collegamento per tutto ciò che si trova nella cartella res ; è dunque possibile richiamare qualsiasi risorsa dal codice Java attraverso il suo id. Se, ad esempio, volessimo associare ad un oggetto di tipo Button un bottone dichiarato nel layout xml che ha id button1 basterebbe scrivere: Button bottone=(button)findviewbyid(r.id.button1); 30

Sistemi Mobili e Wireless Android Introduzione alla piattaforma

Sistemi Mobili e Wireless Android Introduzione alla piattaforma Sistemi Mobili e Wireless Android Introduzione alla piattaforma Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Cos'è Android?

Dettagli

Programmazione in ambiente

Programmazione in ambiente Università Politecnica delle Marche Dipartimento di Ingegneria dell Informazione Programmazione in ambiente Android Laura Montanini - laura.montanini@univpm.it Corso di Tecnologie per le TLC 2013-2014

Dettagli

Android. Android. Sviluppo di applicazioni. Dalvik 19/03/2011. A. Ferrari

Android. Android. Sviluppo di applicazioni. Dalvik 19/03/2011. A. Ferrari Android Android A. Ferrari Android è un sistema opera8vo per disposi8vi mobili. Inizialmente sviluppato da Startup Android Inc. acquisita poi nel 2005 da Google Inc. Il cuore di Android è un kernel Linux.

Dettagli

ANDROID. Domenico Talia. Università della Calabria. talia@dimes.unical.it

ANDROID. Domenico Talia. Università della Calabria. talia@dimes.unical.it ANDROID Domenico Talia Università della Calabria talia@dimes.unical.it Sistemi Operativi per Mobile! I sistemi operativi per sistemi mobili seguono i principi dei SO classici ma devono gestire risorse

Dettagli

Android. Anatomia di una applicazione

Android. Anatomia di una applicazione Android Anatomia di una applicazione Elementi di base Gli elementi di base per costruire una applicazione Android sono cinque: Activity Intent Broadcast Receiver Service Content Provider 2 Activity (1/3)

Dettagli

ANDROID 4.2 JELLY BEAN Installazione e configurazione dell ambiente

ANDROID 4.2 JELLY BEAN Installazione e configurazione dell ambiente INTRODUZIONE Per sviluppare applicazioni in grado di girare su sistemi Android servono tre cose: il Java JDK (Java Development Kit), che contiene tutti gli strumenti necessari a sviluppare nel linguaggio

Dettagli

Tecniche di progettazione e sviluppo di applicazioni mobile

Tecniche di progettazione e sviluppo di applicazioni mobile Slide del corso FSE Tecniche di progettazione e sviluppo di applicazioni mobile svolto presso AREA Science Park Padriciano - Trieste - Italy diegozabot@yahoo.it Android Introduzione diegozabot@yahoo.it

Dettagli

Lezione 3 Le attività

Lezione 3 Le attività A cura di Carlo Pelliccia Le applicazioni Android, come si è accennato durante la prima lezione, si compongono di quattro mattoni fondamentali: le attività (activity), i servizi (service), i broadcast

Dettagli

Sistemi Mobili e Wireless Android Primi passi

Sistemi Mobili e Wireless Android Primi passi 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

Dettagli

MagiCum S.r.l. Progetto Inno-School

MagiCum S.r.l. Progetto Inno-School MagiCum S.r.l. Progetto Inno-School Area Sviluppo Software Autore: Sergio Gandola Revisione: 2 Data: 07/06/13 Titolo: Documentazione Tecnica Diario File:Documentazione Tecnica.pdf Sito: http://inno-school.netsons.org/

Dettagli

INTRODUZIONE ALLE PIATTAFORME

INTRODUZIONE ALLE PIATTAFORME INTRODUZIONE ALLE PIATTAFORME Android ios Windows Phone 8 Android 2 Cos è Android? Un moderno open-source sistema operativo Componenti: Linux kernel Java Core applications 3 Perché è stato un successo

Dettagli

Programmazione Android

Programmazione Android Programmazione Android Giovanni Perbellini, Stefano Cordibella Università di Verona EDALab S.r.l. Agenda Introduzione Android Overview Ambiente di sviluppo Esempi Helloworld Weather 2 1 Cos è Android?

Dettagli

Android world. Sviluppare app per Android. Un insieme di software per dispositivi mobili (smartphone, tablet, portatili...)

Android world. Sviluppare app per Android. Un insieme di software per dispositivi mobili (smartphone, tablet, portatili...) Android world Un insieme di software per dispositivi mobili (smartphone, tablet, portatili...) Contiene un Sistema Operativo, software middleware e applicazioni varie Sviluppato da Open Handset Alliance,

Dettagli

Esercizi lezione 7. Esercizio A Progettate un'applicazione Android che consenta di fare una telefonata. Pag. 1/9

Esercizi lezione 7. Esercizio A Progettate un'applicazione Android che consenta di fare una telefonata. Pag. 1/9 Pag. 1/9 Esercizi lezione 7 Esercizio A Progettate un'applicazione Android che consenta di fare una telefonata. Suggerimenti: si può usare un intent e il metodo startactivity(), seguendo il frammento di

Dettagli

Lezione 3 Le attività

Lezione 3 Le attività A cura di Carlo Pelliccia Le applicazioni Android, come si è accennato durante la prima lezione, si compongono di quattro mattoni fondamentali: le attività (activity), i servizi (service), i broadcast

Dettagli

Scuola Professionale e Filologica Geom. F.Borgogna Vercelli

Scuola Professionale e Filologica Geom. F.Borgogna Vercelli Scuola Professionale e Filologica Geom. F.Borgogna Vercelli Corsi ANDROID 2013/2014 Benvenuti nel mondo dinamico dello sviluppo di applicazioni per smartphone e tablet Android Corsi ANDROID 2013/2014 L

Dettagli

Android development. Sviluppo di Mobile Apps sul sistema operativo di Google

Android development. Sviluppo di Mobile Apps sul sistema operativo di Google Android development Sviluppo di Mobile Apps sul sistema operativo di Google Agenda Giorni: Gio 14/04/2011 Ven 15/04/2011 Gio 21/04/2011 Ven 22/04/2011 Suddivisione: Mattina: teoria Pomeriggio: pratica

Dettagli

Indice: Introduzione 1 Strumenti di lavoro 2 Istallare Eclipse e SDK 3 Istallare l ADT in eclipse 4. Powered by: Vincenzo Acinapura

Indice: Introduzione 1 Strumenti di lavoro 2 Istallare Eclipse e SDK 3 Istallare l ADT in eclipse 4. Powered by: Vincenzo Acinapura Indice: Introduzione 1 Strumenti di lavoro 2 Istallare Eclipse e SDK 3 Istallare l ADT in eclipse 4 Introduzione Salve a tuttiù Mi presento mi chiamo Vincenzo Acinapura e studio ingegneria informatica,

Dettagli

Caratteristiche principali. la struttura open source (escluse alcune versioni intermedie) il suo basarsi su kernel Linux.

Caratteristiche principali. la struttura open source (escluse alcune versioni intermedie) il suo basarsi su kernel Linux. Android s.o. Androidè un sistema operativo per dispositivi mobili costituito da uno stack software che include: un sistema operativo di base, i middleware per le comunicazioni le applicazioni di base.

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di

Dettagli

Programmazione Android. Luca Morettoni http://www.morettoni.net

Programmazione Android. Luca Morettoni <luca@morettoni.net> http://www.morettoni.net Programmazione Android Luca Morettoni http://www.morettoni.net Android Programming Cos'è Android; Concetti di base sulla programmazione: Q&A AndroidManifest; Activities; Services;

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Contenuti del Corso Riferimenti Regole del Corso Materiale Didattico Scheduling Esami Strumenti Software 16/01/2013 2 Contenuti

Dettagli

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi

Parte V. Sistemi Operativi & Reti. Sistemi Operativi. Sistemi Operativi Parte V & Reti Sistema operativo: insieme di programmi che gestiscono l hardware Hardware: CPU Memoria RAM Memoria di massa (Hard Disk) Dispositivi di I/O Il sistema operativo rende disponibile anche il

Dettagli

LA TUA PRIMA APP CON CORDOVA

LA TUA PRIMA APP CON CORDOVA LA TUA PRIMA APP CON CORDOVA Dedicato a. Gianluca ed Enza, due persone speciali Autore: Gianpiero Fasulo www.gfasulo.it - Pag. 2 COPYRIGHT La tua prima APP con CORDOVA Tutti i diritti riservati. Nessuna

Dettagli

TESTARE E CREARE APPLICAZIONI TESTUALI JAVA PER ANDROID CON ANDROID

TESTARE E CREARE APPLICAZIONI TESTUALI JAVA PER ANDROID CON ANDROID TESTARE E CREARE APPLICAZIONI TESTUALI JAVA PER ANDROID CON ANDROID Ho deciso di scrivere questa guida per tre motivi principali: 1) Avendo un tablet che ha la possibilità di essere usato per programmare,

Dettagli

Lezione 1 Primi passi con Android

Lezione 1 Primi passi con Android A cura di Carlo Pelliccia Android è una piattaforma software per smartphone e tablet realizzata dal consorzio noto come Open Handset Alliance, di cui Google è capofila e maggiore contributore, ed al quale

Dettagli

"Riconoscimento Vocale e Smartphones":

Riconoscimento Vocale e Smartphones: UNIVERSITÀ POLITECNICA DELLE MARCHE FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica e dell'automazione "Riconoscimento Vocale e Smartphones": Sviluppo di un'applicazione capace di dialogo

Dettagli

Nuova ECDL ONLINE COLLABORATION

Nuova ECDL ONLINE COLLABORATION PATENTE EUROPEA DEL COMPUTER Nuova ECDL ONLINE COLLABORATION CONCETTI FONDAMENTALI USO DI DISPOSITIVI MOBILI APPLICAZIONI SINCRONIZZAZIONE 4. COLLABORAZIONE MOBILE 4.1. Concetti fondamentali 4.1.1 Identificare

Dettagli

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti

Sviluppo di applicazioni web con il pattern Model-View-Controller. Gabriele Pellegrinetti Sviluppo di applicazioni web con il pattern Model-View-Controller Gabriele Pellegrinetti 2 MVC: come funziona e quali sono vantaggi che derivano dal suo utilizzo? La grande diffusione della tecnologia

Dettagli

Un Sistema Location-based per la mappatura degli Access Point

Un Sistema Location-based per la mappatura degli Access Point 1 Un Sistema Location-based per la mappatura degli Access Point Pasquale Cautela pasquale.cautela@studio.unibo.it Marco Peca marco.peca@studio.unibo.it Rosario Salpietro rosario.salpietro@studio.unibo.it

Dettagli

Sviluppo su Android. Linux Day Torino 2010

Sviluppo su Android. Linux Day Torino 2010 Sviluppo su Android Linux Day Torino 2010 Francesco Ronchi francesco.ronchi@gmail.com - www.synesthesia.it Cos'è Android Sistema operativo dedicato ai device mobili: cellulari, palmari, tablet, navigatori...

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il Sistema Operativo Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Cos

Dettagli

Corso Eclipse. Prerequisiti. 1 Introduzione

Corso Eclipse. Prerequisiti. 1 Introduzione Corso Eclipse 1 Introduzione 1 Prerequisiti Uso elementare del pc Esecuzione ricerche su Internet Esecuzione download Conoscenza elementare della programmazione 2 1 Cos è Eclipse Eclipse è un IDE (Integrated

Dettagli

EVALITA 2011. NXT Speech. Utilizzo di comandi vocali nell'interazione con robot Lego Mindstorm NXT CANGIANO GENNARO

EVALITA 2011. NXT Speech. Utilizzo di comandi vocali nell'interazione con robot Lego Mindstorm NXT CANGIANO GENNARO EVALITA 2011 NXT Speech Utilizzo di comandi vocali nell'interazione con robot Lego Mindstorm NXT CANGIANO GENNARO Università degli Studi di Napoli Federico II Indice generale 1.Introduzione...3 2.Hardware...3

Dettagli

INTERFACCIA UTENTE----------------------------------------------------------------------------------------------------

INTERFACCIA UTENTE---------------------------------------------------------------------------------------------------- IL FILE SYSTEM PROF. ANTONIO TUFANO Indice 1 FILE SYSTEM ------------------------------------------------------------------------------------------------------------------ 3 1.1. CARATTERISTICHE E STORIA

Dettagli

L ambiente di sviluppo Android Studio

L ambiente di sviluppo Android Studio L ambiente di sviluppo Android Studio Android Studio è un ambiente di sviluppo integrato (IDE, Integrated Development Environment) per la programmazione di app con Android. È un alternativa all utilizzo

Dettagli

14/10/2015 ALESSANDRAZULLO SVILUPPO DI APPLICAZIONI ANDROID- VERSIONE 1. http://alessandrazullo.altervista.org Alessandra Zullo

14/10/2015 ALESSANDRAZULLO SVILUPPO DI APPLICAZIONI ANDROID- VERSIONE 1. http://alessandrazullo.altervista.org Alessandra Zullo 14/10/2015 ALESSANDRAZULLO SVILUPPO DI APPLICAZIONI ANDROID- VERSIONE 1 http://alessandrazullo.altervista.org Alessandra Zullo Indice Provvisorio INTRODUZIONE... 3 COMPONENTI PRINCIPALI... 3 PROCESSI...

Dettagli

MA GLI ANDROIDI SOGNANO PINGUINI ELETTRICI? Introduzione ad Android. Il futuro prossimo dei telefoni cellulari.

MA GLI ANDROIDI SOGNANO PINGUINI ELETTRICI? Introduzione ad Android. Il futuro prossimo dei telefoni cellulari. MA GLI ANDROIDI SOGNANO PINGUINI ELETTRICI? Introduzione ad Android. Il futuro prossimo dei telefoni cellulari. 8 aprile 2008 Case delle Culture di Ponziana via Orlandini 38 - Trieste Cos'è Android? Android

Dettagli

1.2.1.1 DEFINIZIONE DI SOFTWARE

1.2.1.1 DEFINIZIONE DI SOFTWARE Software 1.2 1.2.1.1 DEFINIZIONE DI SOFTWARE Il computer non è in grado di svolgere alcun compito autonomamente Esso può eseguire svariati compiti soltanto se viene opportunamente istruito Ciò avviene

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

www.informarsi.net MODULO 6 ECDL - EIPASS STRUMENTI DI PRESENTAZIONE - PRESENTATIONS Microsoft PowerPoint http://www.informarsi.net/ecdl/powerpoint/

www.informarsi.net MODULO 6 ECDL - EIPASS STRUMENTI DI PRESENTAZIONE - PRESENTATIONS Microsoft PowerPoint http://www.informarsi.net/ecdl/powerpoint/ MODULO 6 ECDL - EIPASS STRUMENTI DI PRESENTAZIONE - PRESENTATIONS Microsoft PowerPoint http:///ecdl/powerpoint/ INTERFACCIA UTENTE TIPICA DI UN SOFTWARE DI PRESENTAZIONE APERTURA E SALVATAGGIO DI UNA PRESENTAZIONE

Dettagli

Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione

Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione UNIVERSITA DEGLI STUDI DI FERRARA Corso di Laurea in informatica Anno Accademico 2011-2012 Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione Relatore:

Dettagli

Organizzazione dell'interfaccia utente su Android

Organizzazione dell'interfaccia utente su Android ALMA MATER STUDIORUM - UNIVERSITÀ DI BOLOGNA FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea in Informatica Organizzazione dell'interfaccia utente su Android Relatore: Prof. Vittorio

Dettagli

Programmazione Fondi Strutturali 2007/2013 P.O.N. FSE A.S. 2013/2014 SCHEDA PROGETTUALE MODULO. Obiettivo: C Azione: 1 Riferimento interno:

Programmazione Fondi Strutturali 2007/2013 P.O.N. FSE A.S. 2013/2014 SCHEDA PROGETTUALE MODULO. Obiettivo: C Azione: 1 Riferimento interno: ISTITUTO ISTRUZIONE SECONDARIA SUPERIORE GUGLIELMO MARCONI Piazza Poerio 2, 70126 Bari - Tel.080-5534450 Fax.080-5559037 - www.marconibari.it - info@marconibari.it Programmazione Fondi Strutturali 2007/2013

Dettagli

drag & drop visual programming appinventor storia appinventor un esempio di drag & drop programming: Scratch

drag & drop visual programming appinventor storia appinventor un esempio di drag & drop programming: Scratch drag & drop visual programming appinventor realizzazione app per Google Android OS appinventor è un applicazione drag & drop visual programming Contrariamente ai linguaggi tradizionali (text-based programming

Dettagli

Installazione, configurazione ed utilizzo del sistema di WebConference di Regione Toscana

Installazione, configurazione ed utilizzo del sistema di WebConference di Regione Toscana Direzione Generale Organizzazione e Risorse Area di Coordinamento Organizzazione, Personale, Sistemi Informativi Servizi Infrastrutturali Tecnologie Innovative e Fonia Installazione, configurazione ed

Dettagli

Manuale Utente CryptoClient

Manuale Utente CryptoClient Codice Documento: CERTMOB1.TT.DPMU12005.01 Firma Sicura Mobile Telecom Italia Trust Technologies S.r.l. - Documento Pubblico Tutti i diritti riservati Indice degli argomenti... 1 Firma Sicura Mobile...

Dettagli

Strumenti per lo sviluppo del software

Strumenti per lo sviluppo del software Lo sviluppo del software Strumenti per lo sviluppo del software Lo sviluppo del software è l attività centrale del progetto e ha lo scopo di produrre il codice sorgente che, una volta compilato e messo

Dettagli

Interstudio L INGEGNERE NELLE NUVOLE. App, WEB App e Cloud. ing. Sauro Agostini. Architectural & Engineering Software. venerdì 11 ottobre 13

Interstudio L INGEGNERE NELLE NUVOLE. App, WEB App e Cloud. ing. Sauro Agostini. Architectural & Engineering Software. venerdì 11 ottobre 13 Architectural & Engineering Software L INGEGNERE NELLE NUVOLE App, WEB App e Cloud ing. Sauro Agostini Mitterand 1981 Reagan Battaglin Alice IBM PC 5150 Alonso C ERA UNA VOLTA IL DOS Non è una rivoluzione,

Dettagli

Corso di: Abilità informatiche

Corso di: Abilità informatiche Corso di: Abilità informatiche Prof. Giovanni ARDUINI Lezione n.2 Anno Accademico 2008/2009 Abilità informatiche - Prof. G.Arduini 1 SISTEMA OPERATIVO Strato di programmi che opera al di sopra di hardware

Dettagli

MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY

MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY 1 Sommario 1. INTRODUZIONE... 3 2. GET METAIO... 4 2.1. PREREQUISITI... 4 2.2. INTALLAZIONE... 4 2.3. PROGETTI ESEMPLIFICATIVI... 4 3. USARE

Dettagli

Basi Android. Android si definisce open. Con8ene tecnologie open source. Il codice di Android è open. Licenza Open Source Apache 2.

Basi Android. Android si definisce open. Con8ene tecnologie open source. Il codice di Android è open. Licenza Open Source Apache 2. Basi Android 1 Android Cosa è Android? Android è un insieme di strumen8 e librerie per sviluppare applicazioni mobili è più di un SO Android si definisce open Con8ene tecnologie open source Linux Il codice

Dettagli

Partecipare ad un corso

Partecipare ad un corso Partecipare ad un corso Test della connessione prima della sessione È possibile eseguire il test della connessione prima dell'avvio della sessione collegandosi a una sessione di test per verificare che

Dettagli

Parte VI SISTEMI OPERATIVI

Parte VI SISTEMI OPERATIVI Parte VI SISTEMI OPERATIVI Sistema Operativo Ogni computer ha un sistema operativo necessario per eseguire gli altri programmi Il sistema operativo, fra l altro, è responsabile di riconoscere i comandi

Dettagli

uomo Software (sistema operativo) hardware

uomo Software (sistema operativo) hardware uomo Software (sistema operativo) hardware 1 Sistema operativo Insieme di programmi che svolgono funzioni essenziali per l uso del sistema di elaborazione Questi programmi sono i primi ad essere eseguiti

Dettagli

Concetti di base sul Software dei computer. Unitre Anno 2014-2015

Concetti di base sul Software dei computer. Unitre Anno 2014-2015 Concetti di base sul Software dei computer Unitre Anno 2014-2015 Software Un software è sempre un programma scritto in un linguaggio di programmazione ad alto livello che contiene una lista di istruzioni.

Dettagli

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50 Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE 4.50 Inizializzazione: creazione del nuovo progetto e del file sorgente in ambiente JCreator Al lancio del programma si apre la finestra

Dettagli

Manuale istruzioni. Software Vimar By-web per dispositivi mobili Android Manuale per l'uso

Manuale istruzioni. Software Vimar By-web per dispositivi mobili Android Manuale per l'uso Manuale istruzioni Software Vimar By-web per dispositivi mobili Android Manuale per l'uso Contratto di licenza Vimar con l'utente finale VIMAR SPA con sede in Marostica (VI), Viale Vicenza n. 14 (http://www.vimar.com),

Dettagli

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD La prima applicazione Java con NetBeans IDE Dott. Ing. M. Banci, PhD Creare la prima applicazione 1. Creare un progetto: Quando si crea un progetto IDE occorre creare un ambiente nel quale costruire e

Dettagli

Corso Android Corso Online Programmatore Android

Corso Android Corso Online Programmatore Android Corso Android Corso Online Programmatore Android Accademia Domani Via Pietro Blaserna, 101-00146 ROMA (RM) info@accademiadomani.it Programma Generale del Corso Modulo Uno - Programmazione J2ee 1) Programmazione

Dettagli

Sistemi Mobili e Wireless Android Activity

Sistemi Mobili e Wireless Android Activity Sistemi Mobili e Wireless Android Activity Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Activity Tipicamente, un'activity

Dettagli

Lezione 1 Primi passi con Android

Lezione 1 Primi passi con Android A cura di Carlo Pelliccia Meno di tre anni fa Google ha rilasciato una versione preliminare del kit di sviluppo di Android, il suo nuovo sistema operativo dedicato agli smartphone. Futurologi e semplici

Dettagli

BIMPublisher Manuale Tecnico

BIMPublisher Manuale Tecnico Manuale Tecnico Sommario 1 Cos è BIMPublisher...3 2 BIM Services Console...4 3 Installazione e prima configurazione...5 3.1 Configurazione...5 3.2 File di amministrazione...7 3.3 Database...7 3.4 Altre

Dettagli

Display. Guida all Uso

Display. Guida all Uso Display Installazione Guida all Uso Scaricare l ospite (Insegnante) DisplayNote richiede un piccolo programma in esecuzione sul computer che ospita le connessioni per i dispositivi partecipanti, scaricarlo

Dettagli

Guida introduttiva all'applicazione per dispositivi mobili Android

Guida introduttiva all'applicazione per dispositivi mobili Android Guida introduttiva all'applicazione per dispositivi mobili Android L'applicazione mobile SanDisk +Cloud consente di accedere ai contenuti e gestire il proprio account dal proprio dispositivo mobile. Con

Dettagli

LIBPF Guida per l'attivazione

LIBPF Guida per l'attivazione This document is part of LIBPF Paolo Greppi libpf.com Copyright 2009-2013 Credits: Daniele Bernocco 2012 All rights reserved; do not distribute without permission. LIBPF Guida per l'attivazione 1 di 20

Dettagli

Corso Programmazione Java Android. Programma

Corso Programmazione Java Android. Programma Corso Programmazione Java Android Programma 1.1 Obiettivo e modalità di fruizione L obiettivo del corso è di fornire le conoscenze tecniche e metodologiche per svolgere la professione di Programmatore

Dettagli

Navigazione automatica e rilevazione di errori in applicazioni web

Navigazione automatica e rilevazione di errori in applicazioni web Politecnico di Milano Navigazione automatica e rilevazione di errori in applicazioni web Relatore: Prof. Stefano Zanero Fabio Quarti F e d e r i c o V i l l a A.A. 2006/2007 Sommario Obiettivo: Illustrare

Dettagli

Lezione 11 Accesso al file system

Lezione 11 Accesso al file system A cura di Carlo Pelliccia Qualunque applicazione Android può leggere e scrivere file dalla memoria interna del telefono o da una scheda esterna inserita nel dispositivo. I principi da osservare per compiere

Dettagli

Capitolo 1 Introduzione a Gambas

Capitolo 1 Introduzione a Gambas Capitolo 1 Introduzione a Gambas Gambas è stato creato inizialmente da Benoit Minisini, un residente della periferia di Parigi. Secondo Benoit, Gambas è un linguaggio Basic con estensioni per la programmazione

Dettagli

Strutture dei Sistemi Operativi

Strutture dei Sistemi Operativi Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate di sistema Programmi di sistema Struttura del sistema Macchine virtuali Progetto e implementazione di sistemi

Dettagli

Yamaha Steinberg USB Driver Guida all'installazione

Yamaha Steinberg USB Driver Guida all'installazione Yamaha Steinberg USB Driver Guida all'installazione Sommario Supplementari... 1 Cos'è Yamaha Steinberg USB Driver?... 1 Installazione di Yamaha Steinberg USB Driver... 2 Pannello di controllo del driver...

Dettagli

Laboratorio di Elaborazione e Trasmissione Video

Laboratorio di Elaborazione e Trasmissione Video + Laboratorio di Elaborazione e Trasmissione Video Prof. Christian Micheloni Dott. Marco Vernier Dipartimento di Matematica e Informatica Università degli studi di Udine Outline Lezione 1 - Il sistema

Dettagli

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema

Dettagli

Scaletta. Strumenti di sviluppo Prima applicazione Aspetti peculiari di Android. Conclusioni. Activity e Intent. MoBe s.r.l.

Scaletta. Strumenti di sviluppo Prima applicazione Aspetti peculiari di Android. Conclusioni. Activity e Intent. MoBe s.r.l. Scaletta Strumenti di sviluppo Prima applicazione Aspetti peculiari di Android Activity e Intent Conclusioni Strumenti di sviluppo Disponibili per Windows, Mac OS X (Intel) e Linux Strumenti JDK (Java

Dettagli

Installazione e guida introduttiva. Per WebReporter 2012

Installazione e guida introduttiva. Per WebReporter 2012 Per WebReporter 2012 Ultimo aggiornamento: 13 settembre, 2012 Indice Installazione dei componenti essenziali... 1 Panoramica... 1 Passo 1 : Abilitare gli Internet Information Services... 1 Passo 2: Eseguire

Dettagli

Corso Android Corso Online Sviluppo su Cellulari con Android

Corso Android Corso Online Sviluppo su Cellulari con Android Corso Android Corso Online Sviluppo su Cellulari con Android Accademia Futuro info@accademiafuturo.it Programma Generale del Corso di Sviluppo su Cellulari con Android Programma Base Modulo Uno - Programmazione

Dettagli

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI

Indice degli argomenti del s.o. Software. Software. Buona lezione a tutti!! SISTEMI OPERATIVI Buona lezione a tutti!! SISTEMI OPERATIVI Gli appunti sono disponibili per tutti gratis sul sito personale del Prof M. Simone al link: www.ascuoladi.135.it nella pagina web programmazione, sezione classi

Dettagli

Guida rapida all uso del client UC-One Desktop e Mobile per il servizio Cloud PBX Acantho

Guida rapida all uso del client UC-One Desktop e Mobile per il servizio Cloud PBX Acantho Guida rapida all uso del client UC-One Desktop e Mobile per il servizio Cloud PBX Acantho Versione 1.0 Dicembre 2014 Installazione su Smartphone Android oppure ios 1. Accedere allo store Play Store oppure

Dettagli

Tale attività non è descritta in questa dispensa

Tale attività non è descritta in questa dispensa Fondamenti di informatica Oggetti e Java ottobre 2014 1 Nota preliminare L installazione e l uso di Eclipse richiede di aver preliminarmente installato Java SE SDK Tale attività non è descritta in questa

Dettagli

Programmazione. Android

Programmazione. Android Lezioni 4 e 5 Programmazione Android Componenti di un'applicazione AndroidManifest.xml Le Activity Definizione Ciclo di vita Layout & View Interazione Laboratorio 9 e 12 Ottobre 2012 2 Componenti di un'applicazione

Dettagli

GFI Product Manual. ReportPack

GFI Product Manual. ReportPack GFI Product Manual ReportPack http://www.gfi.com info@gfi.com Le informazioni contenute nel presente documento sono soggette a modifiche senza preavviso. Salvo se indicato diversamente, le società, i nomi

Dettagli

Capitolo 2 -- Silberschatz

Capitolo 2 -- Silberschatz Struttura dei Sistemi Operativi Capitolo 2 -- Silberschatz Struttura di un sistema operativo Servizi di un sistema operativo Interfaccia Utente Chiamate di sistema Tipi di chiamate Programma di sistema

Dettagli

Software per la gestione di musei di arte contemporanea1

Software per la gestione di musei di arte contemporanea1 Software per la gestione di musei di arte contemporanea1 Identificativo del progetto: CA Nome documento: System Design(SD) Identificativo del documento: 6 CA_SD_E1_R1 Data del documento: 21/05/2012 Prima

Dettagli

Manuale d uso. Applicazione client Postecert Firma Digitale per Postemailbox

Manuale d uso. Applicazione client Postecert Firma Digitale per Postemailbox per Postemailbox Documento pubblico Pagina 1 di 22 Indice INTRODUZIONE... 3 REQUISITI... 3 SOFTWARE... 3 HARDWARE... 3 INSTALLAZIONE... 3 AGGIORNAMENTI... 4 AVVIO DELL APPLICAZIONE... 4 UTILIZZO DELL APPLICAZIONE...

Dettagli

Classificazione del software

Classificazione del software Classificazione del software Classificazione dei software Sulla base del loro utilizzo, i programmi si distinguono in: SOFTWARE Sistema operativo Software applicativo Sistema operativo: una definizione

Dettagli

LISTA DI DISTRIBUZIONE: IT Telecom srl, Telecom Italia, Clienti Telecom Italia TI REGISTRO DELLE MODIFICHE REVISIONE DESCRIZIONE EMISSIONE

LISTA DI DISTRIBUZIONE: IT Telecom srl, Telecom Italia, Clienti Telecom Italia TI REGISTRO DELLE MODIFICHE REVISIONE DESCRIZIONE EMISSIONE CERTQUAL.IT.DPMU1257 TITOLO DOCUMENTO: TIPO DOCUMENTO: EMESSO DA: Manuale Utente IT Telecom s.r.l. DATA EMISSIONE: 2/12/21 N. ALLEGATI: STATO: REDATTO: F. Lappa ITT VERIFICATO: M. Donatone ITT APPROVATO:

Dettagli

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente:

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il.NET Framework By Dario Maggiari L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il cuore del.net Framework è costituito dal CLR (Common Language Runtime) che, secondo

Dettagli

Inizia da Qui BlackBerry Curve 9300 Series

Inizia da Qui BlackBerry Curve 9300 Series Benvenuti in BlackBerry! Impara a conoscere il nuovo smartphone BlackBerry Curve. Esplorazione tasti 2010 Research In Motion Limited. Tutti i diritti riservati. BlackBerry, RIM, Research In Motion, SureType,

Dettagli

Corso Base. ActionSMS. Maurizio Cozzetto, Francesco Sarasini

Corso Base. ActionSMS. Maurizio Cozzetto, Francesco Sarasini Corso Base ActionSMS Maurizio Cozzetto, Francesco Sarasini Broadcast Receivers A broadcast receiver is a component that does nothing but receive and react to broadcast announcements (Intents). For a Broadcast

Dettagli

Client XProtect Accesso al sistema di sorveglianza

Client XProtect Accesso al sistema di sorveglianza Client XProtect Accesso al sistema di sorveglianza Tre modalità di visualizzazione della videosorveglianza Per accedere facilmente alla videosorveglianza, Milestone offre tre interfacce utente flessibili:

Dettagli

Manuale d'uso del Microsoft Apps for Symbian

Manuale d'uso del Microsoft Apps for Symbian Manuale d'uso del Microsoft Apps for Symbian Edizione 1.0 2 Informazioni su Microsoft Apps Informazioni su Microsoft Apps Microsoft Apps incorpora le applicazioni aziendali di Microsoft nel telefono Nokia

Dettagli

LUCA VACCARO. Politecnico di Milano. S2MS Guida di Riferimento

LUCA VACCARO. Politecnico di Milano. S2MS Guida di Riferimento LUCA VACCARO Politecnico di Milano S2MS Guida di Riferimento L U C A V A C C A R O S2MS Guida di Riferimento Software sviluppato da Luca Vaccaro luck87@gmail.com Progetto del corso Internetworking TCP/IP

Dettagli

CORSO WEB SERVER, DBMS E SERVER FTP

CORSO WEB SERVER, DBMS E SERVER FTP CORSO WEB SERVER, DBMS E SERVER FTP DISPENSA LEZIONE 1 Autore D. Mondello Transazione di dati in una richiesta di sito web Quando viene effettuata la richiesta di un sito Internet su un browser, tramite

Dettagli

Componenti di un sistema operativo

Componenti di un sistema operativo Componenti di un sistema operativo di Daniele Margutti CONTATTI Mail: daniele@malcombsd.com AIM/iChat: malcombsd Web: http://www.malcombsd.com INDICE: 1. Nota introduttiva 2. La gestione dei processi di

Dettagli

Book 1. Conoscere i computer. Cos'è un dispositivo: Hardware, Software, Sistemi operativi e Applicazioni.

Book 1. Conoscere i computer. Cos'è un dispositivo: Hardware, Software, Sistemi operativi e Applicazioni. Book 1 Conoscere i computer Cos'è un dispositivo: Hardware, Software, Sistemi operativi e Applicazioni. Centro Servizi Regionale Pane e Internet Redazione a cura di Roger Ottani, Grazia Guermandi, Sara

Dettagli

Introduzione... 2. Un software per l automazione di procedure statistiche su dati Pet... 2. Il Pre-Processing... 7. La fase di statistica...

Introduzione... 2. Un software per l automazione di procedure statistiche su dati Pet... 2. Il Pre-Processing... 7. La fase di statistica... Indice Introduzione... 2 Un software per l automazione di procedure statistiche su dati Pet... 2 Il Pre-Processing... 7 La fase di statistica... 12 Algoritmo di classificazione... 13 L interfaccia... 15

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli