ProgettAzione Tecnologie in movimento V anno. Applicazioni per sistemi mobili.

Slides:



Advertisements
Presentazioni simili
Interazione Uomo - Macchina
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Unità D1 Architetture di rete.
Android A. Ferrari.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D1 Architetture di rete.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Sistemi Operativi Menù: 1) Introduzione al sistema operativo
CONOSCIAMO IL WINDOWS '95.
Java Enterprise Edition (JEE)
SINCRONIZZAZIONE E TRASFERIMENTO VIA WEB DI IMMAGINI E DATI MULTIMEDIALI CON INFORMAZIONI GEOGRAFICHE E RAPPRESENTAZIONI CARTOGRAFICHE Laureando: Mitja.
Le reti informatiche!! Le reti di telecomunicazioni hanno permesso una maggior diffusione delle informazioni che possono essere trasmesse e ricevute.
Reti Informatiche.
ECDL MODULO 1.1 Conoscere i sistemi di elaborazione
I COMPONENTI DEL Computer
L'open source a scuola... di Paola Travostino.
Anno Accademico Corso di Informatica Informatica per Scienze Biologiche e Biotecnologie Anno Accademico
Anno Accademico Corso di Informatica Informatica per Scienze Biologiche e Biotecnologie Anno Accademico
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
Smartphone e applicazioni: analisi e linee guida
Architettura Three Tier
Struttura dei sistemi operativi (panoramica)
I Thread.
Linguaggi di programmazione
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net Web Part e controlli di login Elaborazione di Franco Grivet Chin.
Architettura Java/J2EE
Meteo Service Corso di Reti di Calcolatori LS Casarini Stefano matr
Office 365 per professionisti e piccole imprese
Modulo 1 - Concetti di base della Tecnologia dell'Informazione
Concetti di base sul Software dei PC Unitre Anno
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria “Enzo Ferrari” – Sede di Modena Corso di Laurea Specialistica in Ingegneria Informatica.
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Il Sistema Operativo (1)
Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mySQL) come supporto Open Source ad un piccolo progetto di Data Base relazionale,
ECDL Patente europea del computer
Sviluppo di un’applicazione ludica in ambiente Symbian/Bluetooth
Threads.
Insegnamento “Tecniche audiovisive” Corso di Laurea in Ingegneria delle Comunicazioni Symbian Marco Teodori Assistente Ricercatore - Fondazione Ugo Bordoni.
Android Insegnamento “Tecniche audiovisive”
Introduzione all‘app Lync Windows Store Lync 2013.
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
Riferimento rapido per l’app © 2013 Microsoft Corporation. Tutti i diritti riservati. Schermata iniziale di Lync I riquadri dell'hub a sinistra nella schermata.
Creato da Riccardo Nuzzone
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Introduzione Cos’è un sistema operativo ?. Hardware Sistema Operativo Applicazioni È il livello di SW con cui interagisce l’utente e comprende programmi.
Il software Componente del computer costituita dai: –programmi di base per la gestione del sistema –programmi applicativi per l’uso del sistema Queste.
UNIVERSITA’ DEGLI STUDI DI ROMA TOR VERGATA
Servizi Internet Claudia Raibulet
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Informatica Lezione 6 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Easy Studio Realizzazione di un applicazione Android utile all'apprendimento Filippo Druda Istituto Tecnico Industriale Don Orione Fano Esame di Stato.
Concetti di base Computer, HW e SW
Informatica Lezione 8 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Aditech Life Acquisizione Parametri Monitoraggio Live da remoto
Eprogram informatica V anno.
I Sistemi Operativi. Che cosa sono? Il sistema operativo è un software di base che fa funzionare il computer. I Sistemi operativi più importanti sono:
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
Quante tipologie di computer esistono?
Dispositivi Mobili per Sentiment Analysis
Architetture software
Sistemi distribuiti Sistema distribuito indica una tipologia di sistema informatico costituito da un insieme di processi interconnessi tra loro in cui.
Dr. Filippo Cavallo La Lavagna Interattiva Multimediale (LIM) è una lavagna digitale che consente agli utenti di interagire.
Mobile Apps e Android Tecniche Audiovisive Ing. Andrea Proietti Dip. DIET, Laboratorio di Multimedialità, I piano, stanza 111, Via Eudossiana 18,
Corso di programmazione di sistemi mobile 1 1 Android Architettura, ambiente di sviluppo e struttura di un progetto.
Programmazione orientata agli Oggetti Introduzione a Java.
Un sistema operativo è un componente del software di base di un computer la cui funzione è quella di gestire le sue risorse hardware e software,fornendo.
Enea Topi 1 ^B AS. 2014/2015. LA STORIA DI INTERNET Internet non è mai stata una rete militare, ma i militari sono alla radice della tecnologia su cui.
The Tavolo™. DESCRIZIONE 1 IL BISOGNO DELL’AZIENDA La necessità dell’azienda consiste nella volontà di posizionarsi come figura di riferimento innovativo.
Alessio Sanchini Cl. 1B A.S. 2014/2015. Introduzione ARPAnet World Wide Web. Diffusione L’evoluzione Internet.
Transcript della presentazione:

