Android Introduzione all architettura, alla programmazione e alla sicurezza. Alessandro Tanasi alessandro@tanasi.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Android Introduzione all architettura, alla programmazione e alla sicurezza. Alessandro Tanasi - http://www.tanasi.it - alessandro@tanasi."

Transcript

1 Android Introduzione all architettura, alla programmazione e alla sicurezza Alessandro Tanasi alessandro@tanasi.it

2 Fun & profit Fun Sviluppo applicazioni Invenzione di nuove applicazioni per soddisfare vecchie e nuove esigenze Attività di ricerca Profit Vendita delle applicazioni Sviluppo applicazioni su commissione Vendita o abuso dei risultati di ricerca

3 Architettura

4 Android Software stack per device mobili Middleware Sistema operativo Linux con kernel 2.6 Driver per l'hardware (GPS, accelerometri,..) Librerie Android runtime Application framework Applicazioni Native: telefono, contatti, browser, Di terze parti

5 Kernel Linux kernel e driver che fanno da hardware abstraction layer Core system services per security, memory management, process management, network stack

6 Librerie e runtime Librerie (per la gran parte in linguaggio nativo) esposte attraverso l'application framework Android runtime: Dalvik Virtual Machine e sue librerie core

7 Application framework API ad alto livello Le applicazioni native Android e quelle di terze parti usano le stesse API

8 Sequenza di avvio Il bootloader carica il kernel Demoni per la gestione low level dell'hardware Zygote e Dalvik VM Il service manager viene avviato (binders e comunicazioni IPC) Altri manager App rimanenti

9 Dalvik Virtual Machine Bytecode interpreter (no JIT) Register based Lente CPU ( MHz), poca RAM (64MB) Senza swap Alta densità semantica Istruzioni speciali Ottimizzata per istanze multiple Ottimizzata per avere un memory footprint minimale Esegue file.dex su OS POSIX compliant Si appoggia al kernel per threading e memory management di basso livello

10 Dalvik Executable Format Riduzione delle dimensioni Sostanziale differenza semantica con il bytecode Java Nessuna compressione Comunque minori di un JAR nel caso medio Vengono gestiti in modo efficace da mmap() Dexdump, undx

11 Compilazione e building Compilazione con il compilatore standard Java Conversion in.dex con l'utility dx Nel caso si usino IPC, processing AIDL Le risorse sono incluse nel package apk

12 Sviluppo

13 Android SDK Android API Development tools Emulatore Android Dalvik Debug Monitoring Service (DDMS) Documentazione ed esempi

14 Native Development Kit (NDK) Permettono l'utilizzo di componenti in codice nativo ( C o C++) Cross-toolchains (compilatori, linkers, etc..) per generare binari ARM Libc, libm, OpenGL ES 1.1, JNI interface, libz Non permette di creare applicazione nativeonly Il runtime applicativo rimane la Dalvik VM

15 Android Scripting Environment Programmare in Python, Perlm, Jruby, BeanShell, Lua.. Per casi particolare in cui bisogna adottare paradigmi di programmazione diversi da quelli imposti dall'sdk Accesso semplificato e non completo alle API Es: web server in 4 righe di python

16 Development Tools Eclipse Plugin: Andreoid Dev Tools CLI: activitycreator.py Compila e crea il pacchetto automaticamente Lancia l'emulatore in debugging mode Genere la struttura del progetto Ant build.xml file IntelliJ project files DroidDraw, SensorSimulator

17 Esempio \

18 Anatomia di un'app

19 Lego per costruzioni Activity: Componente UI (tipicamente una schermata, presentation layer) Service: Task in background Content Provider: Gestisce e condivide dati tra applicazioni Intent: Messaggistica asincrona Intent filter: Dichiarazione XML dei messaggi che possono essere gestiti Broadcast Receiver: attende intents broadcast che corrispondono a certi criteri (Intent filter) Manifest: Proprietà dell'applicazione

