Anteprima
Vedrai una selezione di 8 pagine su 35
Appunti Terminali Mobili e Multimedialità Pag. 1 Appunti Terminali Mobili e Multimedialità Pag. 2
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Appunti Terminali Mobili e Multimedialità Pag. 6
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Appunti Terminali Mobili e Multimedialità Pag. 11
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Appunti Terminali Mobili e Multimedialità Pag. 16
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Appunti Terminali Mobili e Multimedialità Pag. 21
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Appunti Terminali Mobili e Multimedialità Pag. 26
Anteprima di 8 pagg. su 35.
Scarica il documento per vederlo tutto.
Appunti Terminali Mobili e Multimedialità Pag. 31
1 su 35
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Iniziamo a dire che per sviluppare un' applicazione Android c' è bisogno di definire la GUI ( Activity ),

disegnare l' eventuale base di dati ( Condivisa / Privata ), individuare i servizi in Background ( Condivisi /

Privati ) e definire i tipi di notifica verso l' utente. Nel nostro caso, per la creazione di un' applicazione con un

menù che presenta una lista di possibili operazioni da effettuare: tracciamento del codice di considerare e invio

del codice al sistema centrale. Per salvare le preferenze all' interno del menù utilizzando le Shared Preferences,

per salvare in maniera persistente le scelte dell' utente, senza doverci inventare nulla di nuovo, ma, anzi,

utilizzando solamente le funzionalità messe a disposizione nativamente dalla piattaforma Android.

Per il salvataggio delle informazioni e dei dati relativi ai codici a barre, occorre salvare i dati strutturati in un

database SQL Lite di tipo Private. E' molto importante evidenziare fin da subito che per default l' accesso al

database è permesso solo all' applicazione che lo ha creato, tuttavia, è per questo motivo che esistono i Content

Provides, che permettono di evidenziare e utilizzare i dati provenienti di avere applicazioni senza alcun

problema. Useremo un servizio da remoto che analizzando il codice a barre ci possa dare informazioni sul

prodotto e sulla disiponibilità dello stesso in magazzino e attraverso differenti notifiche audio avvisandoci se

esiste una carenza, assenza o presenza dei prodotti relativi ai codici a barre analizzati.

g iacomo.gargiulo.made4Core@gmail.com Pag 23

Appunti di Giacomo Gargiulo per info:

Prova Maggio 2014

1) Illustrare le differenze tra una rete circuit switched ed una rete packet switched e quali sono i vantaggi

introdotti da questa ultima tipologia di reti.

La differenza sostanziale tra le due reti sta nel fatto che mentre le reti Circuit-Swithed tariffano le connessioni

basandosi sul tempo, le reti Packet-Switched effettuano un calcolo dei costi in base alla quantità di dati

scambiata. Nelle reti Circuit-Switched si possiede un proprio canale al quale nessuno può accedere, metre nelle

reti Packet-Switched si paga in base ai pacchetti che vengono scaricati condividendo il canale con altri

utentiattraverso un meccanismo gestito dalla centrale, con tariffazione al pacchetto. In termini di costi, le reti

Packet-Switched tariffano solo l' effetiva quantità di dati trasmessa, e solo ad oggi in base delle comunicazioni

delle reti wireless.

2) Descrivere brevemente le differenze tra mobile e wireless computing

I dispositivi wireless superano i limiti di comunicazione rispetto ai dispositivi portatili che necessitano della

connessione wired, cioè la connessione via cavo. In molti casi i termini mobile e wireless sono spesso fonte

di confusione, considerando per esempio che le applicazioni wireless possono essere "non mobili" se

utilizzano reti Wireless fisse e viceversa possiamo trovare applicazioni mobili che non sono wireless. Di fronte

a tutto questo, per il mobile computing non è necessario che i dispositivi portatili necessitino di connessione

wireless, dal momento che il sistema di comunicazione wireless è solo un particolare mezzo di comunicazione.

