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

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

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

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

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

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

INTERNET EXPLORER Breve manuale d uso

INTERNET EXPLORER Breve manuale d uso INTERNET EXPLORER Breve manuale d uso INDICE INTRODUZIONE... 3 COME IMPOSTARE LA PAGINA INIZIALE... 3 LA WORK AREA... 3 LE VOCI DI MENU... 5 IL MENU FILE... 5 IL MENU MODIFICA... 6 IL MENU VISUALIZZA...

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

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

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

INTERNET EXPLORER. Breve manuale d'uso

INTERNET EXPLORER. Breve manuale d'uso INTERNET EXPLORER Breve manuale d'uso INDICE INTRODUZIONE... 3 COME IMPOSTARE LA PAGINA INIZIALE...3 LA WORK AREA... 3 LE VOCI DI MENU... 5 IL MENU FILE... 5 IL MENU MODIFICA... 6 IL MENU VISUALIZZA...

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

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

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

Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto. Approfondimento SOFTWARE PER L ARCHIVIAZIONE

Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto. Approfondimento SOFTWARE PER L ARCHIVIAZIONE APPROFONDIMENTO ICT Iniziativa Comunitaria Equal II Fase IT G2 CAM - 017 Futuro Remoto Approfondimento SOFTWARE PER L ARCHIVIAZIONE ORGANISMO BILATERALE PER LA FORMAZIONE IN CAMPANIA INDICE SOFTWARE PER

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

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

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

MANUALE D USO Agosto 2013

MANUALE D USO Agosto 2013 MANUALE D USO Agosto 2013 Descrizione generale MATCHSHARE è un software per la condivisione dei video e dati (statistiche, roster, ) delle gare sportive. Ogni utente abilitato potrà caricare o scaricare

Dettagli

Facendo clic su parole, immagini e icone si può passare da un sito all'altro.

Facendo clic su parole, immagini e icone si può passare da un sito all'altro. I browser Introduzione Facendo clic su parole, immagini e icone si può passare da un sito all'altro. Ogni pagina web è un documento ipertestuale, caratterizzato da un proprio indirizzo denominato URL (Uniform

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Acronis License Server. Manuale utente

Acronis License Server. Manuale utente Acronis License Server Manuale utente INDICE 1. INTRODUZIONE... 3 1.1 Panoramica... 3 1.2 Politica della licenza... 3 2. SISTEMI OPERATIVI SUPPORTATI... 4 3. INSTALLAZIONE DI ACRONIS LICENSE SERVER...

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

Protocollo di trasmissione Trova il Tuo Farmaco. Indice. Versione documento: 1.4 Data: 29/06/2011

Protocollo di trasmissione Trova il Tuo Farmaco. Indice. Versione documento: 1.4 Data: 29/06/2011 Protocollo di trasmissione Trova il Tuo Farmaco Versione documento: 1.4 Data: 29/06/2011 Indice Protocollo di trasmissione Trova il Tuo Farmaco...1 Requisiti...2 Finalità...2 Software...2 Documentazione...2

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

2. Strutture dei Sistemi Operativi

2. Strutture dei Sistemi Operativi 1 2. Strutture dei Sistemi Operativi Quali servizi un generico sistema operativo mette a disposizione degli utenti, e dei programmi che gli utenti vogliono eseguire? interfaccia col sistema operativo stesso

Dettagli

INTERAZIONE CON L UTENTEL

INTERAZIONE CON L UTENTEL IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

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

Guide alla Guida http://www.rmastri.it/guide.html - Progetto WEBpatente 2011

Guide alla Guida http://www.rmastri.it/guide.html - Progetto WEBpatente 2011 Installazione di WEBpatente 4.0 in rete Le caratteristiche tecniche di WEBpatente 4.0 offline ne consentono l'uso all'interno di una rete locale. Una sola copia del programma, installata in un PC con particolari

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

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

Istruzioni per la configurazione di IziOzi

Istruzioni per la configurazione di IziOzi Istruzioni per la configurazione di IziOzi Installazione L'applicazione si può installare da qualunque dispositivo Android a partire dalla versione 4.1 con la procedura standard tramite Google Play Store.

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

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

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

Installare un nuovo programma

Installare un nuovo programma Installare un nuovo programma ICT per la terza età Le video lezioni della Fondazione Mondo Digitale Diapositiva Introduzione Installare un nuovo programma sul computer installazione Quando acquistiamo

Dettagli

Anno 2009/2010 Syllabus 5.0

Anno 2009/2010 Syllabus 5.0 Patente Europea di Informatica ECDL Modulo 2 Lezione 3: Pannello di controllo Caratteristiche del sistema Gestione delle stampe Utilità Anno 2009/2010 Syllabus 5.0 Il Pannello di Controllo permette di

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

PATENTE EUROPEA DEL COMPUTER 4.0 MODULO

PATENTE EUROPEA DEL COMPUTER 4.0 MODULO PATENTE EUROPEA DEL COMPUTER 4.0 MODULO 2 Uso del Computer e Gestione dei file ( Windows XP ) A cura di Mimmo Corrado MODULO 2 - USO DEL COMPUTER E GESTIONE DEI FILE 2 FINALITÁ Il Modulo 2, Uso del computer

Dettagli

BARRA LATERALE AD APERTURA AUTOMATICA...

BARRA LATERALE AD APERTURA AUTOMATICA... INDICE 1) SOMMARIO... 1 2) PRIMO AVVIO... 1 3) BARRA LATERALE AD APERTURA AUTOMATICA... 2 4) DATI AZIENDALI... 3 5) CONFIGURAZIONE DEL PROGRAMMA... 4 6) ARCHIVIO CLIENTI E FORNITORI... 5 7) CREAZIONE PREVENTIVO...

