Lo sviluppo sarà diviso in passi incrementali. I file coinvolti ad ogni passo saranno indicati insieme alla descrizione del procedimento.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Lo sviluppo sarà diviso in passi incrementali. I file coinvolti ad ogni passo saranno indicati insieme alla descrizione del procedimento."

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

Realizzazione di una semplice applicazione HelloWorld con una introduzione delle API di base del SDK Android.

Realizzazione 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

Dettagli

Android. Android03: Ciclo di vita di una Activity. diegozabot@yahoo.it

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

Dettagli

Modulo 5. Programmazione base in Android

Modulo 5. Programmazione base in Android Modulo 5 Programmazione base in Android 5.1 Applicazioni ed Activity 5.1 Applicazione (Riassunto) Android package: file.apk Vive nella sua sandbox: Ogni applicazione appartiene ad un utente Linux, Ha uno

Dettagli

Corso Base. ActionSMS. Maurizio Cozzetto, Francesco Sarasini

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

Dettagli

Lezione 3 Le attività

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

Dettagli

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

Lezione 3 Le attività

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

Dettagli

Strumenti per il testing di applicazioni in ambiente Android

Strumenti 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

Dettagli

Programmazione. Android

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

Dettagli

Ciclo di vita delle aevità Android Mobile Programming Prof. R. De Prisco

Ciclo 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

Dettagli

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

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

Dettagli

SimpleFeedReader App

SimpleFeedReader App SimpleFeedReader App Realizzazione di un semplice feed reader Android. Introduzione Programmiamo una semplice applicazione Android. La nostra applicazione dovrà essere in grado di scaricare un feed RSS

Dettagli

Android. Ciclo di vita di Activity, Service e Processi

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

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

Sistemi Mobili e Wireless Android - Servizi

Sistemi 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

Dettagli

Mobile Programming. Prova scritta del 28/01/2015. Prof. De Prisco. Corso di laurea in Informatica

Mobile 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

Dettagli

Realizzazione di un servizio per la rilevazione di malfunzionamenti in ambiente Android

Realizzazione di un servizio per la rilevazione di malfunzionamenti in ambiente Android Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica tesi di laurea Realizzazione di un servizio per la rilevazione di malfunzionamenti in ambiente Android Anno Accademico 2011/12 relatore Ch.mo

Dettagli

La geolocalizzazione

La 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

Dettagli

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

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

Dettagli

Progetto e sviluppo di un applicazione client-server per la raccolta dati su fallimenti in ambiente Android

Progetto e sviluppo di un applicazione client-server per la raccolta dati su fallimenti in ambiente Android Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Elaborato finale in Sistemi operativi Progetto e sviluppo di un applicazione client-server per la raccolta dati su fallimenti in Anno Accademico

Dettagli

Android. Intent e intent-filter. diegozabot@yahoo.it

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

Dettagli

Android 4.0: overview, novità e funzionamento del sistesma operativo targato Google

Android 4.0: overview, novità e funzionamento del sistesma operativo targato Google Università degli Studi di Padova Facoltà di Ingegneria Corso di Laurea Triennale in Ingegneria Informatica tesi di laurea Android 4.0: overview, novità e funzionamento del sistesma operativo targato Google

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

MediaPlayer Android Mobile Programming Prof. R. De Prisco

MediaPlayer Android Mobile Programming Prof. R. De Prisco MediaPlayer 172 AudioManager controlla le sorgene audio e l output volume MediaPlayer Play di audio e video Sorgente dae Risorse locali URI (interni) URL MediaPlayer 173 Play di un file in res/raw MediaPlayer

Dettagli

Corso Base. Lezione 6. Maurizio Cozzetto, Francesco Sarasini

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

Dettagli

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

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

Dettagli

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati Activation In generale i Sistemi ad oggetti distribuiti sono progettati per lavorare con oggetti persistenti. Dato che questi sistemi saranno composti da migliaia (forse milioni) di tali oggetti, sarebbe

Dettagli

19. Introduzione al multi-threading

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

Dettagli

Lezione 6 Gestione degli eventi dei widget

Lezione 6 Gestione degli eventi dei widget A cura di Carlo Pelliccia Nelle due precedenti lezioni abbiamo conosciuto i principali widget di Android e le tecniche utili per richiamarli e disporli nel display dello smartphone. In questa lezione impareremo