20 User interface Composta da oggetti View e ViewGroup (vari tipi) Layout definito in file XML Stringhe memorizzate separatamente Sottoscrizione agli eventi dell'ui tramite listener o overriding callback Definizione dei menu e loro creazione automatica Notifiche Adapter per le viste dinamicamente Stili e temi

21 Esempio <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hello, I am a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="hello, I am a Button" /> </LinearLayout>

22 Resource e asset Generalmente sono elementi esterni referenziati dall'applicazione Immagini, audio, video, stringhe di testo, layout, temi Directory per resource (res/) e directory per asset (assets/) La differenza è nel metodo di accesso I18n

23 Data Storage Tecniche differenti per memorizzare dati Shared preferences: meccanismo per memorizzare strutture chiavi-valore SQLite: DBMS relazionale per memorizzare dati articolati Files: RW di file sulla memoria locale ed SD card Network: Utilizzando java.net.* e android.net.*

24 Multimedia Grafica 2D e grafica 3D con OpenGL ES API Offre funzioni built-in di encoding/decoding per alcuni media types MediaPlayer e MediaRecorder android.location e Google Maps library Accelerometro, bussola

25 AndroidManifest.xml Ogni applicazione deve avere un AndroidManifest.xml file Descrive l'applicazione: Nome del package Java Descrive i suoi componenti Permessi richiesti dall'applicazione Permessi richiesti per interagire con i suoi componenti Opzionali informazioni per testing (profiling) Dipendenza dalla versione delle android API Librerie utilizzate

26 Esempio di manifest <manifest xmlns:android=" package="org.sipdroid.sipua" android:versionname="1.1.3 beta" android:versioncode="32"> <uses-sdk android:minsdkversion="3" /> <application <activity android:name=".ui.sipdroid" android:launchmode="singleinstance" android:configchanges="orientation keyboardhidden"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <receiver android:name=".ui.caller"/> <receiver android:name=".ui.receiver" android:enabled="true"> <intent-filter> <action android:name="android.intent.action.boot_completed" /> </intent-filter> </receiver> </application> <uses-permission android:name="android.permission.internet"></usespermission>

27 Life Cycle Le applicazioni running sono gestite in una gerarchia: foreground process (priorità critica) visible process (alta priorità) service process (bassa priorità) background process empty process Le Activity sono mantenute in un activity stack (LIFO) Un activity ha tre stati: running o active, paused, stopped

28 Life cycle in dettaglio

29 Pubblicare un'applicazione Iscriversi al market come sviluppatore (25 ) Dare un numero di versione Firmare il pacchetto Pubblicare l'applicazione Google trattiene il 30% degli incassi

30 Sicurezza

31 Android Security Model Ogni processo viene eseguito in una DVM separata File non condivisi tra applicazioni Linux + Android permission model UID e GID distinti assegnati all'installazione Stack address randomization

32 Android Permissions Limite alle funzionalità di un software: android.permission Granularità sulle azioni e sull'accesso ai dati Specificate nel file manifest <uses-permission android:name="android.permission.read_contacts"> </uses-permission> <uses-permission android:name="android.permission.write_contacts"> </uses-permission>

33 Ma... Bypass memory protections Vunerabilità riscontrate La sandbox è abbastanza granulare per far girare applicazioni non trusted? Marketing profiling, E.T. chiama sempre casa Non conoscenza del funzionamento interno di un'applicazione (client HTTP o HTTPS?) Rootkit, managed code rootkit

34 Conclusioni

35 Conclusioni L'architettura è disegnata pensando anche allo sviluppatore Lo sviluppo è semplice e veloce Sistemi di security granulari allo scopo di isolare le applicazioni in una sandbox Lo sviluppo può essere divertente e redditizio C'è ampio spazio per la ricerca

36 Approfondimenti

37 Domande

Android Introduzione all architettura, alla programmazione e alla sicurezza. Alessandro Tanasi - http://www.tanasi.it - alessandro@tanasi.

