Lo sviluppo sarà diviso in passi incrementali. I file coinvolti ad ogni passo saranno indicati insieme alla descrizione del procedimento.
|
|
- Anna Maria Frigerio
- 8 anni fa
- Visualizzazioni
Transcript
1 SimpleAudioPlayer Realizzazione di un semplice player Audio. Introduzione Programmiamo una semplice applicazione Android che ci consenta di riprodurre dei file audio locali e/o remoti. Per rendere l applicazione più completa ed utilizzabile nella vita quotidiana di uno smartphone utilizzeremo un service per la riproduzione in background e registreremo dei BroadcastReceiver per reagire a degli eventi di sistema particolarmente importanti per la nostra applicazione. Lo sviluppo sarà diviso in passi incrementali. I file coinvolti ad ogni passo saranno indicati insieme alla descrizione del procedimento. Questo tutorial è incentrato sulla programmazione di applicazioni su piattaforma Android perciò alcune classi responsabili di funzionalità che esulano dallo scopo saranno già fornite nel progetto basesimplefeedreader. Semplice riproduzione di un file negli asset File coinvolti: Version1.java Nel nostro progetto sono presenti due sample audio in formato.ogg (prelevati dal sito wikipedia) che utilizzeremo per le nostre prove. Android mette a disposizione nel proprio SDK un oggetto chiamato MediaPlayer che consente con discreta facilità la riproduzione di vari formati multimediali: per un dettaglio dei formati disponibili consultare la pagina In questa prima versione provvediamo all inizializzazione dell oggetto MediaPlayer di Android nel metodo onstart() dell activity e successivamente provvediamo a far partire la riproduzione nel metodo onresume() dell activity. public void onstart(){ super.onstart(); mp = MediaPlayer.create(this, R.raw.yesterdaysample); public void onresume(){
2 super.onresume(); mp.start(); A questo punto se facciamo partire l app sentiremo riprodurre il file audio ma se chiudiamo l activity la riproduzione non si interromperà. In questo caso dobbiamo uccidere a mano il processo e possiamo farlo tramite la prospettiva DDMS in Eclipse. Se perdiamo il riferimento in Java all oggetto MediaPlayer abbiamo memory leak e non riusciremo più ad ottenere il controllo sull oggetto appena perso. Pagina 2 di 13
3 Interfaccia grafica e stop del MediaPlayer File coinvolti: Version2.java Per evitare il memory leak fermiamo la riproduzione del MediaPlayer e rilasciamolo per liberarne le risorse nel motodo onstop() dell activity. public void onstop (){ super.onstop(); mp.stop(); mp.release(); mp = null; Aggiungiamo inoltre un layout all activity con i classici pulsanti di pausa, play, avanti, indietro. Per ora attiveremo solo il pulsante di play/pausa. Per gestire meglio il ciclo di vita del media player aggiungiamo inoltre una variabile intera in cui annoteremo lo stato del riproduttore. public void oncreate (Bundle savedinstancestate){ super.oncreate(savedinstancestate); setcontentview(r.layout.version2); this.prevbutton = (Button) this.findviewbyid(r.id.prevbutton); this.playpausebutton = (Button) this.findviewbyid(r.id.playpausebutton); this.nextbutton = (Button) this.findviewbyid(r.id.nextbutton); this.playpausebutton.setonclicklistener(new View.OnClickListener() { ); public void onclick(view v) { if(mpstate == STATE_PLAYING){ mp.pause(); mpstate = STATE_PAUSED; playpausebutton.settext("play"); else{ mp.start(); mpstate = STATE_PLAYING; playpausebutton.settext("pause"); mpstate = STATE_UNDEFINED; Pagina 3 di 13
4 Interfaccia grafica evoluta File coinvolti: Version3.java In questa nuova versione aggiungeremo al layout una SeekBar e due TextView per avere un impatto visivo dell istante corrente di riproduzione. Quindi dopo aver modificato il layout dovremo ottenere il riferimento ai nuovo widget anche nell activity Version3.java. Oltre a questo registreremo un listener per reagire agli spostamenti sulla SeekBar richiesti dall utente in modo da scorrere il file riprodotto all istante desiderato. public void oncreate (Bundle savedinstancestate){ this.progressbar.setonseekbarchangelistener(new SeekBar.OnSeekBarChangeListener() { public void onstoptrackingtouch(seekbar seekbar) { public void onstarttrackingtouch(seekbar seekbar) { ); public void onprogresschanged(seekbar seekbar, int progress, boolean fromuser) { // we should distinguish between a seek caused by an // user, or by an update through the polling thread if (fromuser) { mp.seekto(progress); È necessario inoltre inizializzare correttamente la SeekBar con il massimo valore che può raggiungere (nel nostro caso la durata del file audio) ed il suo stato iniziale. Vogliamo anche che la SeekBar si resetti quando il file audio finisce: per questo l oggetto MediaPlayer permette di registrare un listener che viene invocato nel momento in cui il termine del file viene raggiunto. public void onstart (){ mp.setoncompletionlistener(new MediaPlayer.OnCompletionListener() { Pagina 4 di 13
5 ); public void oncompletion(mediaplayer mp) { playpausebutton.settext("play"); progressbar.setprogress(0); mpstate = STATE_PREPARED; mpstate = STATE_PREPARED; // initialize properly the progress bar // with the info about the current track progressbar.setmax(mp.getduration()); progressbar.setprogress(mp.getcurrentposition()); A questo punto se avviassimo l applicazione noteremmo che la SeekBar non viene aggiornata durante la riproduzione del file: ed effettivamente è giusto così, perché in nessun punto abbiamo codificato il concetto di aggiornarla periodicamente. Per questo compito il MediaPlayer non prevede nessun metodo o listener particolare, perciò l unica alternativa che abbiamo è creare un thread che vada periodicamente a valutare lo stato di riproduzione del MediaPlayer. Il concetto di thread in Android non ha differenze rispetto ai concetti classici: quello su cui dobbiamo fare attenzione è il seguente segmento di codice: if (mp!= null && (mpstate == STATE_PLAYING mpstate == STATE_PAUSED)) { Version3.this.runOnUiThread(new Runnable() { public void run() { // update progress bar progressbar.setprogress(mp.getcurrentposition()); // and progress/duration textview currentprogresstv.settext( TimeUtil.formatProgress(mp.getCurrentPosition())); durationtv.settext( TimeUtil.formatProgress(mp.getDuration())); ); else { Version3.this.runOnUiThread(new Runnable() { public void run() { progressbar.setprogress(0); currentprogresstv.settext(timeutil.formatprogress(-1)); durationtv.settext(timeutil.formatprogress(-1)); ); Pagina 5 di 13
6 Questa parte di codice appena mostrata viene eseguita nel metodo run() di una sottoclasse di Thread, quindi viene eseguita da un Thread differente rispetto a quello dell interfaccia grafica. In Android, l interfaccia grafica NON può essere modificata da un Thread che non sia quello principale dell UI: per questo se provassimo a modificarla direttamente dal Thread in polling sul MediaPlayer verrebbe sollevata un eccezione. Il sistema ci aiuta mettendoci a disposizione alcune tecniche per far eseguire del codice nel Thread UI: la tecnica utilizzata in questo caso è la possibilità di passare un Runnable con il codice da eseguire nel metodo runonuithread() della classe Activity. Il codice dell esempio è molto semplice ed auto esplicativo: semplicemente viene aggiornato il progresso nella SeekBar e l istante di riproduzione nelle TextView. Pagina 6 di 13
7 Disaccoppiamento grafica-servizio File coinvolti: Version4.java ServiceVersion4.java Il software fin qui creato permette di riprodurre una canzone, scorrerla e metterla in pausa: ma per farlo dobbiamo per forza continuare ad avere la nostra activity attiva. Per risolvere questo problema, in questa nuova versione introdurremo un Service in cui sposteremo la gestione del MediaPlayer in modo che continui a funzionare correttamente anche chiudendo l activity principale. In particolare vogliamo un foreground service, tramite il quale magari ripristinare l activity di gestione del player. Per questo, nel file ServiceVersion4.java, i passi cruciali sono riportati nel codice seguente: public int onstartcommand(intent intent, int flags, int startid) { // make the service "foreground", so it acquires max priority Intent i = new Intent(this, Version4.class); i.setflags(intent.flag_activity_new_task Intent.FLAG_ACTIVITY_SINGLE_TOP); pi = PendingIntent.getActivity(this, 1, i, 0); // create the notification that will be shown in the system bar notification = new Notification(android.R.drawable.ic_media_play, "Audio Tutorial", System.currentTimeMillis()); notification.setlatesteventinfo(this, "Audio Tutorial", "Service started", pi); notification.flags = Notification.FLAG_ONGOING_EVENT; startforeground(notification_id, notification); // we want this service to continue running until it is explicitly // stopped, so return sticky return START_STICKY; public IBinder onbind(intent arg0) { clientsbound = true; return binder; public boolean onunbind(intent i) { clientsbound = false; return super.onunbind(i); /** Pagina 7 di 13
8 * Custom binder for the AudioTutorial service * */ public class ServiceBinder extends Binder { ServiceVersion4 getservice() { return ServiceVersion4.this; Nel metodo onstartcommand() creiamo dapprima una notifica che verrà visualizzato nella StatusBar di Android: la cosa interessante è che passiamo un PendingIntent che fa riferimento a Version4.class che conterrà l UI per controllare la riproduzione audio, in modo che quando un utente aprirà la notifica verrà avviata questa Activity. Impostiamo inoltre il flag FLAG_ONGOING_EVENT per indicare che la notifica non deve essere rimossa dalla StatusBar; infine, chiamando il metodo startforeground() avvieremo il servizio come foreground service. I servizi in Android possono essere legati ad un activity: i metodi onbind e onunbind forniscono le chiamate eseguite rispettivamente all atto di instaurazione e rilascio del legame. In particolare nel metodo onbind dobbiamo ritornare un oggetto che fornisca un Binder con il servizio attuale, in modo che il chiamante possa operare in qualche maniera diretta con il servizio. Nel nostro caso abbiamo creato una sottoclasse di Binder che restituisce semplicemente il servizio di cui si è effettuato il legame, in modo che il chiamante possa accedere alla sua interfaccia. Vedremo poi nell activity come questo legame ci sarà utile. Oltre a queste implementazioni, il resto del servizio non presenta nulla di particolare dato che presenta fondamentale un semplice wrapper dell oggetto MediaPlayer. Passando ora in esamine l activity, le novità interessanti sono riportate qui di seguito: private ServiceConnection mconnection = new ServiceConnection() { public void onserviceconnected(componentname name, IBinder s) { // called when the connection is made Log.i(TAG, "Getting a reference to the foreground service"); service = ((ServiceVersion4.ServiceBinder) s).getservice(); public void onservicedisconnected(componentname name) { Pagina 8 di 13
9 Log.i(TAG, "Service disconnected"); // received when the service unexpectedly disconnects service = null; ; public void onstart() { super.onstart(); // initialize a polling thread with an interval of a second pollingthread = new PollingThread(POLLING_DELAY); // start the polling thread pollingthread.start(); // start service Intent serviceintent = new Intent(this, ServiceVersion4.class); startservice(serviceintent); // and bind it bindservice(serviceintent, mconnection, Context.BIND_AUTO_CREATE); public void onstop() { super.onstop(); // stop the polling thread pollingthread.stoppolling(); pollingthread = null; // unbind the service unbindservice(mconnection); Notiamo subito che i metodi onstart() e onstop() presentano delle chiamate per avviare il servizio (startservice()), effettuarne il binding (bindservice()) e rilasciare il binding(unbindservice()). In particolare la chiamata bindservice() si aspetta tra i parametri un oggetto molto importante che è il gestore della connessione (ServiceConnection). Nel nostro caso passiamo mconnection che semplicemente inizializzerà l attributo service al momento della connessione del servizio e lo renderà null nel momento della disconnessione: tra la connessione e la disconnessione, potremo chiamare direttamente i metodi pubblici del nostro servizio. Ed infatti, il resto delle modifiche prevede semplicemente di chiamare i vari metodi (play/pause/seekto/etc..) direttamente sul servizio. Pagina 9 di 13
10 Reagire ad eventi broadcast File coinvolti: ServiceVersion5.java ExtActivity.java NoiseBroadcastReceiver.java AndroidManifest.xml Ora provvediamo ad implementare alcune caratteristiche particolari che ci permetteranno di valutare l utilizzo di un importante componente di Android: il BroadcastReceiver. Nel nostro caso vogliamo semplicemente registrare un BroadcastReceiver che venga chiamato quando l audio del device potrebbe diventare rumoroso, ad esempio perché sono stati appena scollegati gli auricolari e quindi l audio verrebbe riprodotto direttamente dagli speaker del device: in questa caso, vogliamo che la nostra applicazione semplicemente metta in pausa il player per evitare possibili situazione di imbarazzo. Il codice (all interno di NoiseBroadcastReceiver.java) che svolgerà questa funzionalità è molto semplice. public void onreceive(context c, Intent intent) { if (intent.getaction().equals( android.media.audiomanager.action_audio_becoming_noisy)) { // retrieve our service if it's running Intent serviceintent = new Intent(c, ServiceVersion4.class); IBinder servicebinder = this.peekservice(c, serviceintent); if (servicebinder!= null) { ServiceVersion5 service = ((ServiceVersion5.ServiceBinder) servicebinder).getservice(); if (service.getstate() == PlayerState.STATE_PLAYING) { // since the audio is becoming noisy and the player // is playing, we should pause it, otherwise the // user may be angry with us service.pausesong(); else { Log.i(TAG, "Service not started, so do nothing"); Il metodo onreceive() di un BroadcastReceiver viene chiamato quando accade un evento broadcast per il quale lo abbiamo registrato. Nel nostro caso Pagina 10 di 13
11 l evento è android.media.audiomanager.action_audio_becoming_noisy: in questa situazione cerchiamo di ottenere il binder al nostro servizio e, se il servizio è attivo e sta riproducendo, mettere in pausa la riproduzione. Per registrare un BroadcastReceiver abbiamo due possibilità: farlo in maniera dinamica dal codice Java o in maniera statica nell AndroidManifest. Vediamo qui di seguito la seconda possibilità, il Manifest: <!-- --> <receiver android:name=".noisebroadcastreceiver" > <intent-filter> <action android:name="android.media.audio_becoming_noisy" /> </intent-filter> </receiver> <!-- --> Anche le applicazioni possono lanciare Intent Broadcast; per questo modifichiamo il servizio creato precedentemente inserendo un nuovo metodo come di seguito: public static final String BROADCAST_INTENT = "it.uniurb.androidcoursecamp.audioplayer.status_changed"; public static final String EXTRA_STATE = "state"; private void broadcaststate() { // send broadcast intent Intent bi = new Intent(ServiceVersion5.BROADCAST_INTENT); bi.putextra(extra_state, mpstate); this.sendbroadcast(bi); Chiameremo questo metodo ogni qual volta i metodi all interno del servizio facciano cambiare di stato il MediaPlayer: in questa maniera eventuali applicazioni esterne potranno accorgersi di questo cambiamento ed operare di conseguenza. Per esemplificare questa possibilità e mostrare anche la tecnica di registrazione dinamica dei BroadcastReceiver osserviamo il codice della classe ExtActivity.java: public void onstart() { super.onstart(); // register our receiver for ServiceVersion4 intent IntentFilter f = new IntentFilter(ServiceVersion5.BROADCAST_INTENT); this.registerreceiver(mreceiver, f); Pagina 11 di 13
12 public void onstop() { super.onstop(); // unregister our receiver this.unregisterreceiver(mreceiver); private BroadcastReceiver mreceiver = new BroadcastReceiver() { public void onreceive(context context, Intent i) { if(i.getaction().equals(serviceversion5.broadcast_intent)){ String msg; // retrieve state from the intent int state=i.getintextra(serviceversion5.extra_state, -1); if (state == PlayerState.STATE_PLAYING) { msg = "Now playing"; else if (state == PlayerState.STATE_PAUSED) { msg = "Player paused"; else if (state == PlayerState.STATE_STOPPED) { msg = "Player stopped"; else { msg = "Undefined state"; Log.w(TAG, I have not found any state information in the broadcast intent!"); ; // notify user the new state Toast.makeText(context, msg, Toast.LENGTH_LONG).show(); Quando l activity viene avviata (onstart()) creiamo un IntentFilter per filtrare solo gli eventi a cui siamo interessati, nel nostro caso ServiceVersion5.BROADCAST_INTENT. Quindi registriamo il BroadcastReceiver (che è stato definito nelle linee di codice successive) con il filtro appena specificato tramite la chiamata registerreceiver(). Specularmente, quando l activity viene fermata (onstop()) rimuoviamo la registrazione del BroadcastReceiver perché non siamo più interessati ad essere notificati per l evento. Il BroadcastReceiver definito è molto semplice e segue la struttura del BroadcastReceiver spiegato precedentemente: quando capita l evento per cui ci siamo registrati, controlliamo lo stato del servizio e emaniamo un Toast informativo appropriato. Ovviamente questo esempio è molto banale, ma il Pagina 12 di 13
13 funzionamento di base è uguale per tutti i BroadcastReceiver, quindi prevedere comportamenti più complessi ed allo stesso tempo utili è solo questione di fantasia ed ingegno. Pagina 13 di 13
Android. Android03: Ciclo di vita di una Activity. diegozabot@yahoo.it
Android Android03: Ciclo di vita di una Activity diegozabot@yahoo.it Ciclo di vita Ciclo di vita La classe Activity gestisce i propri stati definendo una serie di eventi che ne governano il ciclo. Spetta
DettagliAndroid. Ciclo di vita di Activity, Service e Processi
Android Ciclo di vita di Activity, Service e Processi Introduzione In questa lezione analizzeremo il ciclo di vita delle Activity e dei Service mettendo in evidenza i criteri utilizzati da Android nella
DettagliProgrammazione 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;
DettagliCiclo di vita delle aevità Android Mobile Programming Prof. R. De Prisco
Ciclo di vita delle aevità Ogni AcHvity ha dei metodi standard A(vità non esiste 1. oncreate() 2. onstart() 3. onresume() A(vità in esecuzione 4. onpause() 5. onstop() 6. ondestroy() A(vità non esiste
DettagliSistemi Mobili e Wireless Android - Servizi
Sistemi Mobili e Wireless Android - Servizi Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Servizi Un servizio è un componente
DettagliUso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012
Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono
DettagliLa geolocalizzazione
La geolocalizzazione La maggior parte dei dispositivi mobili di ultima generazione è dotata di un antenna GPS che permette di conoscere, in breve tempo e con la precisione di qualche metro, la propria
Dettagli12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
DettagliModulo 4: Ereditarietà, interfacce e clonazione
Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo
DettagliMobile Programming. Prova scritta del 28/01/2015. Prof. De Prisco. Corso di laurea in Informatica
Corso di laurea in Informatica Mobile Prof. De Prisco Prova scritta del 28/01/2015 NOME: COGNOME: MATRICOLA: Domande Punti 1 /100 2 /100 3 /100 4 /100 5 /100 6 /100 7 /100 8 /100 9 /100 10 /100 TOTALE
DettagliMICHELANGELO Piattaforma autorizzativa per la gestione di interventi riservata ai fornitori
MICHELANGELO Piattaforma autorizzativa per la gestione di interventi riservata ai fornitori Questa documentazione conterrà tutti i dettagli operativi relativi all impatto della nuova applicazione web di
DettagliAndroid. Intent e intent-filter. diegozabot@yahoo.it
Android Intent e intent-filter diegozabot@yahoo.it Intent Cos è un Intent Un intent è una richiesta da parte di un componente di una funzionalità che viene implementata in un altro componente. Viene utilizzato
DettagliAndroid. 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)
DettagliCorso 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
DettagliJava threads (2) Programmazione Concorrente
Java threads (2) emanuele lattanzi isti information science and technology institute 1/28 Programmazione Concorrente Utilizzo corretto dei thread in Java emanuele lattanzi isti information science and
DettagliSistemi 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
Dettagli11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0
11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE
DettagliALBO PRETORIO WEB MANUALE DELLA PROCEDURA SOMMARIO. Uso del manuale. Informazioni generali. Interfaccia grafica. Guida di riferimento
#K$+ SOMMARIO ALBO PRETORIO WEB SOMMARIO Uso del manuale Informazioni generali Interfaccia grafica Guida di riferimento Guida alle operazioni ricorrenti Appendici # 000 K SOMMARIO $ SOMMARIO + 00001 Pagina
DettagliCorso Corso di di programmazione di di sistemi mobile 1 1. Android Laboratorio. Primo Progetto, Toast
Corso Corso di di programmazione di di sistemi mobile 1 1 Android Laboratorio Primo Progetto, Toast Corso Corso di di programmazione di di sistemi mobile 2 2 Android Studio Per realizzare le nostre applicazioni
DettagliModulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress
Copyright Andrea Giavara wppratico.com Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress 1. Il pannello amministrativo 2. I dati importanti 3. Creare il database - Cpanel - Plesk
DettagliMultithreading in Java. Fondamenti di Sistemi Informativi 2014-2015
Multithreading in Java Fondamenti di Sistemi Informativi 2014-2015 Multithreading La programmazione concorrente consente di eseguire più processi o thread nello stesso momento. Nel secondo caso si parla
DettagliMOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY
MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY 1 Sommario 1. INTRODUZIONE... 3 2. GET METAIO... 4 2.1. PREREQUISITI... 4 2.2. INTALLAZIONE... 4 2.3. PROGETTI ESEMPLIFICATIVI... 4 3. USARE
DettagliRealizzazione di una semplice applicazione HelloWorld con una introduzione delle API di base del SDK Android.
HelloWorld App Realizzazione di una semplice applicazione HelloWorld con una introduzione delle API di base del SDK Android. Introduzione Programmiamo una applicazione di base Android, prendendo confidenza
DettagliMANUALEDIUTILIZZO MODULO CRM POSTVENDITA
MANUALEDIUTILIZZO MODULO CRM POSTVENDITA INDICE INTRODUZIONE INSERIMENTO CHIAMATA CHIAMATE Dettaglio Chiamate Macchine Coinvolte Documenti Riepilogo MACCHINE Dettaglio Macchine Documenti Interventi MACCHINE
DettagliGESTIONE DEI PROCESSI
Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Grafica: Thread versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliInvio SMS. DM Board ICS Invio SMS
Invio SMS In questo programma proveremo ad inviare un SMS ad ogni pressione di uno dei 2 tasti della DM Board ICS. Per prima cosa creiamo un nuovo progetto premendo sul pulsante (Create new project): dove
Dettagli2 Fortino Lugi. Figura Errore. Nel documento non esiste testo dello stile specificato.-3 -- Finestra attiva o nuovo documento
1 Fortino Lugi STAMPA UNIONE OFFICE 2000 Vi sarà capitato sicuramente di ricevere lettere pubblicitarie indirizzate personalmente a voi; ovviamente quelle missive non sono state scritte a mano, ma utilizzando
DettagliMac Application Manager 1.3 (SOLO PER TIGER)
Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
DettagliEsistono sostanzialmente due metodi per inserire un video online (preso da siti di video sharing come Youtube) in un powerpoint slideshow :
Arricchire con contenuti multimediali uno slideshow di Powerpoint, sia per fare presentazioni a carattere professionale, didattico o per presentare una tesi-relazione, in determinate circostanze può veramente
DettagliIl calendario di Windows Vista
Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative
DettagliLaurea Specialistica in Informatica, Tecnologie Informatiche Anno Accademico 2008/2009 Reti Applicazioni e Servizi
Laurea Specialistica in Informatica, Tecnologie Informatiche Anno Accademico 2008/2009 Reti Applicazioni e Servizi Implementazione di una MIDlet che realizza un sistema di voto Christian Tiralosi Sviluppatori:
DettagliLA GESTIONE DELLE VISITE CLIENTI VIA WEB
LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici
DettagliCapitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti
Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta
DettagliRealizzazione di una classe con un associazione
Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe
DettagliICARO Terminal Server per Aprile
ICARO Terminal Server per Aprile Icaro è un software aggiuntivo per Aprile (gestionale per centri estetici e parrucchieri) con funzionalità di terminal server: gira sullo stesso pc dove è installato il
DettagliUtilizzo della APP IrriframeVoice. Versione 1.0 maggio 2015
Utilizzo della APP IrriframeVoice Versione 1.0 maggio 2015 0.0 Installazione Sul telefono o sul tablet andare sullo store delle applicazioni per scaricare la APP A seconda del sistema operativo del telefono
DettagliGuida all uso di Java Diagrammi ER
Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con
DettagliConfiguration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1
Tutorial Configuration Managment Configurare il servizio EC2 su AWS Pagina 1 Sommario 1. INTRODUZIONE... 3 2. PROGRAMMI NECESSARI... 4 3. PANNELLO DI CONTROLLO... 5 4. CONFIGURARE E LANCIARE UN ISTANZA...
DettagliManuale Operativo per l utilizzo della piattaforma E-Learning@AQ. Versione 1.1
Manuale Operativo per l utilizzo della piattaforma E-Learning@AQ Versione 1.1 Autore Antonio Barbieri, antonio.barbieri@gmail.com Data inizio compilazione 11 maggio 2009 Data revisione 14 maggio 2009 Sommario
DettagliRegistratori di Cassa
modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...
DettagliPortale tirocini. Manuale utente Per la gestione del Progetto Formativo
GESTIONE PROGETTO FORMATIVO Pag. 1 di 38 Portale tirocini Manuale utente Per la gestione del Progetto Formativo GESTIONE PROGETTO FORMATIVO Pag. 2 di 38 INDICE 1. INTRODUZIONE... 3 2. ACCESSO AL SISTEMA...
DettagliCREA IL CATALOGO DEI TUOI PRODOTTI SU IPAD E IPHONE CON UN APP. ANZI, CON UPP!
CREA IL CATALOGO DEI TUOI PRODOTTI SU IPAD E IPHONE CON UN APP. ANZI, CON UPP! COS È UPP!? upp! è l applicazione di punta della divisione mobile di Weblink srl, dedicata allo sviluppo di applicazioni per
Dettagli1) GESTIONE DELLE POSTAZIONI REMOTE
IMPORTAZIONE ESPORTAZIONE DATI VIA FTP Per FTP ( FILE TRANSFER PROTOCOL) si intende il protocollo di internet che permette di trasferire documenti di qualsiasi tipo tra siti differenti. Per l utilizzo
DettagliIntroduzione a Emptypage FTP. I problemi che il software Emptypage FTP si propone di risolvere sono: Usare il tutorial
Introduzione a Emptypage FTP Emptypage FTP è un software che permette di pubblicare sul proprio sito web immagini, miniature e files in generale. Tutti i giorni, per chi ha un sito dinamico (basato cioè
DettagliLezione 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
DettagliGuida I-Help App. Android
Guida I-Help App. Android Manuale d uso dell applicazione I-Help per dispositivi con sistema operativo Android Ufficio Tecnico ADiTech S.R.L. 04/11/2015 ADITECH S.R.L INDIRIZZO: VIA GHINO VALENTI, 2, 60131,
DettagliTutorial per il modulo Composizione e tecnica fotografica Un approfondimento sulla fotografia panoramica. Roberto Gonella, Alberto Terragni
Tutorial per il modulo Composizione e tecnica fotografica Un approfondimento sulla fotografia panoramica Roberto Gonella, Alberto Terragni INDICE 1. Introduzione... 2 2. Scattare e importare le fotografie...
DettagliNOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0
Prodotto Inaz Download Manager Release 1.3.0 Tipo release COMPLETA RIEPILOGO ARGOMENTI 1. Introduzione... 2 2. Architettura... 3 3. Configurazione... 4 3.1 Parametri di connessione a Internet... 4 3.2
DettagliOttava Esercitazione. introduzione ai thread java mutua esclusione
Ottava Esercitazione introduzione ai thread java mutua esclusione Agenda Esempio 1 Concorrenza in Java: creazione ed attivazione di thread concorrenti. Esercizio 2 da svolgere Concorrenza in Java: sincronizzazione
DettagliOggetti Lezione 3. aspetti generali e definizione di classi I
Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione
DettagliSOMMARIO... 3 INTRODUZIONE...
Sommario SOMMARIO... 3 INTRODUZIONE... 4 INTRODUZIONE ALLE FUNZIONALITÀ DEL PROGRAMMA INTRAWEB... 4 STRUTTURA DEL MANUALE... 4 INSTALLAZIONE INRAWEB VER. 11.0.0.0... 5 1 GESTIONE INTRAWEB VER 11.0.0.0...
DettagliISTRUZIONI DI INSTALLAZIONE PER ANDROID
ISTRUZIONI DI INSTALLAZIONE PER ANDROID Come Installare l App: Operazioni preliminari Prima di installare l App «Doxameter+» è necessario attivare l opzione Origini sconosciute, per consentire l installazione
DettagliCome modificare la propria Home Page e gli elementi correlati
Come modificare la propria Home Page e gli elementi correlati Versione del documento: 3.0 Ultimo aggiornamento: 2006-09-15 Riferimento: webmaster (webmaster.economia@unimi.it) La modifica delle informazioni
DettagliManuale Utente Albo Pretorio GA
Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate
DettagliManuale Utente Amministrazione Trasparente GA
Manuale Utente GA IDENTIFICATIVO DOCUMENTO MU_AMMINISTRAZIONETRASPARENTE-GA_1.0 Versione 1.0 Data edizione 03.05.2013 1 Albo Pretorio On Line TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione
DettagliIntroduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali
a Visual Basic Lezione 1 Concetti base e istruzioni condizionali Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Un esempio:
DettagliCorso Drupal «Project management»
Corso Drupal «Project management» Pino Vasarelli, Andrea Vivaldi Iit Istituto di Informatica e Telematica del CNR Project management Il sito Project management deve avere le seguenti caratteristiche: la
Dettagli19. Introduzione al multi-threading
19. Introduzione al multi-threading Marco Faella Dip. Ing. Elettrica e Tecnologie dell'informazione Università di Napoli Federico II Corso di Linguaggi di Programmazione II I thread I thread, o processi
DettagliRECUPERO DATI LIFO DA ARCHIVI ESTERNI
RECUPERO DATI LIFO DA ARCHIVI ESTERNI È possibile importare i dati relativi ai LIFO di esercizi non gestiti con Arca2000? La risposta è Sì. Esistono tre strade per recuperare i dati LIFO per gli articoli
Dettaglimanuale utente per Viabizzuno online
manuale utente per Viabizzuno online nuova piattaforma di e-business Viabizzuno il primo approccio con il nuovo sistema è la pagina di autenticazione. già qui appare la prima novità, ovvero il recupero
DettagliTricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002
Tricks & Tips [Access] - Michele de Nittis - Tutorial - ActiveX - Controllo Tree View Versione: 1 Data Versione: venerdì 30 agosto 2002 1 SOMMARIO PREMESSA...3 INSERIMENTO DEL CONTROLLO...3 AGGIUNTA DELLE
DettagliProgrammazione a Oggetti Lezione 10. Ereditarieta
Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare
Dettagli10 - Programmare con gli Array
10 - Programmare con gli Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
DettagliIstruzioni 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.
DettagliTUTORIAL PER UTILIZZO CATALOGO RICAMBI WEB
TUTORIAL PER UTILIZZO CATALOGO RICAMBI WEB 1. COME ACCEDERE AL CATALOGO... 2 2. DESCRIZIONE BARRA DEL MENU... 3 2.1 LINGUE... 3 2.2 ACCEDI/RESET... 4 2.3 RICERCA RICAMBI... 4 2.3.1 RICERCA PER DESCRIZIONE...
DettagliStrumenti per il testing di applicazioni in ambiente Android
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica tesi di laurea Strumenti per il testing di applicazioni in ambiente Android Anno Accademico 2010\11 relatore Ch.mo prof. Marcello Cinque candidato
DettagliManuale per la configurazione di AziendaSoft in rete
Manuale per la configurazione di AziendaSoft in rete Data del manuale: 7/5/2013 Aggiornamento del manuale: 2.0 del 10/2/2014 Immagini tratte da Windows 7 Versione di AziendaSoft 7 Sommario 1. Premessa...
DettagliGESCO MOBILE per ANDROID
GESCO MOBILE per ANDROID APPLICAZIONE PER LA GESTIONE DEI DISPOSITIVI GSM GESCO aggiornamenti su www.gesco.it GUIDA ALL USO Vi ringraziamo per aver scelto la qualità dei prodotti GESCO. Scopo di questa
DettagliCreare e ripristinare immagine di sistema con Windows 8
Creare e ripristinare immagine di con Windows 8 La versione Pro di Windows 8 offre un interessante strumento per il backup del computer: la possibilità di creare un immagine completa del, ovvero la copia
DettagliGestione delle formazione
IL SOFTWARE PER LA SICUREZZA E L AMBIENTE STRUMENTO Individuazione delle esigenze e programmazione della formazione Gestione delle formazione Il metodo di Risolvo per gestire un piano formativo dinamico
DettagliGestione Risorse Umane Web
La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...
DettagliFOXWave 1.0.0 Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA
FOXWave 1.0.0 Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA Redatto da IZ1FAL Secco Marco Pagina 1 di 15 INDICE 1 1- INSTALLAZIONE... 3 1-1 Scaricare i pacchetti aggiornati... 3 1-2 Startup
DettagliProf. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:
LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto
DettagliLUdeS Informatica 2 EXCEL. Seconda parte AA 2013/2014
LUdeS Informatica 2 EXCEL Seconda parte AA 2013/2014 STAMPA Quando si esegue il comando FILE STAMPA, Excel manda alla stampante tutte le celle del foglio di lavoro corrente che hanno un contenuto. Il numero
DettagliMANUALE ESSE3 Gestione Registro delle lezioni
MANUALE ESSE3 Gestione Registro delle lezioni DOCENTI 1 INDICE 1. INTRODUZIONE E ACCESSO... 3 2. GESTIONE DEL REGISTRO... 4 2.1. Informazioni generali... 6 2.2. Stato del Registro... 7 2.2.1. Transizioni
Dettagli13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti
13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
DettagliGESTIONE CANTINA MANUALE UTENTE. @caloisoft GESTIONE CANTINA 1
GESTIONE CANTINA MANUALE UTENTE @caloisoft GESTIONE CANTINA 1 IL PROGRAMMA CANTINA Si tratta di un programma per la gestione di una cantina che permette di mantenere un archivio aggiornato di tutte le
DettagliU N I V E R S I T À D E G L I S T U D I D I S A L E R N O
U N I V E R S I T À D E G L I S T U D I D I S A L E R N O Guida rapida per l utilizzo del servizio HDA - Web Versione 1.0 Giugno 2004 SOMMARIO 1 Introduzione... 2 1.1 Scopo... 2 2 Modalità di inoltro di
DettagliKommunikApp ISTRUZIONI D USO
KommunikApp ISTRUZIONI D USO 1. Scarica l App e installala sul dispositivo. 2. Apri l App a. Se hai già provveduto all acquisto di un numero della rivista o dell abbonamento annuale, inserisci nel campo
DettagliPowerPoint 2007 Le funzioni
PowerPoint 2007 Le funzioni Introduzione Cos è un ipertesto L' ipertesto è un testo organizzato in link, o collegamenti ad altre parti del testo e/o altri testi, in modo da consentire all utente di scegliere
DettagliDatabase 1 biblioteca universitaria. Testo del quesito
Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole
DettagliManuale NetSupport v.10.70.6 Liceo G. Cotta Marco Bolzon
NOTE PRELIMINARI: 1. La versione analizzata è quella del laboratorio beta della sede S. Davide di Porto, ma il programma è presente anche nel laboratorio alfa (Porto) e nel laboratorio di informatica della
DettagliL amministratore di dominio
L amministratore di dominio Netbuilder consente ai suoi clienti di gestire autonomamente le caselle del proprio dominio nel rispetto dei vincoli contrattuali. Ciò è reso possibile dall esistenza di un
DettagliINTRODUZIONE I CICLI DI BORSA
www.previsioniborsa.net 1 lezione METODO CICLICO INTRODUZIONE Questo metodo e praticamente un riassunto in breve di anni di esperienza e di studi sull Analisi Tecnica di borsa con specializzazione in particolare
DettagliSistemico Srl unip. Via Ceresani, 8. 60044 Fabriano AN. Tel 0732 251820. Powered by Sistemico
2014 Sistemico Srl unip. Via Ceresani, 8 Powered by Sistemico 60044 Fabriano AN Tel 0732 251820 INDICE INDICE 2 Istallazione della APP... 3 Per Android... 3 Per IOS 4 Avvio APP... 5 Collegamento elettrocardiografo
DettagliGestVetrine 1.1 versione novembre 2014
GestVetrine 1.1 versione novembre 2014 0 GestVetrine 1.1 GestVetrine 1.0 Indice Indice pag.1 1. Finalità pag.2 2. Gestione screen pag.2 3. Come Accedere pag.3 4. Come Creare un negozio pag.4 5. Come Creare
DettagliEsercizio data base "Biblioteca"
Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA5 B1 Gestione eventi 1 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti AWT o Swing Programmazione ad eventi 2 1 Introduzione Le interfacce create
DettagliAutomazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it
Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione
DettagliINDICE. IL CENTRO ATTIVITÀ... 3 I MODULI... 6 IL MY CLOUD ANASTASIS... 8 Il menu IMPORTA... 8 I COMANDI DEL DOCUMENTO...
MANCA COPERTINA INDICE IL CENTRO ATTIVITÀ... 3 I MODULI... 6 IL MY CLOUD ANASTASIS... 8 Il menu IMPORTA... 8 I COMANDI DEL DOCUMENTO... 12 I marchi registrati sono proprietà dei rispettivi detentori. Bologna
DettagliDirezione Centrale per le Politiche dell Immigrazione e dell Asilo
Direzione Centrale per le Politiche dell Immigrazione e dell Asilo Sistema inoltro telematico domande di nulla osta, ricongiungimento e conversioni Manuale utente Versione 2 Data creazione 02/11/2007 12.14.00
DettagliFIRESHOP.NET. Gestione completa delle fidelity card & raccolta punti. Rev. 2014.3.1 www.firesoft.it
FIRESHOP.NET Gestione completa delle fidelity card & raccolta punti Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 3 La gestione delle fidelity card nel POS... 4 Codificare una nuova fidelity
DettagliLezione 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
DettagliMOCA. Modulo Candidatura. http://www.federscacchi.it/moca. moca@federscacchi.it. [Manuale versione 1.0 marzo 2013]
MOCA Modulo Candidatura http://www.federscacchi.it/moca moca@federscacchi.it [Manuale versione 1.0 marzo 2013] 1/12 MOCA in breve MOCA è una funzionalità del sito web della FSI che permette di inserire
DettagliMon Ami 3000 Multimagazzino Gestione di più magazzini fisici e/o logici
Prerequisiti Mon Ami 3000 Multimagazzino Gestione di più magazzini fisici e/o logici L opzione Multimagazzino è disponibile per le versioni Azienda Light e Azienda Pro. Introduzione L opzione Multimagazzino
Dettagli. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi
Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare
DettagliManuale di Aggiornamento BOLLETTINO. Rel. 4.90.1D1. DATALOG Soluzioni Integrate a 32 Bit
KING Manuale di Aggiornamento BOLLETTINO Rel. 4.90.1D1 DATALOG Soluzioni Integrate a 32 Bit - 2 - Manuale di Aggiornamento Sommario 1 PER APPLICARE L AGGIORNAMENTO... 3 1.1 Update comune... 4 2 NOVITÀ
Dettaglie-design Manuale d uso
e-design Manuale d uso 1. INFO GENERALI 3 2. DOWNLOAD ED INSTALLAZIONE DI E-DESIGN 4 3. PRIMO AVVIO DI E-DESIGN 7 4. REGISTRAZIONE ED ACCESSO ALLE APPLICAZIONI 8 5. AVVIO DI UN DESIGN SOFTWARE 12 6. START
Dettagli