3) Descrivere l' evento di handoff in una rete wireless.

In una rete cellulare la copertura geografica è ottenuta con una tassellatura di aree adiacenti e/ o sovrapposte

dette celle. L' utente che possiede il terminale mobile si può muovere attraverso la rete passando da una cella

all' altra senza interrompere la comunicazione. In aree densamente popolate vengono usate le micorcelle e il

processo con cui l' utente si sposta da una cella all' altra è detto evento di Handoff, che si definisce come un

fenomeno puramente trasparente che provoca il passaggio da una stazione di base a un' altra. Quando un utente

si sposta su una cella gestita da un diverso operatore si verifica l' evento detto di Roaming.

g iacomo.gargiulo.made4Core@gmail.com Pag 24

Appunti di Giacomo Gargiulo per info:

4) Descrivere il concetto di poliformismo nella programmazione ad oggetti fornendo un esempio in

pseudo codice dell' applicazione di tale concetto.

Il Polimorfismo indica la possibilità per i metodi di assumere più forme, cioè implementazioni diverse

all' interno della gerarchia delle classi. Quindi attraverso il Polimorfismo c'è la possibilità che le classi deriate

implementino in modo differente i metodi e le proprietà dei propri antenati, ciò rende possibile il fatto che gli

oggetti appartenenti a delle sottoclassi di una stessa classe rispondano diversamente alle stesse istruzioni.

Ad esempio, in una gerarchia in cui le classi Cane e Gatto discendano dalla Superclasse Animale, potremmo

avere il metodo mangia( ) che restituisce la stringa "osso" se eseguito sulla classe Cane e "pesce" se eseguito

sulla classe Gatto.

Class Animale class Cane extends Animale

{ {

public void mangia( ){ } public void mangia( )

public static main ( String args[ ] ) {

{ return "osso"; }

Animale cane = new Cane ( ) }

cane.mangia( ); class Gatto extends Animale

Animale gatto = new Gatto ( ) {

gatto.mangia( ); public void mangia( )

} {

} return "pesce"; }

}

5) Cosiderate le seguenti classi A, B e C

public class A

{ public A( )

{ super( );

}

}

public class B extends A{ // è scritto di defualt super( ) }

public class C esìxtends B{ }

-----------------------------------------------------------------------------------------

se in una classe Test.java viene scritto il seguente codice:

C c = new C( 123 ); // test

Quali delle seguenti affermazioni è vera e perchè? ( barrare le risposte )

♦1) Il codice di test non compila dato che manca il costruttore invocato dalla classe C. ( Vero / Falso )

Motivazione: E' vero in quanto all' interno della classe C manca il costruttore con parametri;

♦2) La classe A non estende Object. ( Vero / Falso )

Motivazione: Quando si crea una nova classe senza specificare la parola extends, questa viena

automaticamente considerata un sottoclasse di Object, che è appunto la madre di tutte le cassi in Java.

♦3) Il codice compila correttamente dato che il costruttore di default è disponibile. ( Vero / Falso )

Motivazione: Potrebbe compilare correttamente correttamente se nella creazione dell' oggetto al costruttore

non passo parametri.

♦4) C non è di tipo Object. ( Vero / Falso )

Motivazione: Tutte le classi derivano di default da Object.

6) Considerare le seguenti classi: Pesce, PesceRosso, PescePalla ed il codice successivo di test

g iacomo.gargiulo.made4Core@gmail.com Pag 25

Appunti di Giacomo Gargiulo per info:

public class Pesce

{ pubilc String interroga () { return "Sono solo un pesce"; }

}

public class PesceRosso extends Pesce

{ pubilc String interroga () { return "Sono un pesce rosso"; }

}

public class PescePalla extends Pesce

{ pubilc String interroga () { return "Sono un pesce palla"; }

}

// Text Code...

Pesce p1 = new Pesce( );

Pesce p2 = new PesceRosso( );

Pesce p3 = new PescePalla( );