Dettagli

MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY

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

Dettagli

ANDROID 4.2 JELLY BEAN Installazione e configurazione dell ambiente

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

Dettagli

Java threads (2) Programmazione Concorrente

Java 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

Dettagli

GESTIONE DEI PROCESSI

GESTIONE 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

Dettagli

Lezione 8 Notifiche e finestre di dialogo

Lezione 8 Notifiche e finestre di dialogo A cura di Carlo Pelliccia Andiamo ad aggiungere un ulteriore tassello nel quadro dell interazione fra un attività Android e l utente che ne fa uso. Nelle lezioni precedenti abbiamo già appreso numerose

Dettagli

MagiCum S.r.l. Progetto Inno-School

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

Dettagli

CONFIGURATION MANUAL

CONFIGURATION MANUAL RELAY PROTOCOL CONFIGURATION TYPE CONFIGURATION MANUAL Copyright 2010 Data 18.06.2013 Rev. 1 Pag. 1 of 15 1. ENG General connection information for the IEC 61850 board 3 2. ENG Steps to retrieve and connect

Dettagli

7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità:

7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità: 7 Esercitazione (svolta): due possibilità: Java RMI: callback Molte applicazioni richiedono un meccanismo publish/subscribe I partecipanti (client) necessitano di notifiche da parte del coordinatore (server)

Dettagli

Multithreading in Java. Fondamenti di Sistemi Informativi 2014-2015

Multithreading 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

Dettagli

20 Sviluppo di Applicazioni Mobile in Android

