979 resultados para Android, interfacce, Java,
Resumo:
Negli ultimi anni si è imposto il concetto di Ubiquitous Computing, ovvero la possibilità di accedere al web e di usare applicazioni per divertimento o lavoro in qualsiasi momento e in qualsiasi luogo. Questo fenomeno sta cambiando notevolmente le abitudini delle persone e ciò è testimoniato anche dal fatto che il mercato mobile è in forte ascesa: da fine 2014 sono 45 milioni gli smartphone e 12 milioni i tablet in circolazione in Italia. Sembra quasi impossibile, dunque, rinunciare al mobile, soprattutto per le aziende: il nuovo modo di comunicare ha reso necessaria l’introduzione del Mobile Marketing e per raggiungere i propri clienti ora uno degli strumenti più efficaci e diretti sono le applicazioni. Esse si definiscono native se si pongono come traguardo un determinato smartphone e possono funzionare solo per quel sistema operativo. Infatti un’app costruita, per esempio, per Android non può funzionare su dispositivi Apple o Windows Phone a meno che non si ricorra al processo di porting. Ultimamente però è richiesto un numero sempre maggiore di app per piattaforma e i dispositivi presenti attualmente sul mercato presentano differenze tra le CPU, le interfacce (Application Programming Interface), i sistemi operativi, l’hardware, etc. Nasce quindi la necessità di creare applicazioni che possano funzionare su più sistemi operativi, ovvero le applicazioni platform-independent. Per facilitare e supportare questo genere di lavoro sono stati definiti nuovi ambienti di sviluppo tra i quali Sencha Touch e Apache Cordova. Il risultato finale dello sviluppo di un’app attraverso questi framework è proprio quello di ottenere un oggetto che possa essere eseguito su qualsiasi dispositivo. Naturalmente la resa non sarà la stessa di un’app nativa, la quale ha libero accesso a tutte le funzionalità del dispositivo (rubrica, messaggi, notifiche, geolocalizzazione, fotocamera, accelerometro, etc.), però con questa nuova app vi è la garanzia di un costo di sviluppo minore e di una richiesta considerevole sul mercato. L’obiettivo della tesi è quello di analizzare questo scenario attraverso un caso di studio proveniente da una realtà aziendale che presenta proprio la necessità di sviluppare un’applicazione per più piattaforme. Nella prima parte della tesi viene affrontata la tematica del mobile computing e quella del dualismo tra la programmazione nativa e le web app: verranno analizzate le caratteristiche delle due diverse tipologie cercando di capire quale delle due risulti essere la migliore. Nella seconda parte sarà data luce a uno dei più importanti framework per la costruzione di app multi-piattaforma: Sencha Touch. Ne verranno analizzate le caratteristiche, soffermandosi in particolare sul pattern MVC e si potrà vedere un confronto con altri framework. Nella terza parte si tratterà il caso di studio, un app mobile per Retail basata su Sencha Touch e Apache Cordova. Nella parte finale si troveranno alcune riflessioni e conclusioni sul mobile platform-independent e sui vantaggi e gli svantaggi dell’utilizzo di JavaScript per sviluppare app.
Resumo:
La tesi nasce da un'attività di ricerca approfondita su alcune tecnologie innovative e all'avanguardia nell'ambito del mobile computing e dell'Internet of Things. Tra queste il focus principale è orientato allo studio del Bluetooth Low Energy, nuova specifica di Bluetooth caratterizzata principalmente da un consumo di energia assai ridotto. In particolare, si è approfondito il suo funzionamento nel caso dei beacon, piccoli dispositivi che permettono una localizzazione mediante l'invio di un segnale BLE. Inoltre è stata analizzata la possibilità di interazione con Android, poiché oggigiorno non si può evitare di pensare a come queste tecnologie possano interfacciarsi con il mondo degli smartphone e dei tablet. Come conseguenza di tale attività di ricerca è stato analizzato un caso di studio che permettesse di applicare le tecnologie studiate e la loro interazione. Si è pensato quindi a un piccolo sistema distribuito per schermi adattativi (capaci di modificare i contenuti visualizzati in relazione ad eventi esterni) affinché ogni schermo mostrasse dinamicamente l'orario delle lezioni di ciascuno studente all'avvicinarsi di quest'ultimo, e solo per il tempo di permanenza nei pressi dello schermo. Si è quindi progettato e sviluppato un prototipo, e infine durante il testing si sono potute verificare le attuali potenzialità di queste tecnologie e trarre conclusioni sulla possibilità della loro futura diffusione e di impiego in contesti differenti.
Resumo:
Il lavoro svolto in questa tesi consiste nell'implementare un'applicazione Android per lo streaming video, conforme allo standard MPEG-DASH. L'obiettivo è quello di fornire un valido strumento al fine di eseguire delle analisi sperimentali su algoritmi particolari, detti di rate adaptation. MPEG-Dynamic Adaptive Streaming over Http è uno standard emergente ed è considerato da molti il futuro dello streaming multimediale. Questa tecnologia consente di auto-regolare la qualità del video in base alle condizioni della rete, la capacità del dispositivo o le preferenze dell'utente. Inoltre, essendo uno standard, permette di rendere interoperabili i server e i device dei vari fornitori di contenuti multimediali. Nei primi capitoli introduttivi verrà presentato lo standard e i lavori correlati, successivamente verrà descritta la mia proposta applicativa: DashPlayer. In conclusione, verrà compiuta una valutazione sperimentali sugli algoritmi sopracitati che costituiscono la parte logico-funzionale dell'applicazione.
Resumo:
Quando avvengono disastri naturali, spesso la copertura dati viene a mancare e le infrastutture o sono danneggiate o sono sovraccariche; in questo modo è difficile comunicare sia da parte delle persone che hanno bisogno di aiuto, sia da parte dei soccorritori che cercano di organizzare i soccorsi. Con questa tesi si è voluto realizzare un'applicazione Android che permetta agli utenti di segnalare il proprio bisogno di aiuto, anche se il device non ha una connessione internet attiva. L'applicazione, sfruttando il Wi-Fi e il Wi-Fi Direct, cercherà di formare una rete di dispositivi, attraverso la quale i messaggi di aiuto degli utenti verranno scambiati tra i device. Questa rete, man mano, si allargherà fino ad arrivare ad includere device che avranno una connessione dati attiva. Questi comunicheranno con il mio server, al quale manderanno tutti i messaggi che gli sono arrivati. I dati del server, ossia i messaggi che sono stati mandati dagli utenti, verranno mostrati sul sito ltw1528.web.cs.unibo.it. Attraverso questo sito, i soccorritori potranno vedere la posizione degli utenti in stato di bisogno, cosicché potranno mandarli un messaggio di soccorso, che si propagherà nella rete formatasi in precedenza, ed organizzare i soccorsi in maniera ottimale. Si è anche voluto fare uno studio simulativo per testare la scalabilità dell'applicazione e per raccogliere dati statistici, quali il delay medio tra l'arrivo del messaggio al device con connessione dati e il tempo in cui è stato creato, l'influenza sulla batteria del numero dei messaggi scambiati e il numero degli host, il delay tra il tempo di invio e il tempo di arrivo nello scambio di messaggi al variare del numero degli host.
Resumo:
L'obiettivo di questa tesi è quello di fornire le informazioni di base che, un aspirante programmatore Android, deve sapere per scrivere applicazioni che facciano uso dei sensori presenti nei moderni telefoni cellulari (accelerometro, giroscopio, sensore di prossimità, ecc...). La tesi si apre citando qualche aneddoto storico sulla nascita del sistema operativo più famoso al mondo ed elencando tutte le releases ufficiali e le novità che hanno portato dalla 1.0 all'attuale 5.1.1 Lollipop. Verranno analizzate le componenti fondamentali per costruire un applicazione Android: Activities, Services, Content Providers e Broadcast Receivers. Verrà introdotto e approfondito il concetto di sensore, sia punto di vista fisico sia dal punto di vista informatico/logico, evidenziando le tre dimensioni più importanti ovvero struttura, interazione e comportamento. Si analizzeranno tutte i tipi di errori e problematiche reali che potrebbero influire negativamente sui valori delle misurazioni (disturbi, rumori, ecc...) e si propone la moderna soluzione del Sensor Fusion come caso particolare di studio, prendendo spunto dal lavoro di grandi aziende come la Invensense e la Kionix Inc. Infine, si conclude l'elaborato passando dalle parole al codice: verranno affrontate le fasi di analisi e d'implementazione di un'applicazione esemplificativa capace di determinare l'orientamento del dispositivo nello spazio, sfruttando diverse tecniche Sensor Fusion.
Resumo:
Ogni anno si registra un crescente aumento delle persone affette da patologie neurodegenerative come la sclerosi laterale amiotrofica, la sclerosi multipla, la malattia di Parkinson e persone soggette a gravi disabilità motorie dovute ad ictus, paralisi cerebrale o lesioni al midollo spinale. Spesso tali condizioni comportano menomazioni molto invalidanti e permanenti delle vie nervose, deputate al controllo dei muscoli coinvolti nell’esecuzione volontaria delle azioni. Negli ultimi anni, molti gruppi di ricerca si sono interessati allo sviluppo di sistemi in grado di soddisfare le volontà dell’utente. Tali sistemi sono generalmente definiti interfacce neurali e non sono pensati per funzionare autonomamente ma per interagire con il soggetto. Tali tecnologie, note anche come Brain Computer Interface (BCI), consentono una comunicazione diretta tra il cervello ed un’apparecchiatura esterna, basata generalmente sull’elettroencefalografia (EEG), in grado di far comunicare il sistema nervoso centrale con una periferica esterna. Tali strumenti non impiegano le usuali vie efferenti coinvolte nella produzione di azioni quali nervi e muscoli, ma collegano l'attività cerebrale ad un computer che ne registra ed interpreta le variazioni, permettendo quindi di ripristinare in modo alternativo i collegamenti danneggiati e recuperare, almeno in parte, le funzioni perse. I risultati di numerosi studi dimostrano che i sistemi BCI possono consentire alle persone con gravi disabilità motorie di condividere le loro intenzioni con il mondo circostante e provano perciò il ruolo importante che esse sono in grado di svolgere in alcune fasi della loro vita.
Resumo:
I laghi vulcanici sono corpi idrici che si posizionano all’interno di crateri originatisi da eruzioni idrotermali, idrovulcaniche o magmatiche. Dato il particolare ambiente di formazione di questi bacini, le condizioni fisico-chimiche delle loro acque riflettono l’influenza dei diversi “input” vulcanici quali gas e fluidi che risultano dall’interazione tra le acque sotterranee e i fluidi rilasciati da un corpo magmatico in profondità. Il presente lavoro consiste nella caratterizzazione geochimica delle acque del lago craterico del Kawah Ijen e nella definizione dei principali processi che la controllano, come i processi di diluizione, degassamento e precipitazione di fasi minerali. Tale definizione è la base conoscitiva necessaria per una più realistica interpretazione delle eventuali variazioni geochimiche spazio-temporali
Resumo:
Applicazione android per la geolocalizzazione di strumenti di illuminazione
Resumo:
All’interno di questa tesi è stata affrontata la tematica della realizzazione di comuni- cazioni sicure, in modo da ottenere l'indipendenza di queste ultime dal canale utilizzato, con l'ausilio di strumenti in grado di fornire supporto per la creazione di applicativi orientati allo scambio di dati e messaggi, quali i linguaggi di programmazione Java e Jolie, il quale è basato sul precedente. Sono state inizialmente analizzate le principali caratteristiche e le problematiche più importanti che è necessario dover risolvere in modo da poter arrivare al risultato desiderato. Successivamente, è stato dato un ampio sguardo ad una delle scienze più applicate per risolvere i problemi tipici che affliggono questo tipo di comunicazioni, la crittografia. Sono stati elencati gli strumenti messi a disposizione ed il loro funzionamento. La crittografia viene poi applicata al protocollo SSL, il quale rappresenta la soluzione maggiormente diffusa, sia sul Web che in altri ambiti, per proteggere le informazioni personali che transitano tra gli end-point di una comunicazione. Sono state elencate le principali caratteristiche, alcuni cenni riguardanti la nascita e lo sviluppo ed è stato descritto il funzionamento di questo protocollo, soprattutto per quanto riguarda la sua fase preliminare, che è una delle parti che lo caratterizzano maggiormente. In seguito, è stata analizzata la soluzione fornita all’interno delle librerie del linguaggio Java per realizzare comunicazioni indipendenti dal mezzo di comunicazione che soddisfino le politiche dettate dal protocollo SSL. Questa soluzione è rappresentata dalla classe SSLEngine, che è quindi stata esaminata, a partire dal ciclo di vita e dall'inizializzazione, fino ad arrivare all'interazione all'interno di un applicazione. Quanto esplorato in precedenza viene poi applicato a Jolie, un linguaggio di programmazione basato sulle comunicazioni e sviluppato in Java, all'interno dell'Università di Bologna. Dopo uno sguardo generale alle sue caratteristiche è stata approfondita la gestione dei protocolli, e di conseguenza, l'introduzione di SSL all'interno di essi, realizzata tramite la classe SSLProtocol. Questa classe contiene ed implementa i concetti analizzati nel capitolo riguardante Java, adattandoli all'architettura ed alla progettazione pensata appositamente per Jolie; è stata quindi effettuata un'analisi del codice e della gestione della classe SSLEngine per realizzare comunicazioni sicure. Infine, per verificare l’effettivo funzionamento, sono stati creati due semplici casi d’uso per poter sfruttare i vantaggi offerti da Jolie, il quale è particolarmente indicato per la creazione di applicazioni orientate ai servizi.
Resumo:
La tesi ha lo scopo di indagare le tecnologie disponibili per la realizzazione di linguaggi di programmazione e linguaggi domain specific in ambiente Java. In particolare, vengono proposti e analizzati tre strumenti presenti sul mercato: JavaCC, ANTLR e Xtext. Al termine dell’elaborato, il lettore dovrebbe avere un’idea generale dei principali meccanismi e sistemi utilizzati (come lexer, parser, AST, parse trees, etc.), oltre che del funzionamento dei tre tools presentati. Inoltre, si vogliono individuare vantaggi e svantaggi di ciascuno strumento attraverso un’analisi delle funzionalità offerte, così da fornire un giudizio critico per la scelta e la valutazione dei sistemi da utilizzare.
Resumo:
Gli oceani coprono quasi il 75% della superficie della terra ed esercitano una grande influenza sulla vita di tutte le specie viventi e sull’evoluzione del clima a livello planetario. I repentini cambiamenti climatici hanno reso sempre piú importante studiarne i comportamenti. L’analisi della salinitá degli oceani é estremamente importante per gli studi sull’ambiente marino; puó essere usata per tracciare le masse d’acqua, descrivendone i flussi e svelandone la correlazione con i processi climatici, puó essere di aiuto ai biologi per studiare gli organismi marini e costituisce un parametro fondamentale per una vasta gamma di sensori. Un sistema autonomo che misuri conducibilitá e temperatura é il primo strumento per determinare la salinitá dell’acqua, sul mercato sono presenti sí numerosi sensori a elevata accuratezza ma necessitano di ingombranti strumenti di laboratorio per funzionare. Sistemi di ridotte dimensioni non sono invece altrettanto accurati ed affidabili. Questa tesi mira a sviluppare un'interfaccia che permetta di analizzare conducibilitá e temperatura con un elevato livello di accuratezza. Particolare attenzione sará posta all’elaborazione delle misure effettuate e alla caratterizzazione degli errori e dell’accuratezza del sistema. Partendo da queste basi in futuro si potrá creare un sistema autonomo a bassissima potenza, alimentato da batterie, che, basandosi sull’iterazione fra il chip impedenziometrico e il PIC, permetta di fare misure per un ciclo di vita di qualche anno.
Resumo:
Conversione delle interfaccie grafiche legay di un gestionale ERP verso più moderne interfaccie grafiche Windows Form. Si descrive inoltre come realizzare un interfaccia web alternativa che si basa su Ajax.
Resumo:
L’obiettivo di questa tesi è la trasposizione del gioco da tavolo “Mahjong” su un’applicazione mobile. Essa è sviluppata in Android, ma l’idea è quella di estenderla anche alle altre piattaforme. Col passare del tempo il Mahjong si è diffuso in molti paesi e per questo ne sono nate molte varianti. In questo caso si adotta il regolamento ravennate 200-400, opportunamente modificato per adattarlo all’applicazione. Il nome dell’applicativo nasce dal fatto che esso dovrà gestire un numero molto elevato di lingue e che nessuno ha ancora sviluppato un gioco multiplayer sul Mahjong, per cui sarà il primo a livello mondiale. Nell’applicazione un utente dovrà creare il tavolo di gioco e solo allora gli altri potranno visualizzarlo. Dopo che tutti si saranno seduti, chiunque potrà chiedere di iniziare una partita, che comincerà non appena tutti avranno accettato la richiesta. È stato progettato un database, in modo da salvare lo stato attuale di tutti i tavoli. Le informazioni sullo stato di ogni partita, invece, sono salvate in un file diverso per ciascuna. L’architettura utilizzata per lo sviluppo dell’applicativo è del tipo client-server. Per la parte server dell’applicazione si è scelto di usare il linguaggio java, utilizzando le socket e instaurando connessioni SSL. Il server utilizza inoltre connessioni non persistenti. Tutte le richieste inviate e ricevute dal server sono create in un formato adatto all'interscambio di dati fra applicazioni client-server, chiamato JSON. Nel server si è creato, inoltre, un servizio di “caching” delle partite, in modo da incrementare le prestazioni e la velocità di elaborazione delle richieste. Per connettere in modo corretto il server al database si utilizza JDBC.
Resumo:
In questo lavoro di tesi verrà presentato un applicativo, sviluppato con l’azienda EBWorld, per dispositivi con sistema operativo Android. L’applicazione ha come destinatari i tecnici e gli operatori sul campo di aziende clienti di EBWorld. Nel dispositivo vengono caricati i dati estratti dal database (porzioni di mappe e informazioni ad esse correlate) che vengono lette e mostrate nello schermo. Le funzionalità fornite sono: utilizzo dello strumento trail, per effettuare misurazioni; creazione di progetti all’interno delle esportazioni; inserimento di sketch, definiti in accordo con l’azienda, all’interno dei progetti; selezione degli sketch e delle informazioni estratte dal database e visualizzazione delle relative informazioni / proprietà; eliminazione di sketch inseriti. È stato effettuato uno studio di progettazione dell’interfaccia per offrire un’ottima usabilità anche in situazioni critiche.
Resumo:
L'obiettivo di questa tesi è lo sviluppo di due applicativi per l'azienda EBWorld. Il primo desktop, sviluppato in Java, è utilizzato per gestire la memoria interna di un dispositivo Android collegato al computer, installare l'applicazione mobile sviluppata a seguito ed esportare i progetti, creati dall'utente, durante l'utilizzo dell'applicativo mobile. Il secondo è un applicativo Android, utilizzato per la visualizzazione e l'interazione con dati georiferiti e permette all'utente di creare progetti inserendo ulteriori elementi georiferiti. Per la memorizzazione dei dati sono stati utilizzati diversi file XML e per la comunicazione tra l'applicativo Java ed un dispositivo Android, sono stati utilizzati la libreria JMTP in combinazione con i comandi ADB.