System.out.println(p1.interroga( ));

System.out.println(p2.interroga( ));

System.out.println(p3.interroga( ));

---------------------------------------------------------------------------------------------

♦1) Quale è il risultato delle stampe dei metodi pi.interroga( )? ( i = 1,2,3 )

Sono solo un pesce; Sono un pesce rosso; Sono un pesce palla.

♦2) Se la classe PescePalla viene dichiarata abstract anche il suo metodo interroga( ) deve essere dichiarato

abstract. ( Vero / Falso )

Motivazione: Una classe astratta può anche usare caratteristiche da tutti i metodi non astratti.

♦3) Se la classe PescePalla viene dichiarata abstract il codice continua a compilare correttamente (Vero/Falso)

Motivazione: Non compila perchè non posso più istanziare un oggetto di una classe astratta.

7) In merito alla piattaforma Android, descrivere la gestione delle risorse e la gestione delle GUI via

XML ( vantaggi e svantaggi ).

Android pone particolare attenzione alla gestione delle risorse, utilizzando principi di programmazione

dichiarativa ( in un file di tipo XML ). Il vantaggio di tale approccio sta nella possibilità di non dover

ricompilare il codice a valle di modifiche alle risorse, e anche il fatto che ilcodice può essere soggetto a diverse

interpretazioni in funzione del tipo di risorsa indicata dai tag. Inoltre il modo in cui Android gestisce le risorse

impone una rigorosa organizzazione della struttura del progetto in opportune cartelle. In un file di valori si può

inserire qualunque mix degli elementi e la prassi suggerisce di ripartire i differenti tipi di valore nei seguenti

file: arrays.xml per le dimensioni, string.xml per le stringhe e styles.xml per gli stili.

8) In merito alla piattaforma Android, descrivere il concetto di Intent, fornendone anche un esempio in

pseudo codice.

Un Intent è una descrizione astratta di una operazione, ovvero descrive ciò che l' applicazione vorrebbe fare,

eventualmente riutilizzando componenti esistenti. Le comunicazioni basate su Intent sono basate su tecniche

di "late runtime binding" tra componenti o di una stessa applicazione o di applicazioni diverse. La risoluzione

( Intent resolution ) delle richieste di azioni avviene a run time, tramite meccanismi messi a disposizione

del sistema operativo Android. L' Intent presenta poi l' Action datta category e il tipo di dati su cui agisce.

Ad esempio l' intenzione di aprire una pagina web tramite browser si traduce in una intent che ha come azione

predefinita VIEW e come dati la URL delle pagine Web, Ecco il codice:

Intent intent = new Intent ( android.content.Intent VIEW_ACTION, Uri.parse( http://www.google.it);

g iacomo.gargiulo.made4Core@gmail.com Pag 26

Appunti di Giacomo Gargiulo per info:

infine ci sono due tipi di Intent: Esplicita, quando l' Activity chiamante conosce l' Activity di destinazione,

Implicita quando non la conosce.

9) Un comune "smart" vuole dotare i propri cittadini di una applicazione mobile in grado di fornire

informazioni relative a possibili pericoli di furti d' auto. Il cittadino utilizzando questa app, può capire nella

zona in cui si trova, quale è il rischio di furto d' auto, interrogando un server centrale che colleziona le

informazioni relative e calcola il fattore di rischio. L' utente può anche segnalare interattivamente presenza di

pericoli o rischi correlat ( che saranno visualizzate come una sorta di news aggiuntive sulla app ).

Progettare una soluzione per il sistema richiesto, evidenziandone vantaggi e svantaggi, e descrivendo in

maniera più approfondita possibile gli elementi tecnologici ed architetturali ( in termini di co

Dettagli
Publisher
A.A. 2015-2016
35 pagine
6 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher GG4core di informazioni apprese con la frequenza delle lezioni di Terminali Mobili e Multimedialità e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Napoli - Parthenope o del prof Di Capua Michele.