20 Sviluppo di Applicazioni Mobile in Android 20 Sviluppo di Applicazioni Mobile in Android Andrea Santi a.santi@unibo.it C.D.L. Ingegneria e Scienze Informatiche Alma Mater Studiorum Università di Bologna, Cesena a.a. 2013/2014 A. Santi (Università

Dettagli

Applicazione con due attività

Applicazione con due attività T Applicazione con due attività Tutorial per Eclipse P. Gallo M.L. Pietramala Java Blocco tematico E Le apps e ANDROID Unità E2 Eventi Prerequisiti Obiettivi Unità E2 Eventi al termine dell esercitazione,

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

Lezione 11 Accesso al file system

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

Dettagli

Prova d Esame 07.04.2006 Compito B

Prova d Esame 07.04.2006 Compito B DOMANDA 1 (6 punti) Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { public static String s1 = "ciao"; protected int n; public General() { n = 3; public

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

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

Dettagli

Programmazione Android

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

Dettagli

Esercizi della lezione 5 di Java

Esercizi della lezione 5 di Java Esercizi della lezione 5 di Java Esercizio 5 Create il tipo di dato Counter dell Esercizio 1 come sottoclasse del tipo di dato SimpleCounter. Esercizio 1 Create un tipo di dato Counter che abbia: un valore

Dettagli

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

Dettagli

La gestione dei processi in Minix

La gestione dei processi in Minix La gestione dei processi in Minix Sistemi Operativi Lez. 28 Scheduling Round robin su 16 code di priorità Quando un processo viene bloccato senza aver esaurito il suo quanto di tempo, una volta risvegliato,

Dettagli

ALMA MATER STUDIORUM - UNIVERSITÀ DI BOLOGNA APPLICAZIONI ANDROID PER ACCESSO A PERSONAL HEALTH RECORD

ALMA MATER STUDIORUM - UNIVERSITÀ DI BOLOGNA APPLICAZIONI ANDROID PER ACCESSO A PERSONAL HEALTH RECORD ALMA MATER STUDIORUM - UNIVERSITÀ DI BOLOGNA SCUOLA DI INGEGNERIA E ARCHITETTURA DISI INGEGNERIA INFORMATICA TESI DI LAUREA in TECNOLOGIE WEB T APPLICAZIONI ANDROID PER ACCESSO A PERSONAL HEALTH RECORD

Dettagli

Synchronized (ancora)

Synchronized (ancora) Synchronized (ancora) Riscriviamo l esempio di prima. Usiamo una struttura modulare, con una classe Notificatore che ha opportuni metodi. La classe ha due campi privati, la lista buftext e un suo thread.

Dettagli

Un esercizio d esame. Flavio De Paoli

Un esercizio d esame. Flavio De Paoli Un esercizio d esame e note sulla gestione dei dati Flavio De Paoli Il testo (Appello 22 ottobre 2001) Una stazione di servizio dispone di n distributori di benzina. I clienti si presentano a uno dei distributori

Dettagli

T 1. Per un processo con più thread di controllo, lo stato di avanzamento della computazione di ogni thread è dato da:

T 1. Per un processo con più thread di controllo, lo stato di avanzamento della computazione di ogni thread è dato da: Un thread (o processo leggero) è una attività, descritta da una sequenza di istruzioni, che esegue all'interno del contesto di esecuzione di un programma. Un thread procede nella sua esecuzione per portare

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

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

Dettagli

Processamento audio e video

Processamento audio e video Ing. Simone SCARDAPANE Un seminario per Laboratorio per l Elaborazione Multimediale Anno Accademico 2012/2013 Parte 1 1. (Brevissima) Introduzione ad Android 2. Fondamenti di OOP 3. Programmare su Android

Dettagli

Sviluppo di app e invio di notifiche per wearable devices in Android. Brando Mordenti Matricola 661278

Sviluppo di app e invio di notifiche per wearable devices in Android. Brando Mordenti Matricola 661278 Sviluppo di app e invio di notifiche per wearable devices in Android Brando Mordenti Matricola 661278 INTRODUZIONE Le app Wearable girano direttamente sul wearable device, permettendo di accedere all hardware

Dettagli

Chat. Si ha un server in ascolto sulla porta 4444. Quando un client richiede la connessione, il server risponde con: Connessione accettata.

Chat. Si ha un server in ascolto sulla porta 4444. Quando un client richiede la connessione, il server risponde con: Connessione accettata. Chat Si ha un server in ascolto sulla porta 4444 Quando un client richiede la connessione, il server risponde con: Connessione accettata. Nome: Il client deve rispondere con lo user name A questo punto

Dettagli

UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE

UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE IDROID 86 LAB pagg 12-13 23-04-2007 14:57 Pagina 12 I-D01 LAB UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE PROGRAMMAZIONE Alcuni comportamenti predefiniti attivabili su I-Droid01 sono facilmente riproducibili

Dettagli

Java: la libreria delle classi

Java: la libreria delle classi Java: la libreria delle classi Applet anatomia di un applet cenni di html La libreria JDBC per l accesso ai database il package java.sql 213 Applet Un applet è una applicazione Java che ha una forma particolare

Dettagli

Android. Location, Maps, Servizi di Sistema

Android. Location, Maps, Servizi di Sistema Android Location, Maps, Servizi di Sistema Introduzione In questa lezione ci occuperemo di analizzare due casi d'uso che fanno uso dei servizi di localizzazione e della Google Maps LocationManager Project

Dettagli

Gestione delle eccezioni in Java

Gestione delle eccezioni in Java Gestione delle eccezioni in Java - Introduzione al concetto di eccezioni E possibile definire un eccezione come un situazione imprevista che il flusso di un applicazione può incontrare. È possibile gestire

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

[AD.AGIO] ANDROID SDK

[AD.AGIO] ANDROID SDK [AD.AGIO] ANDROID SDK 2013.06 Pag. 1 1. PREMESSA Il presente documento riporta informazioni riservate il cui utilizzo è confidenziale e permesso esclusivamente nell'ambito del rapporto di fornitura in

Dettagli

Lezione 15 Location e mappe

Lezione 15 Location e mappe A cura di Carlo Pelliccia La diffusione delle applicazioni location-based è certamente uno dei maggiori contributi resi dalle piattaforme mobili alla storia dell informatica. Un applicazione o un servizio

Dettagli

Design Pattern in Java

Design Pattern in Java Design Pattern in Java Claudio Di Ciccio, Massimiliano de Leoni (con la supervisione del docente Massimo Mecella) Università di Roma La Sapienza - Sede di Latina Corso di Progettazione del Software A.A.

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

Fondamenti di sviluppo mobile su Android

Fondamenti di sviluppo mobile su Android Fondamenti di sviluppo mobile su Android Dott. A. Tedeschi antonio.tedeschi@uniroma3.it Corso di Telecomunicazioni Wireless a.a. 2015-2016 1 Outline Fondamenti di programmazione Android Creare un nuovo

Dettagli

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio QUEUE : considerazioni QUEUE : considerazioni Si è realizzata una struttura dati complessa utilizzandone una primitiva, l array. Il pregio di tale implementazione è il basso costo computazionale, mentre

Dettagli

Programmazione Android A cura di Carlo Pelliccia. Lezione 7 Menù

Programmazione Android A cura di Carlo Pelliccia. Lezione 7 Menù A cura di Carlo Pelliccia I menù sono una parte importante di qualsiasi applicazione moderna. Da anni gli utenti sono abituati ad avere a che fare con questi strumenti, ai quali si rivolgono ogni volta

Dettagli

Prova d Esame 07.04.2006 Compito A

Prova d Esame 07.04.2006 Compito A DOMANDA 1 (6 punti) Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { public static String s1 = "Ciao"; protected int n; public General() { n = 1; public

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

Gestione di errori e situazioni eccezionali. Gestione delle eccezioni. Gestione tradizionale di errori e situazioni eccezionali (2)

Gestione di errori e situazioni eccezionali. Gestione delle eccezioni. Gestione tradizionale di errori e situazioni eccezionali (2) Gestione di errori e situazioni eccezionali Gestione delle eccezioni Una procedura (utente o di libreria) deve poter segnalare l impossibilità di produrre un risultato significativo o la propria terminazione

Dettagli

Lezione 13 Content Provider

Lezione 13 Content Provider A cura di Carlo Pelliccia Come si è visto nelle due lezioni precedenti, secondi i meccanismi di gestione della sicurezza di Android, sia i file che i database sono solitamente di esclusiva proprietà dell

Dettagli

Sviluppo di un applicazione in ambiente Android per l acquisizione di misure accelerometriche.

Sviluppo di un applicazione in ambiente Android per l acquisizione di misure accelerometriche. Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Elaborato finale in Sistemi Operativi Sviluppo di un applicazione in ambiente Android per l acquisizione di misure accelerometriche. Anno

Dettagli

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it 18 marzo 2011 Problema basato su 10.5 del libro di testo La CINA (Compagnia Italiana per il Noleggio di Automobili) dispone di

Dettagli

Ottava Esercitazione. introduzione ai thread java mutua esclusione

Ottava 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

Dettagli

Corso di Peer to Peer

Corso di Peer to Peer Università degli Studi di Pisa Laurea Specialistica in Tecnologie Informatiche Corso di Peer to Peer a.a 2005/2006 Progetto finale Simone Pieraccioni Matr. 232481 1 LiteMsn 1.0 Il progetto per il corso

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

Iprogrammi scritti in Java sono formati da Classi che

Iprogrammi scritti in Java sono formati da Classi che Capitolo 3. Pesci e Animali Domestici Le Classi di Java Translated by Francesco Orciuoli Iprogrammi scritti in Java sono formati da Classi che rappresentano gli oggetti del mondo reale. Sebbene le persone

Dettagli

SISTEMI OPERATIVI. Sincronizzazione in Java (Semafori e barriere) Patrizia Scandurra (MODULO DI INFORMATICA II) LABORATORIO

SISTEMI OPERATIVI. Sincronizzazione in Java (Semafori e barriere) Patrizia Scandurra (MODULO DI INFORMATICA II) LABORATORIO SISTEMI OPERATIVI (MODULO DI INFORMATICA II) LABORATORIO Sincronizzazione in Java (Semafori e barriere) Patrizia Scandurra Università degli Studi di Bergamo a.a. 2012-13 La gestione dei thread in Java

Dettagli

Laboratorio di Ingegneria del Software A.A 2009/2010 Programmazione su Android A cura di Carlo Pelliccia. Lezione 7 Menù

Laboratorio di Ingegneria del Software A.A 2009/2010 Programmazione su Android A cura di Carlo Pelliccia. Lezione 7 Menù A cura di Carlo Pelliccia I menù sono una parte importante di qualsiasi applicazione moderna. Da anni gli utenti sono abituati ad avere a che fare con il concetto di menù, al quale si rivolgono ogni volta

Dettagli

2 Android Market e la commercializzazione delle applicazioni 35

2 Android Market e la commercializzazione delle applicazioni 35 Prefazione Prima di iniziare xiv xxii 1 Introduzione ad Android 31 1.1 Introduzione 32 1.2 Panoramica di Android 34 1.3 Android 2.2 (Froyo) 37 1.4 Android 2.3 (Gingerbread) 40 1.5 Android 3.0 (Honeycomb)

Dettagli

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione 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

Dettagli

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. - lezione 14 - Thread in Java

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. - lezione 14 - Thread in Java Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it - lezione 14 - Thread in Java 1 Cos è un

Dettagli

Astrazioni sul controllo. Iteratori

Astrazioni sul controllo. Iteratori Astrazioni sul controllo Iteratori Nuove iterazioni Definendo un nuovo tipo come collezione di oggetti (p. es., set) si vorrebbe disporre anche di un operazione che consenta cicli (iterazioni) Es.: gli

Dettagli

Gruppi di Thread. Java threads (3) Gruppi di thread e Timer. Operating Systems. Operating Systems. Java threads 3. Java threads 3

Gruppi di Thread. Java threads (3) Gruppi di thread e Timer. Operating Systems. Operating Systems. Java threads 3. Java threads 3 Java threads (3) Gruppi di thread e Timer emanuele lattanzi isti information science and technology institute 1/12 Gruppi di Thread emanuele lattanzi isti information science and technology institute 2/12

Dettagli

Bluetooth Hacking. Stefano Sanna - JUG Sardegna Emanuele di Saverio - JUG Roma. Javaday IV Roma 30 gennaio 2010

Bluetooth Hacking. Stefano Sanna - JUG Sardegna Emanuele di Saverio - JUG Roma. Javaday IV Roma 30 gennaio 2010 Bluetooth Hacking Stefano Sanna - JUG Sardegna Emanuele di Saverio - JUG Roma Stefano Sanna & Emanuele di Saverio JUG Sardegna / JUG Roma Sommario Chi siamo L importanza del Bluetooth sui device mobili

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

Lezione 9 Liste, tabelle, caselle di scelta e gallerie di immagini

Lezione 9 Liste, tabelle, caselle di scelta e gallerie di immagini A cura di Carlo Pelliccia Tutti i layout dimostrati negli esempi delle lezioni precedenti sono dei layout fissi. I widget di un layout fisso sono sempre gli stessi e non cambiano ruolo o quantità nel corso

Dettagli

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

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

Dettagli

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 30 maggio 2014 Introduzione Un programma diviso in sezioni distinte Un approccio alla

Dettagli

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Esercitazioni di PROGETTAZIONE DEL SOFTWARE (Corsi di Laurea in Ingegneria Informatica ed Automatica ed Ingegneria

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

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

JDBC di base. Le classi/interfacce principali di JDBC

JDBC di base. Le classi/interfacce principali di JDBC JDBC di base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte completa indipendenza del codice dal tipo di database o di

Dettagli

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Programmazione Object Oriented in Java

Dettagli

Corso Android New Edition Corso Online Programmatore Android New Edition

Corso Android New Edition Corso Online Programmatore Android New Edition Corso Android New Edition Corso Online Programmatore Android New Edition Accademia Domani Via Pietro Blaserna, 101-00146 ROMA (RM) info@accademiadomani.it Programma Generale del Corso di Programmatore

Dettagli

Blue s One CTI Enterpris Blue s Attendant Pro/Enterprise SDK - plugin creating tools

Blue s One CTI Enterpris Blue s Attendant Pro/Enterprise SDK - plugin creating tools Blue s One CTI Enterpris Blue s Attendant Pro/Enterprise SDK - plugin creating tools rel. 1.2 ITA 01-06-2012 Introduzione alla creazione del plug-in Questo documento ha lo scopo di illustrare come creare

Dettagli

Corso di programmazione di sistemi mobile 1. Android. Persistenza dei dati

Corso di programmazione di sistemi mobile 1. Android. Persistenza dei dati Corso di programmazione di sistemi mobile 1 Android Persistenza dei dati Corso di programmazione di sistemi mobile 2 Gestione dei file La maggior parte delle applicazioni Android ha bisogno di salvare

Dettagli

Laboratorio di Elaborazione e Trasmissione Video

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

Dettagli