Dettagli

Indice generale. Introduzione...xv. Parte I Per iniziare Capitolo 1 Introduzione allo sviluppo ios con tecnologie web...3

Indice generale. Introduzione...xv. Parte I Per iniziare Capitolo 1 Introduzione allo sviluppo ios con tecnologie web...3 Introduzione...xv A chi si rivolge questo libro...xv Gli argomenti trattati...xv Com è organizzato il libro...xvi Cosa occorre per utilizzare il libro...xvii Convenzioni adottate...xvii Il codice sorgente...xviii

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica CL3 - Biotecnologie Orientarsi nel Web Prof. Mauro Giacomini Dott. Josiane Tcheuko Informatica - 2006-2007 1 Obiettivi Internet e WWW Usare ed impostare il browser Navigare in internet

Dettagli

Argo Netbook. Off-line

Argo Netbook. Off-line Argo Netbook Off-line Manuale d Installazione e d uso del prodotto Versione 2.2.0 del 04-04-2012 Sommario Premessa... 3 Installazione di Argo Netbook Off-line... 3 Requisiti minimi per l installazione:...

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

Installazione del Software. per lo Sviluppo di Applicazioni Java

Installazione del Software. per lo Sviluppo di Applicazioni Java Installazione del Software per lo Sviluppo di Applicazioni Java Ing. Luca Ferrari ferrari.luca@unimore.it Tel. 0592056142 Installazione del Software per lo Sviluppo di Applicazioni Java 1 Il Compilatore

Dettagli

Capitolo 3: Strutture dei sistemi operativi

Capitolo 3: Strutture dei sistemi operativi Capitolo 3: Strutture dei sistemi operativi Componenti del sistema Servizi di un sistema operativo Chiamate del sistema Programmi di sistema Struttura del sistema Macchine virtuali Progettazione e realizzazione

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

FAQ DOMANDE FREQUENTI

