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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

"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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Informazioni su Parallels Desktop 7 per Mac

Informazioni su Parallels Desktop 7 per Mac Informazioni su Parallels Desktop 7 per Mac Parallels Desktop 7 per Mac è un aggiornamento fondamentale al pluripremiato software di Parallels per l'esecuzione di Windows su Mac. Informazioni sul presente

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 Cosa abbiamo visto Nella 1 lezione:

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

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

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

Progetto per un Sistema di Video/Audio Sorveglianza Remota RemoteGuard

Progetto per un Sistema di Video/Audio Sorveglianza Remota RemoteGuard La Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Anno Accedemico 2008-2009 Corso di Progetto di Reti di Calcolatori e Sistemi Informatici Prof. Stefano Millozzi

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

Lezione 19 Blackberry. Dr. Paolo Casoto, Ph.D - 2012

Lezione 19 Blackberry. Dr. Paolo Casoto, Ph.D - 2012 + Lezione 19 Blackberry + Credits I lucidi di questa lezione sono stati redatti dal Dr. Paolo Casoto nel 2012. Sono rilasciati con licenza Creative Commons Attribuzione, non commerciale e non opere derivate.

Dettagli

Software che sovrintende al funzionamento del computer eseguendo compiti diversi:

Software che sovrintende al funzionamento del computer eseguendo compiti diversi: Sistema Operativo dispensa a cura di Alessandro Bellini Software che sovrintende al funzionamento del computer eseguendo compiti diversi: 1. Gestire interazione utente macchina 2. Fornire un interfaccia

Dettagli

Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE

Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE Prof. Pagani Corrado INGEGNERIA DEL SOFTWARE INTRODUZIONE L ingegneria del software è la disciplina tecnologica e gestionalerelativa alla realizzazione sistematica e alla manutenzione di un software rispettando

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

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

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

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 di Elettronica dei Sistemi Programmabili. Sistemi Operativi Real Time. Introduzione. Aprile 2014 Stefano Salvatori 1/28

Corso di Elettronica dei Sistemi Programmabili. Sistemi Operativi Real Time. Introduzione. Aprile 2014 Stefano Salvatori 1/28 Corso di Elettronica dei Sistemi Programmabili Sistemi Operativi Real Time Introduzione Aprile 2014 Stefano Salvatori 1/28 Sommario Definizioni livelli di astrazione processi di tipo batch e processi interattivi

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

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

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

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

Manuale TeamViewer Manager 6.0

Manuale TeamViewer Manager 6.0 Manuale TeamViewer Manager 6.0 Revisione TeamViewer 6.0-954 Indice 1 Panoramica... 2 1.1 Informazioni su TeamViewer Manager... 2 1.2 Informazioni sul presente Manuale... 2 2 Installazione e avvio iniziale...

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

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

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

Console di Amministrazione Centralizzata Guida Rapida

Console di Amministrazione Centralizzata Guida Rapida Console di Amministrazione Centralizzata Contenuti 1. Panoramica... 2 Licensing... 2 Panoramica... 2 2. Configurazione... 3 3. Utilizzo... 4 Gestione dei computer... 4 Visualizzazione dei computer... 4

Dettagli

Hosting Applicativo Installazione Web Client

Hosting Applicativo Installazione Web Client Hosting Applicativo Installazione Web Client Utilizzo del portale di accesso e guida all installazione dei client Marzo 2012 Hosting Applicativo Installazione Web Client Introduzione Le applicazioni CIA,

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 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

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

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

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

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

La soluzione definitiva Per il controllo delle stampanti

La soluzione definitiva Per il controllo delle stampanti La soluzione definitiva Per il controllo delle stampanti 30 anni di esperienza e know how ci hanno permesso di creare una soluzione che vi consentirà di gestire con evidenti risparmi I costi associati

Dettagli

Lab 01 Sistemi Operativi

Lab 01 Sistemi Operativi Informatica Grafica Ingegneria Edile-Architettura a.a. 2010/2011 Lab 01 Sistemi Operativi Lab01 1 Obiettivi Durante l'esercitazione vedremo come il sistema operativo si occupa di gestire: 1. i processi

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

Corso Base. Lezione 6. Maurizio Cozzetto, Francesco Sarasini

Corso Base. Lezione 6. Maurizio Cozzetto, Francesco Sarasini Corso Base Lezione 6 Maurizio Cozzetto, Francesco Sarasini Database SQLite (1/2) Android provides full support for SQLite databases. Any databases you create will be accessible by name to any class in

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

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

3. La schermata principale

3. La schermata principale 3. La schermata principale 3.1 Schermata principale Dopo avere acceso il dispositivo, è visualizzata la schermata principale bloccata. La schermata è bloccata per impostazione predefinita. Per sbloccare

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE ANDROID