Android Introduzione all architettura, alla programmazione e alla sicurezza. Alessandro Tanasi - http://www.tanasi.it - alessandro@tanasi. Android Introduzione all architettura, alla programmazione e alla sicurezza Alessandro Tanasi - http://www.tanasi.it - alessandro@tanasi.it Fun & profit Fun Sviluppo applicazioni Invenzione di nuove applicazioni

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

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

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

Programmazione Android. Luca Morettoni <luca@morettoni.net> 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

Tecniche di progettazione e sviluppo di applicazioni mobile

Tecniche di progettazione e sviluppo di applicazioni mobile Slide del corso FSE Tecniche di progettazione e sviluppo di applicazioni mobile svolto presso AREA Science Park Padriciano - Trieste - Italy diegozabot@yahoo.it Android Introduzione diegozabot@yahoo.it

Dettagli

Basi Android. Android si definisce open. Con8ene tecnologie open source. Il codice di Android è open. Licenza Open Source Apache 2.

Basi Android. Android si definisce open. Con8ene tecnologie open source. Il codice di Android è open. Licenza Open Source Apache 2. Basi Android 1 Android Cosa è Android? Android è un insieme di strumen8 e librerie per sviluppare applicazioni mobili è più di un SO Android si definisce open Con8ene tecnologie open source Linux Il codice

Dettagli

Sviluppo su Android. Linux Day Torino 2010

Sviluppo su Android. Linux Day Torino 2010 Sviluppo su Android Linux Day Torino 2010 Francesco Ronchi francesco.ronchi@gmail.com - www.synesthesia.it Cos'è Android Sistema operativo dedicato ai device mobili: cellulari, palmari, tablet, navigatori...

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

Scuola Professionale e Filologica Geom. F.Borgogna Vercelli

Scuola Professionale e Filologica Geom. F.Borgogna Vercelli Scuola Professionale e Filologica Geom. F.Borgogna Vercelli Corsi ANDROID 2013/2014 Benvenuti nel mondo dinamico dello sviluppo di applicazioni per smartphone e tablet Android Corsi ANDROID 2013/2014 L

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

Sistemi Mobili e Wireless Android Introduzione alla piattaforma

Sistemi Mobili e Wireless Android Introduzione alla piattaforma Sistemi Mobili e Wireless Android Introduzione alla piattaforma Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Cos'è Android?

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

SISTEMI OPERATIVI ANDROID

SISTEMI OPERATIVI ANDROID SISTEMI OPERATIVI ANDROID Argomenti» Introduzione al sistema Android» Generalità sull architettura del sistema» Architettura a livello Kernel» Architettura a livello applicazione» Gestione dei permessi

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

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

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

Android development. Sviluppo di Mobile Apps sul sistema operativo di Google

Android development. Sviluppo di Mobile Apps sul sistema operativo di Google Android development Sviluppo di Mobile Apps sul sistema operativo di Google Agenda Giorni: Gio 14/04/2011 Ven 15/04/2011 Gio 21/04/2011 Ven 22/04/2011 Suddivisione: Mattina: teoria Pomeriggio: pratica

Dettagli

14/10/2015 ALESSANDRAZULLO SVILUPPO DI APPLICAZIONI ANDROID- VERSIONE 1. http://alessandrazullo.altervista.org Alessandra Zullo

14/10/2015 ALESSANDRAZULLO SVILUPPO DI APPLICAZIONI ANDROID- VERSIONE 1. http://alessandrazullo.altervista.org Alessandra Zullo 14/10/2015 ALESSANDRAZULLO SVILUPPO DI APPLICAZIONI ANDROID- VERSIONE 1 http://alessandrazullo.altervista.org Alessandra Zullo Indice Provvisorio INTRODUZIONE... 3 COMPONENTI PRINCIPALI... 3 PROCESSI...

Dettagli

Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione

Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione UNIVERSITA DEGLI STUDI DI FERRARA Corso di Laurea in informatica Anno Accademico 2011-2012 Sviluppo di un applicazione mobile per la gestione degli interventi tecnici tramite geolocalizzazione Relatore:

Dettagli

Indice generale. Capitolo 1 Introduzione ad Android... 1