ProgettAzione Tecnologie in movimento V anno

Applicazioni per sistemi mobili

Parola d’ordine: App Nel mondo del mobile la parola d’ordine è App. Per la promozione di un sito, di un’attività, di un gioco o per la divulgazione di informazioni di qualunque genere, non esiste modo più efficace che creare un’App compatibile con tutti i maggiori sistemi operativi del settore: -Android, -iOS, -Windows Phone. Ogni sistema operativo mette a disposizione delle App native che garantiscono accesso immediato a tutte le funzionalità del dispositivo oltre a permettere l’ottimizzazione delle prestazioni.

Lo sviluppatore e le App Lo sviluppatore di software può indirizzarsi verso: -le classiche mobile App (cioè App da installare ed eseguire sul proprio dispositivo), -le web App (cioè un’App per collegarsi a un’ applicazione in remoto tramite una connessione a Internet).

Problematiche programmazione mobile Scrivere codice affinché “giri” su dispositivi mobili comporta dover affrontare tutta una serie di problematiche legate alla natura del dispositivo. Le caratteristiche degli smartphone che rendono più difficile creare applicazioni che vi girino rispetto a crearle per PC, si possono riassumere in: minor capacità di elaborazione; memoria limitata; ridotte dimensioni del display; assenza di alimentazione esterna; differenti tecnologie per l’accesso a Internet (WiFi, GPRS, HSDPA ecc.); nuovi metodi d’immissione (touchscreen, minitastiere, pennini).

Il nuovo programmatore Nonostante le maggiori difficoltà da affrontare, è ormai INDISPENSABILE che nel bagaglio del tecnico informatico vi siano le conoscenze fondamentali per saper scrivere programmi per dispositivi mobili. Le motivazioni principali sono da ricercare nella crescita esponenziale del settore. Inoltre è un settore in cui Linux e l’open source hanno un ruolo di primo piano contribuendo alla diminuzione dei costi e all’aumento degli sviluppatori. Non ultimo, è un argomento vicino alle nuove generazioni, quelle dei cosiddetti “nativi digitali”.

La nuova mission La mission è quella di arrivare a fare con uno smartphone o un tablet tutto ciò che solitamente si fa con un desktop.

I dispositivi mobile Stabilito che la nostra applicazione è destinata a un dispositivo mobile, occorre definire quale. Molti sono i dispositivi mobile in commercio: cellulari: dispositivi per la telefonia mobile; palmari (PDA, Personal Digital Assistant): minicomputer di dimensioni tali da stare sul palmo di una mano; smartphone: combinazione di cellulare e palmare arricchito con le funzionalità tipiche dei dispositivi multimediali in grado di riprodurre musica, scattare foto e girare video; tablet: computer portatile di dimensioni compatte che utilizza come sistema di input uno schermo controllato tramite tocco (penna o dita) anziché una tastiera e un mouse.

I S.O. mobile Chi scrive codice per App dovrà dunque scegliere il sistema operativo sotto cui intende sviluppare le applicazioni. I principali sistemi operativi per dispositivi mobili sono: Android (Google); iOS (Apple); Windows Phone (Microsoft Corporation); BlackBerry OS (BlackBerry); Symbian OS (Nokia); Bada OS (Samsung); Sailfish OS (Jolla); Tizen (Linux Foundation); Ubuntu Salamander OS (Ubuntu Mobile); Firefox OS (Mozilla).

Android Android è un sistema operativo per dispositivi mobili sviluppato inizialmente da Android Inc. e acquisito da Google nel Android è stato sviluppato basandosi su diverse versioni del Kernel Linux; ciò rende questo sistema operativo diverso dagli altri per la sua natura open source e per la sua versatilità.