FAQ DOMANDE FREQUENTI FUNZIONAMENTO DELLA PIATTAFORMA FAQ DOMANDE FREQUENTI In cosa consiste la VideoFad? La VideoFad è la nuova formazione a distanza video. Si tratta di corsi Audio e Video con slide sincronizzate, nei quali

Dettagli

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE Relatore: prof. Michele Moro Laureando: Marco Beggio Corso di laurea in Ingegneria Informatica Anno Accademico 2006-2007

Dettagli

Software. Definizione, tipologie, progettazione

Software. Definizione, tipologie, progettazione Software Definizione, tipologie, progettazione Definizione di software Dopo l hardware analizziamo l altra componente fondamentale di un sistema di elaborazione. La macchina come insieme di componenti

Dettagli

Radio R 4.0 IntelliLink Domande frequenti. Italiano. Ottobre 2015. Elenco dei contenuti

Radio R 4.0 IntelliLink Domande frequenti. Italiano. Ottobre 2015. Elenco dei contenuti Elenco dei contenuti 1. Audio... 1 2. Phone... 2 3. Apple CarPlay... 3 4. Android Auto... 3 5. Gallery... 5 6. Other... 5 1. Audio D: Come posso passare da una sorgente audio all altra (ad es. tra radio

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

ARGO DOC Argo Software S.r.l. e-mail: info@argosoft.it -

ARGO DOC Argo Software S.r.l. e-mail: info@argosoft.it - 1 ARGO DOC ARGO DOC è un sistema per la gestione documentale in formato elettronico che consente di conservare i propri documenti su un server Web accessibile via internet. Ciò significa che i documenti

Dettagli

1. Introduzione. 2. Installazione di WinEMTLite. 3. Descrizione generale del programma

1. Introduzione. 2. Installazione di WinEMTLite. 3. Descrizione generale del programma Indice 1. Introduzione...3 2. Installazione di WinEMTLite...3 3. Descrizione generale del programma...3 4. Impostazione dei parametri di connessione...4 5. Interrogazione tramite protocollo nativo...6

Dettagli

Le applicazioni vocali

Le applicazioni vocali Le applicazioni vocali semplice e naturale: usa la tua voce DOTVOCAL S.r.l. Piazza Pinelli 1/7 16124 Genova Tel. +39 010 275411 Fax +39 010 27541216 www.dotvocal.com www.portavoce.org Cosa sono le applicazioni

Dettagli

alessio@alessiosperlinga.it

alessio@alessiosperlinga.it Programma per creare presentazioni Una presentazione è un insieme di diapositive Una diapositiva può contenere: testi e immagini, suoni e filmati file di altri programmi annotazioni collegamenti ipertestuali

Dettagli

Informatica e Bioinformatica: Sistemi Operativi

Informatica e Bioinformatica: Sistemi Operativi Informatica e Bioinformatica: Sistemi Operativi 11 marzo 2013 Macchina Hardware/Software Sistema Operativo Macchina Hardware La macchina hardware corrisponde alle componenti fisiche del calcolatore (quelle

Dettagli

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE IL SISTEMA OPERATIVO Insieme di programmi che opera al di sopra della macchina fisica, mascherandone le caratteristiche e fornendo agli utenti funzionalità di alto livello. PROGRAMMI UTENTE INTERPRETE

Dettagli

PhoneSuite Manuale dell utente. Istruzioni preliminari: installazione e primo impiego di Phone Suite

PhoneSuite Manuale dell utente. Istruzioni preliminari: installazione e primo impiego di Phone Suite PhoneSuite Manuale dell utente Istruzioni preliminari: installazione e primo impiego di Phone Suite Il software PhoneSuite può essere utilizzato direttamente da CD o essere installato sul PC. Quando si

Dettagli

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

Dettagli

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche Sommario Definizione di S. O. Attività del S. O. Struttura del S. O. Il gestore dei processi: lo scheduler Sistemi Mono-Tasking e

Dettagli

VoiceCMS. DOTVOCAL S.r.l. Via Greto di Cornigliano 6 R, 16152 Genova. Tel. +39 010 65 63 452, Fax +39 010 65 63 552. sito: http://www.dotvocal.

VoiceCMS. DOTVOCAL S.r.l. Via Greto di Cornigliano 6 R, 16152 Genova. Tel. +39 010 65 63 452, Fax +39 010 65 63 552. sito: http://www.dotvocal. VoiceCMS DOTVOCAL S.r.l. Via Greto di Cornigliano 6 R, 16152 Genova Tel. +39 010 65 63 452, Fax +39 010 65 63 552. sito: http://www.dotvocal.com INSTANT S.r.l. Via Sorio 47, 35141 Padova Tel. +39 049 87

Dettagli

Power Point. Short User Manual. Come creare un animazione automatica. Come Creare un animazione personalizzata

Power Point. Short User Manual. Come creare un animazione automatica. Come Creare un animazione personalizzata Power Point Short User Manual INDICE Uso di base di Power Point Uso avanzato di power point Come creare un animazione automatica Come Creare un animazione personalizzata Come creare un animazione personalizzata

Dettagli

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps

SMS-GPS MANAGER. Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps SOFTWARE PER LA GESTIONE DEI TELECONTROLLI SMS-GPS MANAGER Software per la gestione remota ed automatizzata dei telecontrolli gsm con e senza gps Rev.0911 Pag.1 di 8 www.carrideo.it INDICE 1. DESCRIZIONE

Dettagli

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica

Dettagli

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008 VIRTUALIZZAZIONE LUG - CREMONA Linux Day - 25 Ottobre 2008 VIRTUALIZZAZIONE In informatica la virtualizzazione consiste nella creazione di una versione virtuale di una risorsa normalmente fornita fisicamente

Dettagli

Sistemi Operativi. Modulo 2. C. Marrocco. Università degli Studi di Cassino

Sistemi Operativi. Modulo 2. C. Marrocco. Università degli Studi di Cassino Sistemi Operativi Modulo 2 Schema di un Sistema di Calcolo Programmi Dati di Input Calcolatore Dati di output Modello di von Neumann Bus di sistema CPU Memoria Centrale Memoria di Massa Interfaccia Periferica

Dettagli

Kaguya 3D Moon-Navi Manuale utente

Kaguya 3D Moon-Navi Manuale utente Kaguya 3D Moon-Navi Manuale utente Grazie a Chiara, Guido e Luca per la traduzione dal giapponese; l'adattamento è colpa di Paolo Attivissimo. L'originale è scaricabile da http://wms.selene.jaxa.jp/3dmoon/manual.html.

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

Piattaforma di e-learning I.R.Fo.M

Piattaforma di e-learning I.R.Fo.M Piattaforma di e-learning I.R.Fo.M Manuale d'uso per l'utente Ver. 1.0 Maggio 2014 I.R.Fo.M. - Istituto di Ricerca e Formazione per il Mezzogiorno 1 Sommario 1. Introduzione...3 1.1 L'ambiente...3 1.2

Dettagli

INDICE PROGRAMMA CORSO

INDICE PROGRAMMA CORSO INDICE PROGRAMMA CORSO PRIMA LEZIONE: Componenti di un computer: Hardware, Software e caratteristiche delle periferiche. SECONDA LEZIONE: Elementi principali dello schermo di Windows: Desktop, Icone, Mouse,

Dettagli

Sophos Mobile Control Guida utenti per Android. Versione prodotto: 3.5

Sophos Mobile Control Guida utenti per Android. Versione prodotto: 3.5 Sophos Mobile Control Guida utenti per Android Versione prodotto: 3.5 Data documento: luglio 2013 Sommario 1 About Sophos Mobile Control...3 2 Informazioni sulla guida...4 3 Accesso al portale self-service...5

Dettagli

02 L Informatica oggi. Dott.ssa Ramona Congiu

02 L Informatica oggi. Dott.ssa Ramona Congiu 02 L Informatica oggi Dott.ssa Ramona Congiu 1 Introduzione all Informatica Dott.ssa Ramona Congiu 2 Che cos è l Informatica? Con il termine Informatica si indica l insieme dei processi e delle tecnologie

Dettagli

Capitolo 1 Operazioni preliminari

Capitolo 1 Operazioni preliminari Manuale Utente Contenuti Capitolo 1 Operazioni preliminari... 1 Installazione... 1 Registrazione e login... 1 Test compatibilità... 2 Capitolo 2 Il Market... 4 Capitolo 3 Al Cinema... 6 Capitolo 4 Opzioni...

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

MDaemon e Outlook Connector for MDaemon

MDaemon e Outlook Connector for MDaemon MDaemon e Outlook Connector for MDaemon Introduzione...2 Cos'è il groupware...2 Che cosa significa groupware?...2 Cos è WorldClient...2 MDaemon e l evoluzione delle funzionalità groupware...3 Nuove funzionalità

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

'LVSHQVD :LQGRZV GL0&ULVWLQD&LSULDQL

'LVSHQVD :LQGRZV GL0&ULVWLQD&LSULDQL 'LVSHQVD 'L :LQGRZV GL0&ULVWLQD&LSULDQL ',63(16$',:,1'2:6,QWURGX]LRQH Windows 95/98 è un sistema operativo con interfaccia grafica GUI (Graphics User Interface), a 32 bit, multitasking preempitive. Sistema

Dettagli

DonkeyCode. Manuale amministratore di sistema. Versione 1.0.0

DonkeyCode. Manuale amministratore di sistema. Versione 1.0.0 DonkeyCode RescueMe: globale per la gestione di catastrofi naturali Manuale amministratore di Versione 1.0.0 Ingegneria Del Software AA 2010-2011 DonkeyCode - RescueMe Informazioni documento Titolo documento:

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

GESTIONE DEI COMPONENTI MULTIMEDIALI IN POWERPOINT 2007

GESTIONE DEI COMPONENTI MULTIMEDIALI IN POWERPOINT 2007 GESTIONE DEI COMPONENTI MULTIMEDIALI IN POWERPOINT 2007 Inserire un grafico di Excel in una diapositiva Per iniziare la gestione di componenti multimediali in una presentazione PowerPoint, cominciamo con

Dettagli

PROGRAMMATORE CENTRALI 2012 - GUIDA RAPIDA AL SOFTWARE 11 luglio 2012

PROGRAMMATORE CENTRALI 2012 - GUIDA RAPIDA AL SOFTWARE 11 luglio 2012 INSTALLAZIONE DEL SOFTWARE Eseguire il file di SetupCentraliCombivox.exe, selezionando la lingua e la cartella di installazione. SetupCentraliCom bivox.exe Durante l installazione, è possibile creare un

Dettagli

SecurityLogWatcher Vers.1.0

SecurityLogWatcher Vers.1.0 SecurityLogWatcher Vers.1.0 1 Indice Informazioni Generali... 3 Introduzione... 3 Informazioni in materia di amministratore di sistema... 3 Informazioni sul prodotto... 5 Installazione e disinstallazione...

Dettagli

Impostare il browser per navigare in sicurezza Opzioni di protezione

Impostare il browser per navigare in sicurezza Opzioni di protezione Impostare il browser per navigare in sicurezza Opzioni di protezione Data la crescente necessità di sicurezza e tutela dei propri dati durante la navigazione in rete, anche gli stessi browser si sono aggiornati,

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

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

Tecnologie dell Informazione e della Comunicazione (TIC) IPSIA San Benedetto del Tronto (AP)

Tecnologie dell Informazione e della Comunicazione (TIC) IPSIA San Benedetto del Tronto (AP) Le diverse componenti HARDWARE, pur opportunamente connesse ed alimentate dalla corrette elettrica, non sono in grado, di per sé, di elaborare, trasformare e trasmettere le informazioni. Per il funzionamento

Dettagli

MOTOROLA RHOELEMENTS SVILUPPA UNA APPLICAZIONE CHE FUNZIONI SU DIVERSI DISPOSITIVI E CON DIFFERENTI SISTEMI OPERATIVI.

MOTOROLA RHOELEMENTS SVILUPPA UNA APPLICAZIONE CHE FUNZIONI SU DIVERSI DISPOSITIVI E CON DIFFERENTI SISTEMI OPERATIVI. MOTOROLA RHOELEMENTS SVILUPPA UNA APPLICAZIONE CHE FUNZIONI SU DIVERSI DISPOSITIVI E CON DIFFERENTI SISTEMI OPERATIVI. MOTOROLA RHOELEMENTS BROCHURE COSÌ TANTI DISPOSITIVI MOBILE. VOLETE SVILUPPARE UNA

Dettagli

Guida di Keyboard Builder. 2009 Sielco Sistemi Srl

Guida di Keyboard Builder. 2009 Sielco Sistemi Srl Guida di Keyboard Builder Guida di Keyboard Builder Keyboard Builder è uno strumento che permette di costruire tastiere da visualizzare sullo schermo, utili per la realizzazione di applicazioni che operano

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica SOFTWARE Francesco Tura francesco.tura@unibo.it 1 Le componenti del calcolatore: HARDWARE E SOFTWARE HARDWARE parti che compongono fisicamente il calcolatore componente multifunzionale

Dettagli

Introduzione ai sistemi operativi

Introduzione ai sistemi operativi Introduzione ai sistemi operativi Che cos è un S.O.? Shell Utente Utente 1 2 Utente N Window Compilatori Assembler Editor.. DB SOFTWARE APPLICATIVO System calls SISTEMA OPERATIVO HARDWARE Funzioni di un

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

Lab. Programmazione Sistemi Mobili e Tablets

Lab. Programmazione Sistemi Mobili e Tablets Lab. Programmazione Sistemi Mobili e Tablets Anno Accademico : 2011-2012 Matricola Studente: De Guidi Enrico 156464 Titolo del Progetto: Let s go Data:04/09/12 Introduction: Let s go è un applicazione

Dettagli

VoiceSurvey. DOTVOCAL S.r.l. Via Greto di Cornigliano 6 R, 16152 Genova. Tel. +39 010 65 63 452, Fax +39 010 65 63 552. sito: http://www.dotvocal.

VoiceSurvey. DOTVOCAL S.r.l. Via Greto di Cornigliano 6 R, 16152 Genova. Tel. +39 010 65 63 452, Fax +39 010 65 63 552. sito: http://www.dotvocal. VoiceSurvey DOTVOCAL S.r.l. Via Greto di Cornigliano 6 R, 16152 Genova Tel. +39 010 65 63 452, Fax +39 010 65 63 552. sito: http://www.dotvocal.com INSTANT S.r.l. Via Sorio 47, 35141 Padova Tel. +39 049

Dettagli

Caratteristiche principali

Caratteristiche principali Caratteristiche principali Telefono piccolo e leggero con interfaccia USB per la telefonia VoIP via internet. Compatibile con il programma Skype. Alta qualità audio a 16-bit. Design compatto con tastiera

Dettagli

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci Manuale di Remote Desktop Connection Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci 2 Indice 1 Introduzione 5 2 Il protocollo Remote Frame Buffer 6 3 Uso di Remote Desktop

Dettagli

Compilazione rapporto di Audit in remoto

Compilazione rapporto di Audit in remoto Compilazione rapporto di Audit in remoto Installazione e manuale utente CSI S.p.A. V.le Lombardia 20-20021 Bollate (MI) Tel. 02.383301 Fax 02.3503940 E-mail: info@csi-spa.com Rev. 1.1 23/07/09 Indice Indice...

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