INTRODUZIONE ALLA PROGRAMMAZIONE ANDROID INTRODUZIONE ALLA PROGRAMMAZIONE ANDROID Giuseppe Marziale Bari, 27 Novembre 2013 About Me (Giuseppe Marziale) Sono Laureato in Ingegneria informatica specializzazione in sistema informativi e reti ( Ottobre

Dettagli

Oracle Solaris Studio 12.4: Guida per la sicurezza

Oracle Solaris Studio 12.4: Guida per la sicurezza Oracle Solaris Studio 12.4: Guida per la sicurezza N. di parte: E60509 Ottobre 2014 Copyright 2013, 2014, Oracle e/o relative consociate. Tutti i diritti riservati. Il software e la relativa documentazione

Dettagli

Università degli Studi di Modena e Reggio Emilia. Paolo Piccinini WASCANA ECLIPSE MANUALE UTENTE

Università degli Studi di Modena e Reggio Emilia. Paolo Piccinini WASCANA ECLIPSE MANUALE UTENTE Università degli Studi di Modena e Reggio Emilia Paolo Piccinini WASCANA ECLIPSE MANUALE UTENTE Corso di Fondamenti di Informatica 2010-2011 Sommario Introduzione... 3 Installazione di Wascana Eclipse

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

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

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

Introduzione al linguaggio Java: Servlet e JSP

Introduzione al linguaggio Java: Servlet e JSP Introduzione al linguaggio Java: Servlet e JSP Corso di Gestione della Conoscenza d Impresa A. A. 2006/2007 Dipartimento di Informatica Università degli Studi di Bari 1 Servlet e JSP: il contesto Un applicazione

Dettagli

REQUISITO DI ACCESSIBILITA

REQUISITO DI ACCESSIBILITA ISTITUTO COMPRENSIVO Pascoli - Crispi Via Gran Priorato, 11-98121 Messina Via Monsignor D'Arrigo, 18-98122 Messina Tel/Fax. 09047030 090360037 e-mail: meic87300t@istruzione.it / meee00800r@istruzione.it

Dettagli

Laboratorio di Smart Vision and Sensor Networks. Niki Martinel Marco Vernier Dipartimento di Matematica e Informatica Università degli studi di Udine

Laboratorio di Smart Vision and Sensor Networks. Niki Martinel Marco Vernier Dipartimento di Matematica e Informatica Università degli studi di Udine + Laboratorio di Smart Vision and Sensor Networks Niki Martinel Marco Vernier Dipartimento di Matematica e Informatica Università degli studi di Udine Outline Lezione 1 - Il sistema operativo Android Cos

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

Approfondimenti tecnici su framework v6.3

Approfondimenti tecnici su framework v6.3 Sito http://www.icu.fitb.eu/ pagina 1 I.C.U. "I See You" Sito...1 Cosa è...3 Cosa fa...3 Alcune funzionalità Base:...3 Alcune funzionalità Avanzate:...3 Personalizzazioni...3 Elenco Moduli base...4 Elenco

Dettagli

Linux Day 2015. ANDROID ed i suoi derivati. Pavia, 24 ottobre 2015. Marco Giorgi NUTRIA LUG

Linux Day 2015. ANDROID ed i suoi derivati. Pavia, 24 ottobre 2015. Marco Giorgi NUTRIA LUG Linux Day 2015 NUTRIA LUG Pavia, 24 ottobre 2015 ANDROID ed i suoi derivati Quant'è davvero open un dispositivo Android e come renderlo ancora più libero CHI SONO Membro del team di sviluppo DEFT Linux

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

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

Guida Veloce all Utilizzo Per iniziare con NTRconnect

Guida Veloce all Utilizzo Per iniziare con NTRconnect Guida Veloce all Utilizzo Tavola dei contenuti: - Glossario - Accesso remoto - Terminare la connessione - Caratteristiche chiave - Avviso di Sicurezza - Domande Frequenti(FAQ) - Richieste A proposito di

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

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

Informazioni generali sul corso

Informazioni generali sul corso abaroni@yahoo.com Informazioni generali sul corso Introduzione a BusinessObjects Enterprise XI - Release 2 Chi sono. Io? Adolfo Baroni E-mail: abaroni@yahoo.com 2 Pagina 1 Obiettivi del corso hamministrazione

Dettagli

MagiCum S.r.l. Progetto Inno-School

MagiCum S.r.l. Progetto Inno-School MagiCum S.r.l. Progetto Inno-School Area Web Autore: Davide Revisione: 1.2 Data: 23/5/2013 Titolo: Innopedia File: Documentazione_tecnica Sito: http://inno-school.netsons.org/ Indice: 1. Presentazione

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

Suite OpenOffice. Introduzione a

Suite OpenOffice. Introduzione a Suite OpenOffice Introduzione a Cosa è OpenOffice.org? OpenOffice.org è una suite per ufficio composta da: elaboratore di testi foglio di calcolo creatore di presentazioni gestore di basi di dati Writer

Dettagli

VoiceManager. Guida all uso

VoiceManager. Guida all uso VoiceManager Guida all uso Terza edizione ottobre 2014 Voice Manager Sommario Sommario... 3 Voice Manager... 4 1 Introduzione... 4 2 Uso del sistema di riconoscimento vocale... 5 3 Funzionamento del riconoscitore

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

FileMaker 14. Guida di WebDirect

FileMaker 14. Guida di WebDirect FileMaker 14 Guida di WebDirect 2015 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 Stati Uniti FileMaker e FileMaker Go sono marchi di

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

Guida rapida dell'utente di Polycom RealPresence Content Sharing Suite

Guida rapida dell'utente di Polycom RealPresence Content Sharing Suite Guida rapida dell'utente di Polycom RealPresence Content Sharing Suite Versione 1.2 3725-69878-001 Rev. A Novembre 2013 In questa guida, vengono fornite le istruzioni per condividere e visualizzare il

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