Architettura Android L’architettura del sistema operativo Android è costituita da uno stack software su quattro livelli ovvero un set di sottosistemi software organizzato a strati che include: -un sistema operativo basato su Kernel Linux, -librerie, -middleware, -applicazioni importanti. Ogni strato dell’architettura fornisce diversi servizi allo strato superiore.

Middleware Con il termine middleware si intende un insieme di programmi che fungono da intermediari tra le diverse applicazioni e le componenti software. L’utilizzo di uno strato software aggiuntivo (cuscinetto), consente di ottenere un elevato livello di servizio per gli utenti e un elevato livello di astrazione per i programmatori.

Kernel Linux Lo strato di base è il Kernel Linux. L’intero sistema operativo Android è costruito sopra il Kernel Linux 2.6 con alcune modifiche architettoniche apportate da Google. Poiché il suo compito è quello di interagire con l’hardware, contiene tutti i driver hardware necessari allo scopo. I driver sono programmi che controllano e comunicano con l’hardware. Android utilizza Linux per TUTTE le sue funzionalità di base come la gestione della memoria e dei processi, il networking, le impostazioni di sicurezza e così via.

Libraries Il secondo livello è costituito dalle librerie native di Android. Questo strato consente al dispositivo di gestire i diversi tipi di dati. Le librerie sono scritte nel linguaggio C/C++ e sono specifiche per un particolare hardware. Alcune delle principali librerie native sono: Surface Manager Media Framework SQLite WebKit SGL (Scalable Graphics Library) OpenGL|ES SSL/TLS (Secure Socket Layer/Transport Layer Security) libc

Surface Manager La libreria Surface Manager è utilizzata per la composizione delle finestre con la tecnica off-screen buffering. Con l’off-screen buffering lo sviluppatore NON può creare direttamente disegni sullo schermo; le immagini andranno prima composte in un apposito buffer off-screen. Il contenuto del buffer combinato con altre immagini, andrà a formare la schermata finale che l’utente vedrà. Tale tecnica è alla base della trasparenza delle finestre.

Media Framework Il Media Framework fornisce CODEC che permettono la registrazione e la riproduzione di diversi formati multimediali. È basato sulla libreria open-source OpenCore.

SQLite, WebKit, SGL, OpenGL|ES SQLite è un leggero database utilizzato in Android per scopi di archiviazione dati. WebKit è il motore grafico e di layout del browser, usato per visualizzare il contenuto html. SGL (Scalable Graphics Library) è una libreria C++ per gestire la grafica bidimensionale. OpenGL|ES è un sottoinsieme delle OpenGL per gestire l’accelerazione grafica 3D e per il rendering 2D o 3D di contenuti grafici sullo schermo.

SSL/TLS, Libc SSL e TLS (Secure Socket Layer/Transport Layer Security) permettono una comunicazione sicura e l’integrità dei dati su reti TCP/IP. TLS e SSL cifrano la comunicazione dalla sorgente alla destinazione (end-to-end) sul livello Transport. Diverse versioni del protocollo sono ampiamente utilizzate in applicazioni come i browser, l’ , la messaggistica istantanea e il Voice over IP. Libc è la libreria standard Linux, adattata per i dispositivi mobili.

Runtime Android La Runtime Android (inserita sempre nel secondo livello dello stack) è composta da: -Dalvik Virtual Machine -Core Libraries

Dalvik Virtual Machine L’esigenza di creare applicazioni in grado di rispondere in modo immediato all’utente è fondamentale. Con un hardware a risorse limitate la decisione è stata quella di adottare una Virtual Machine (VM), diversa dalla Java Virtual Machine (JVM) di Sun. La scelta è caduta sulla Dalvik Virtual Machine (DVM), una macchina virtuale, adattata per l’uso su dispositivi mobili, dotata di compilatore Just-In-Time (JIT).

Dalvik Virtual Machine L’esigenza di creare applicazioni in grado di rispondere in modo immediato all’utente è fondamentale. Con un hardware a risorse limitate la decisione è stata quella di adottare una Virtual Machine (VM), diversa dalla Java Virtual Machine (JVM) di Sun. La scelta è caduta sulla Dalvik Virtual Machine (DVM), una macchina virtuale, adattata per l’uso su dispositivi mobili, dotata di compilatore Just-In-Time (JIT). La necessità di cambiare VM nasce quindi dall’esigenza di risparmiare quanto più spazio possibile per la memorizzazione e l’esecuzione delle applicazioni.