Indice generale. Capitolo 1 Introduzione ad Android... 1 Prefazione Introduzione...xvii...xix Capitolo 1 Introduzione ad Android... 1 Che cos è Android... 2 Un po di storia... 3 Android e Java... 4 Confronto con J2ME... 6 La Dalvik Virtual Machine... 9 L architettura

Dettagli

SISTEMI OPERATIVI ANDROID. Argomenti

SISTEMI OPERATIVI ANDROID. Argomenti SISTEMI OPERATIVI ANDROID Argomenti» Introduzione al sistema Android» Generalità sull architettura del sistema» Architettura a livello Kernel» Architettura a livello applicazione» Gestione dei permessi

Dettagli

INTRODUZIONE ALLE PIATTAFORME

INTRODUZIONE ALLE PIATTAFORME INTRODUZIONE ALLE PIATTAFORME Android ios Windows Phone 8 Android 2 Cos è Android? Un moderno open-source sistema operativo Componenti: Linux kernel Java Core applications 3 Perché è stato un successo

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

Corso App modulo Android. Antonio Gallo info@laboratoriolibero.com

Corso App modulo Android. Antonio Gallo info@laboratoriolibero.com Corso App modulo Android Antonio Gallo info@laboratoriolibero.com Strumentazione: PC + smartphone Android + cavo micro USB per connessione Framework Phonegap SDK di Android JDK (Java) Eclipse (opzionale)

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

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

Dettagli

Potenza Elaborativa, Sistemi Operativi e Virtualizzazione

Potenza Elaborativa, Sistemi Operativi e Virtualizzazione Potenza Elaborativa, Sistemi Operativi e Virtualizzazione Roma, Febbraio 2011 Operating Systems & Middleware Operations Potenza Elaborativa e Sistemi Operativi La virtualizzazione Operating Systems & Middleware

Dettagli

Architettura di un sistema operativo

Architettura di un sistema operativo Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi

Dettagli

Corso di programmazione di sistemi mobile 1. Android. Architettura, ambiente di sviluppo e struttura di un progetto

Corso di programmazione di sistemi mobile 1. Android. Architettura, ambiente di sviluppo e struttura di un progetto Corso di programmazione di sistemi mobile 1 Android Architettura, ambiente di sviluppo e struttura di un progetto Corso di programmazione di sistemi mobile 2 Android e Java Android non esegue bytecode

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

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

Sistemi Mobili e Wireless Android Localizzazione utente

Sistemi Mobili e Wireless Android Localizzazione utente Sistemi Mobili e Wireless Android Localizzazione utente Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Localizzazione utente

Dettagli

Lezione 1 Primi passi con Android

Lezione 1 Primi passi con Android A cura di Carlo Pelliccia Meno di tre anni fa Google ha rilasciato una versione preliminare del kit di sviluppo di Android, il suo nuovo sistema operativo dedicato agli smartphone. Futurologi e semplici

Dettagli

Lezione 1. Sviluppo di Applicazioni per ios. Panoramica Tecnologica ios e ios SDK Strumenti di sviluppo per ios. Università di Pisa

Lezione 1. Sviluppo di Applicazioni per ios. Panoramica Tecnologica ios e ios SDK Strumenti di sviluppo per ios. Università di Pisa Lezione 1 Sviluppo di Applicazioni per ios Panoramica Tecnologica ios e ios SDK Strumenti di sviluppo per ios Oggi... ios e ios SDK Strumenti di sviluppo Linguaggio Objective C Fondamenti di OOP Dispositivi

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE ANDROID