Core libraries L’altra componente della Runtime Android sono le core libraries. Queste librerie forniscono la maggior parte delle funzionalità definite nelle librerie Java J2SE (Standard Edition). Le core libraries sono un insieme di librerie native per le funzionalità core della piattaforma. In sostanza, per eseguire un’App con la DVM non basta l’applicazione in sé ma occorrono anche tutte le classi relative all’ambiente nella quale l’applicazione stessa viene eseguita. In esecuzione il device metterà a disposizione la versione dex del runtime, che costituisce appunto la core library di un’App.

Application Framework Tutte le librerie viste finora vengono poi utilizzate da un insieme di componenti di più alto livello (terzo strato) che costituiscono l’Application Framework (AF). Si tratta di un insieme di API e componenti per l’esecuzione di funzionalità specifiche e di fondamentale importanza in ciascuna App Android. L’AF è lo strato cuscinetto (programmi middleware) tra le App e il software di sistema dei livelli bassi.

Componenti dell’Application Framework Le componenti dell’Application Framework sono: Activity Manager Package Manager Window Manager Telephony Manager Content Provider Resource Manager View System Location Manager Notification Manager XMPP Service

Activity Manager L’Activity Manager è lo strumento attraverso cui l’utente interagisce con l’applicazione. Il concetto di activity assume FONDAMENTALE IMPORTANZA IN ANDROID. A ogni activity è associata una schermata che permette: -la visualizzazione e la raccolta di informazioni, -l’interazione con l’utente. Organizza le varie schermate di un’App in uno stack a seconda dell’ordine di visualizzazione delle stesse sullo schermo dei dispositivi.

Package Manager Il Package Manager gestisce il ciclo di vita delle App. Ciascuna applicazione deve fornire al dispositivo un determinato insieme di informazioni che sono descritte attraverso un apposito file XML di configurazione; tale file va sotto il nome di AndroidManifest.

Window Manager Window Manager è la componente che permette di gestire le finestre delle diverse applicazioni in esecuzione in processi diversi, sullo schermo del dispositivo. Può essere considerato come un’astrazione dei servizi nativi del Surface Manager (livello Libraries).

Telephony Manager Il Telephony Manager permette una maggiore interazione con le funzionalità caratteristiche di un telefono come la semplice possibilità di effettuare una chiamata o di verificare l’attuale stato della chiamata stessa.

Content Provider Content Provider è una componente fondamentale nella realizzazione di applicazioni Android. Ha la responsabilità di gestire la condivisione di informazioni tra i vari processi.

Resource Manager Il Resource Manager mette a disposizione una serie di API di semplice utilizzo per la gestione di informazioni diverse dal codice. Un’applicazione Android è composta: -da codice, -da un insieme di file di tipo diverso (immagini, file di configurazione, file di definizione del layout ecc.). Il Resource Manager è una componente che ottimizza le risorse.

View System View System è una componente che gestisce il rendering delle componenti e degli eventi associati. L’interfaccia grafica di un’applicazione Android è composta da specializzazioni della classe View, ciascuna caratterizzata da una particolare forma e da un diverso modo di interagire con essa attraverso un’accurata gestione degli eventi associati.

Location Manager Il Location Manager mette a disposizione le API per creare App che gestiscono le informazioni relative alla localizzazione: Location Based Application (LBA). Quindi tra le varie applicazioni Android che è possi- bile creare, ci sono quelle relative alla gestione delle mappe.

Notification Manager Il Notification Manager mette a disposizione un insieme di strumenti che l’App può utilizzare per inviare una particolare notifica al dispositivo, questi la dovrà poi presentare all’utente con i meccanismi che conosce. L’App può quindi notificare un particolare evento al dispositivo che potrebbe, per esempio, emettere una vibrazione, lampeggiare i led, visualizzare un’icona e altro ancora.

XMPP Service XMPP Service è un insieme di protocolli aperti di messaggistica istantanea e presenza basato su XML. L’acronimo sta per Extensible Messaging and Presence Protocol (XMPP). Il software basato su XMPP è diffuso su migliaia di Server disseminati su Internet ed è usato da oltre dieci milioni di persone in tutto il mondo.

Applications Sullo strato più alto dell’architettura, poggiano gli applicativi destinati all’utente finale ossia le App vere e proprie che utilizzano i livelli sottostanti appena descritti. Molte App, naturalmente, sono già incluse con l’installazione di base: il browser e il player multimediale sono dei facili esempi; in questo livello si inseriranno anche le App sviluppate da terze parti.