INTRODUZIONE ALLA PROGRAMMAZIONE ANDROID INTRODUZIONE ALLA PROGRAMMAZIONE ANDROID Giuseppe Marziale Bari, 27 Novembre 2013 About Me (Giuseppe Marziale) Sono Laureato in Ingegneria informatica specializzazione in sistema informativi e reti ( Ottobre

Dettagli

Installazione e caratteristiche generali 1

Installazione e caratteristiche generali 1 Installazione e caratteristiche generali 1 Introduzione SIGLA Ultimate e SIGLA Start Edition possono essere utilizzati solo se sono soddisfatti i seguenti prerequisiti: Microsoft.Net Framework 3.5 (consigliato

Dettagli

Lezione 1 Primi passi con Android

Lezione 1 Primi passi con Android A cura di Carlo Pelliccia Android è una piattaforma software per smartphone e tablet realizzata dal consorzio noto come Open Handset Alliance, di cui Google è capofila e maggiore contributore, ed al quale

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Strumenti per il testing di applicazioni in ambiente Android

Strumenti per il testing di applicazioni in ambiente Android tesi di laurea Strumenti per il testing di applicazioni in ambiente Android Anno Accademico 2010\2011 relatore Ch.mo prof. Marcello Cinque candidato Nome Domenico Paone Matr. 534\003571 Android Testing

Dettagli

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente:

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il.NET Framework By Dario Maggiari L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il cuore del.net Framework è costituito dal CLR (Common Language Runtime) che, secondo

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna Il CMS Moka Giovanni Ciardi Regione Emilia Romagna Moka è uno strumento per creare applicazioni GIS utilizzando oggetti (cartografie, temi, legende, database, funzioni) organizzati in un catalogo condiviso.

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

Introduzione alla programmazione Android. Emanuel Di Nardo

Introduzione alla programmazione Android. Emanuel Di Nardo Introduzione alla programmazione Android 1 Emanuel Di Nardo emanuel.dinardo@gmail.com Architettura di base Insieme software composto da: Sistema operativo Middleware Applicazioni di base Utilizzo del linguaggio

Dettagli

Implementazione di MVC. Gabriele Pellegrinetti

Implementazione di MVC. Gabriele Pellegrinetti Implementazione di MVC Gabriele Pellegrinetti 2 Come implementare il pattern Model View Controller con le tecnologie JSP, ASP e XML Implementazione del pattern MVC in Java (JSP Model 2) SUN è stato il

Dettagli

Virtualizzazione e Macchine Virtuali

Virtualizzazione e Macchine Virtuali Virtualizzazione e Macchine Virtuali Gabriele D Angelo, Ludovico Gardenghi {gda, garden}@cs.unibo.it http://www.cs.unibo.it/~gdangelo/ http://www.cs.unibo.it/~gardengl/ Università di Bologna Corso di Laurea

Dettagli

Corso Programmazione Java ed Android

Corso Programmazione Java ed Android Corso Programmazione Java ed Android Codice: ITAJ0114 Durata: 72 ore Descrizione corso Il corso Programmazione Java ed Android è rivolto agli amanti del mobile che intendono entrare in questo affascinante

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

Architetture software. Virtualizzazione

Architetture software. Virtualizzazione Sistemi Distribuiti Architetture software 1 Virtualizzazione 2 1 Virtualizzazione (motivazioni) Sullo stesso elaboratore possono essere eseguiti indipendentemente d t e simultaneamente t sistemi i operativi

Dettagli

Approfondimenti. Contenuti

Approfondimenti. Contenuti Approfondimenti dott. Stefano D. Fratepietro steve@stevelab.net C I R S F I D Università degli studi di Bologna stevelab.net Creative Commons license Stefano Fratepietro - www.stevelab.net 1 Contenuti

Dettagli

Sommario. Oracle Database 10g (laboratorio) Grid computing. Oracle Database 10g. Concetti. Installazione Oracle Database 10g

Sommario. Oracle Database 10g (laboratorio) Grid computing. Oracle Database 10g. Concetti. Installazione Oracle Database 10g Sommario Oracle Database 10g (laboratorio) Dr. Daniele Barone Dr. Simone Grega 1 2 Oracle Database 10g Offre alte qualità del servizio: Performance; Scalabilità; Sicurezza; Affidabilità. Gestione autonoma

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

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

Android. Elenco dei package

Android. Elenco dei package Android Elenco dei package Introduzione In questa lezione vedremo l'elenco completo dei package Android che raggruppano le classi che è possibile utilizzare per sviluppare una applicazione utilizzando

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Sistema Operativo Software! Applicazioni! Sistema Operativo! È il livello di SW con cui! interagisce l utente! e comprende! programmi quali :! Compilatori! Editori di

Dettagli

Corso Programmazione Android

Corso Programmazione Android Corso Programmazione Android Codice: ITAM0114 Durata: 40 ore Descrizione corso Il corso Programmazione Android è rivolto agli amanti del mobile che intendono entrare in questo affascinante mondo, in continua

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica SOFTWARE Francesco Tura francesco.tura@unibo.it 1 Le componenti del calcolatore: HARDWARE E SOFTWARE HARDWARE parti che compongono fisicamente il calcolatore componente multifunzionale

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

The Onion PC. Virtualizzazione strato dopo strato

The Onion PC. Virtualizzazione strato dopo strato The Onion PC Virtualizzazione strato dopo strato Cos'è un livello di astrazione? Cos'è un livello di astrazione? Nell'esecuzione di un programma un livello di astrazione rappresenta i gradi di libertà

Dettagli

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti GESTIONE DEI PROCESSI 4.1 Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in diversi S.O. 4.2 Concetto di

Dettagli

Android Porting on a Mobile Device

Android Porting on a Mobile Device Android Porting on a Mobile Device git commit --author Michael Trimarchi Simboli Parte abbordabile Parte che presenta alcune difficoltà Parte estremamente difficile Che cos'è

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di

Dettagli

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO Componenti di so 1 Componenti di Sistemi Operativi System Call Programmi di sistema Componenti di un SO Servizi di SO 2 System Call Le system call forniscono l'interfaccia tra running program e SO Generalmente

Dettagli

Comunità Open Source e PMI. Il caso: Java Open Business

Comunità Open Source e PMI. Il caso: Java Open Business Comunità Open Source e PMI Il caso Java Open Business 5 ottobre 2007 Alessandro De Rossi Centro TeDIS Venice International University Indice I modelli di Business Il caso: Java Open Business 1 Modelli

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

Università degli Studi di Catania Corso di Laurea Magistrale in Informatica Multimedia 2013/14. Cantarella Danilo. OpenCV Android

Università degli Studi di Catania Corso di Laurea Magistrale in Informatica Multimedia 2013/14. Cantarella Danilo. OpenCV Android Università degli Studi di Catania Corso di Laurea Magistrale in Informatica Multimedia 2013/14 Cantarella Danilo Introduzione OpenCV (Open Source Computer Vision Library) è una libreria disponibile per

Dettagli

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro

Dettagli

Distribuire Applicazioni virtualizzate con APP-V

Distribuire Applicazioni virtualizzate con APP-V Distribuire Applicazioni virtualizzate con APP-V di Nicola Ferrini MCT MCSA MCSE MCTS MCITP Introduzione Application Virtualization è un tool integrato nel pacchetto MDOP (Microsoft Desktop Optimization

Dettagli

Informatica. Prof. A. Longheu. Introduzione a Java

Informatica. Prof. A. Longheu. Introduzione a Java Informatica Prof. A. Longheu Introduzione a Java 1 Code-Name Green Nome del progetto Sun con l obiettivo di fornire intelligent consumer-electronic devices. Il risultato fu Oak Un linguaggio basato su

Dettagli

CLOUD AWS. #cloudaws. Community - Cloud AWS su Google+ Amazon Web Services. Servizio Amazon SNS

CLOUD AWS. #cloudaws. Community - Cloud AWS su Google+ Amazon Web Services. Servizio Amazon SNS Community - Cloud AWS su Google+ Amazon Web Services Servizio Amazon SNS Oggi vedremo il servizio di Amazon SNS per la gestione delle notifiche tra applicazioni e servizi esterni. Hangout 09 del 18.03.2014

Dettagli

Indice generale. Prefazione...xiii. Introduzione...xv

Indice generale. Prefazione...xiii. Introduzione...xv Prefazione...xiii Introduzione...xv Destinatari del libro...xvi Prerequisiti...xvi Versioni di Android...xvii Organizzazione del libro...xvii Convenzioni...xviii Ringraziamenti...xix L autore...xix Il

Dettagli

Android AppInventor. Argomenti trattati. Introduzione. AppInventor. etc. Google Android Android SDK, Android Market

Android AppInventor. Argomenti trattati. Introduzione. AppInventor. etc. Google Android Android SDK, Android Market Android v. 1.0.1 Argomenti trattati Android AppInventor Introduzione Google Android Android SDK, Android Market AppInventor Architettura Sviluppo di applicazioni etc Storia Introduzione Android Android

Dettagli

Programmazione Android. Giovanni Perbellini Università di Verona EDALab S.r.l.

Programmazione Android. Giovanni Perbellini Università di Verona EDALab S.r.l. Programmazione Android Giovanni Perbellini Università di Verona EDALab S.r.l. Agenda Introduzione Android Overview Ambiente di sviluppo Esempi Java Helloworld Weather (HTTP) Esercizio SOAP per Android

Dettagli

Progettazione e Implementazione di API WebSocket per il Gateway Dog

Progettazione e Implementazione di API WebSocket per il Gateway Dog Corso di Laurea in Ingegneria Informatica Tesi di Laurea Magistrale Progettazione e Implementazione di API WebSocket per il Gateway Dog Relatori: Fulvio Corno Luigi De Russis Candidato: Teodoro Montanaro

Dettagli

C++ E QT, BINOMIO PERFETTO

C++ E QT, BINOMIO PERFETTO C++ E QT, BINOMIO PERFETTO Luca Ottaviano Software developer, Develer 1 CHI SONO Team leader e sviluppatore embedded presso Develer Sviluppo con Qt da 8 anni, mi occupo principalmente di realizzare interfacce

Dettagli

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione Lezione 4 La Struttura dei Sistemi Operativi Introduzione Funzionamento di un SO La Struttura di un SO Sistemi Operativi con Struttura Monolitica Progettazione a Livelli di un SO 4.2 1 Introduzione (cont.)

Dettagli

Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pratici.

Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pratici. Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pratici. Riccardo Solimena (Java Italian Portal) Stefano Sanna (JUG Sardegna Onlus) Outline Who we are Android: brevissima introduzione

Dettagli

Sistemi Operativi per Sistemi di Elaborazione Ubiqui

Sistemi Operativi per Sistemi di Elaborazione Ubiqui Griglie e Sistemi di Elaborazione Ubiqui Sistemi Operativi per Sistemi di Elaborazione Ubiqui Griglie e Sistemi Ubiqui - D. Talia - UNICAL 1 Sistemi Operativi per Ubiquitous Computing Palm OS Symbian OS

Dettagli

La genealogia di Windows. Windows NT e Windows 95/98. Dimensioni del codice. Parte IX. Windows

La genealogia di Windows. Windows NT e Windows 95/98. Dimensioni del codice. Parte IX. Windows La genealogia di Windows Parte IX Windows Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1 DOS: sistema operativo monoutente Windows 3.1 interfaccia a finestre che gira su DOS Windows 95/98

Dettagli

Parte IX. Windows. Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1

Parte IX. Windows. Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1 Parte IX Windows Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1 La genealogia di Windows DOS: sistema operativo monoutente Windows 3.1 interfaccia a finestre che gira su DOS Windows 95/98

Dettagli

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

InitZero s.r.l. Via P. Calamandrei, 24-52100 Arezzo email: info@initzero.it

InitZero s.r.l. Via P. Calamandrei, 24-52100 Arezzo email: info@initzero.it izticket Il programma izticket permette la gestione delle chiamate di intervento tecnico. E un applicazione web, basata su un potente application server java, testata con i più diffusi browser (quali Firefox,

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

DBMS e Linguaggi di programmazione nell'era di Internet

DBMS e Linguaggi di programmazione nell'era di Internet DBMS e Linguaggi di programmazione nell'era di Internet Crippa Francesco fcrippa@tiscalinet.it Crippa Francesco (GPL) 1 Programma del corso DBMS nati per il WEB: MySQL Postgres Il cuore del WWW, il web

Dettagli

SISTEMI OPERATIVI THREAD. Giorgio Giacinto 2013. Sistemi Opera=vi

SISTEMI OPERATIVI THREAD. Giorgio Giacinto 2013. Sistemi Opera=vi SISTEMI OPERATIVI THREAD 2 Mo*vazioni» Un programma complesso può eseguire in modo concorrente più funzioni agraverso la creazione e ges=one di processi figli agraverso il meccanismo dei thread» La creazione

Dettagli

Capitolo 3: Strutture dei sistemi operativi

Capitolo 3: Strutture dei sistemi operativi Capitolo 3: Strutture dei sistemi operativi Componenti del sistema Servizi di un sistema operativo Chiamate del sistema Programmi di sistema Struttura del sistema Macchine virtuali Progettazione e realizzazione

Dettagli

Il Linux che verrà... Francesco Crippa

Il Linux che verrà... Francesco Crippa Il Linux che verrà... Francesco Crippa Cosa ci attente? Tante novità per il mondo server side Tante novità per gli sviluppatori Tante novità per gli appassionati... e per gli utenti? Virtualizzare il sistema

Dettagli

Organizzazione Monolitica

Organizzazione Monolitica Principali componenti di un sistema Applicazioni utente Interprete di comandi (shell) Interfaccia grafica (desktop) Gestore del processore / Scheduler(s) Gestore della memoria Gestore delle periferiche/

Dettagli

Realizzazione di un applicazione per la visualizzazione grafica didattica e di debug per algoritmi in Java

Realizzazione di un applicazione per la visualizzazione grafica didattica e di debug per algoritmi in Java La Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Anno Accedemico 2008-2009 Relazione finale su progetto interno Realizzazione di un applicazione per la visualizzazione

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

GestVetrine 1.1 versione novembre 2014

GestVetrine 1.1 versione novembre 2014 GestVetrine 1.1 versione novembre 2014 0 GestVetrine 1.1 GestVetrine 1.0 Indice Indice pag.1 1. Finalità pag.2 2. Gestione screen pag.2 3. Come Accedere pag.3 4. Come Creare un negozio pag.4 5. Come Creare

Dettagli

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse Prova Finale a.a. 2011/2012 Laboratorio 1: Introduzione a Java e Eclipse 1 Java 6 Standard Edition Linguaggio Java (... (javac, Tool di sviluppo Librerie per l'interfaccia grafica Librerie di base Macchina

Dettagli

Silence Please! Gestore di profili audio per smartphone Android utilizzante geolocalizzazione GPS. Carmine Benedetto Luca Laudadio

Silence Please! Gestore di profili audio per smartphone Android utilizzante geolocalizzazione GPS. Carmine Benedetto Luca Laudadio Silence Please! Gestore di profili audio per smartphone Android utilizzante geolocalizzazione GPS Carmine Benedetto Luca Laudadio Silence Please! - Descrizione Generale Silence Please! è un'applicazione

Dettagli

Gestione della Memoria

Gestione della Memoria Gestione della Memoria Idealmente la memoria dovrebbe essere grande veloce non volatile Gerarchia di memorie Disco: capiente, lento, non volatile ed economico Memoria principale: volatile, mediamente grande,

Dettagli

Introduzione a Dev-C++

Introduzione a Dev-C++ Introduzione a Dev-C++ Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Note: Dev-C++ richiede Windows 95/98/NT/2000/XP

Dettagli

L ambiente di sviluppo Android Studio

L ambiente di sviluppo Android Studio L ambiente di sviluppo Android Studio Android Studio è un ambiente di sviluppo integrato (IDE, Integrated Development Environment) per la programmazione di app con Android. È un alternativa all utilizzo

Dettagli

Introduzione all uso di Eclipse

Introduzione all uso di Eclipse Introduzione all uso di Eclipse Daniela Micucci Programmazione Outline Eclipse: concetti generali Definire un workspace Creare un project Importare un file Utilizzo 1 Introduzione Eclipse è un ambiente

Dettagli