Fondamenti di sviluppo mobile su Android

Documenti analoghi
L00_Introduction. E. Falzone ITIS Magistri Cumacini

Scuola Professionale e Filologica Geom. F.Borgogna Vercelli

ANDROID. Mobile Web Design. Corso di programmazione di sistemi mobile 1

Linux Day ANDROID ed i suoi derivati. Pavia, 24 ottobre Marco Giorgi NUTRIA LUG

Corso di programmazione

INTRODUZIONE ALLE PIATTAFORME

per favore Android Mobile Programming Prof. R. De Prisco Prof. Roberto De Prisco 29/09/14 e NON RISPONDERE!!!! Slide 3

ANDROID. Domenico Talia. Università della Calabria.

Programmazione in ambiente

Sviluppo su Android. Linux Day Torino 2010

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

MA GLI ANDROIDI SOGNANO PINGUINI ELETTRICI? Introduzione ad Android. Il futuro prossimo dei telefoni cellulari.

Il sistema operativo Android

Tecniche di progettazione e sviluppo di applicazioni mobile

Android world. Sviluppare app per Android. Un insieme di software per dispositivi mobili (smartphone, tablet, portatili...)

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

Android per sistemi embedded

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

Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit per lo sviluppo di interfacce utente con paradigma MVC.

Sistemi Mobili e Wireless Android Introduzione alla piattaforma

Android e GNU/Linux ovvero: come imparai a non preoccuparmi e ad amare il robottino

v App Inventor

Introduzione al corso. Laboratorio di Telecomunicazioni (6 CFU) Corso di Laurea in Ingegneria dell Informazione

Horizone Server IN00B02WEB. Horizone PDK

Sviluppo di applicazioni mobili su piattaforma Maemo

Programmazione Android

NetBeans. Dott. Ing. Rossella Rubino A.A. 2007/2008 Laboratorio II CdL: Operatore Informatico Giuridico

Introduzione alla Programmazione. Giselda De Vita

Corso App modulo Android. Antonio Gallo

Introduzione alla programmazione Android. Emanuel Di Nardo

CORSO PROGRAMMAZIONE ANDROID

Diffusione Android e Malware

Guida introduttiva su Eclipse. Ing. Marco Dell'Unto

CUSTOMIZZAZIONE DI ANDROID

Ingegneria del Software 1: Eclipse

Un'applicazione per lo scambio di contenuti multimediali in ambiente Android

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

IDE DevC

Come valutare e scegliere un Sistema Operativo Embedded

Android. Android. Sviluppo di applicazioni. Dalvik 19/03/2011. A. Ferrari

Solution Integrator 18/06/16.

Solution Integrator 28/12/16.

Introduzione al DEV C++

Ing. Vincenzo Falanga

Dispositivi mobili e mobile apps - I

CORSO DI PROGRAMMAZIONE ios BASE IN LINGUAGGIO NATIVO OBJECTIVE-C

Modulo 3. Ecosistema Android

TCL PAD: UN EDITOR DI TESTO ESTENDIBILE, INCORPORABILE E CON INTERFACCE DI TEXT-PROCESSING

Sistema operativo & file system 1

Indice: Introduzione 1 Strumenti di lavoro 2 Istallare Eclipse e SDK 3 Istallare l ADT in eclipse 4. Powered by: Vincenzo Acinapura

iseries Informazioni preliminari su Client Access Express

2) Sistemi operativi. Lab. Calc. AA 2006/07

Programmazione Fondi Strutturali 2007/2013 P.O.N. FSE A.S. 2013/2014 SCHEDA PROGETTUALE MODULO. Obiettivo: C Azione: 1 Riferimento interno:

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

Manuale per il Software Bluetooth di Aggiornamento Utilizzando un Dispositivo Android IVE-W530BT

APIO INTELLIGENZA AI TUOI OGGETTI.

Introduzione ad Android. Lucidi del corso di Programmazione III A.A. 2015/16

Reti di Telecomunicazioni Lezione del 15/11/2013

Mob App Awards 4 Business Regolamento

Sistemi Operativi 11 ottobre 2017

Anno Accademico Laboratorio di Tecnologie Web Uso di Firebug

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Introduzione ad Android

Laboratorio di Elaborazione e Trasmissione Video

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Fondamenti di sviluppo mobile su Android

Installazione Java Standard Edition (SDK)

Tesina esame Programmazione di Sistemi Mobile realizzata da Roberto Giuliani matricola Sicurezza e Permission in Android

Corso di Architettura degli Elaboratori

Cosa è importante: pom.xml Goal Plug-in Repository

Corso di QoS e sicurezza nelle reti Lezione del 11/03/2015

Virtualizzazione e macchine virtuali. Presentata da Bernardo Lombardi

MagiCum S.r.l. Progetto Inno-School

Evolving Mobile Ecosystem. Roberto Freato Freelance IT Consultant & Trainer MVP, MCT, MCPD

La piattaforma Android

Sistemi Operativi per Sistemi di Elaborazione Ubiqui

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

Basi di Dati Ingegneria Informatica e delle Telecomunicazioni

Sviluppo di App per sistema operativo Android

Sistemi Di Elaborazione Dell informazione

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

SETA Selection Tool del Sistema ARTIST

ATTIVITÀ. Descrizione del laboratorio virtuale attivato nel progetto. Documento: Descrizione piattaforma Laboratorio Virtuale

Filippo Druda LO SVILUPPO IN ANDROID

PASW Statistics per Windows - Istruzioni di installazione (Licenza di rete)

Guida Google Cloud Print

UTEAP Università della Terza Età e del tempo libero di Ascoli Piceno

Informatica Generale 06 - Introduzione ai Sistemi Operativi

Linee di programmazione

Linux nei cellulari. ra1nb0w. 23 Ottobre 2010

Architettura dei calcolatori e Software di sistema

Crypto Android. Trusted Execution Environment. TrustZone

Istituto di Istruzione Superiore Statale Carlo Emilio Gadda PIANO DI LAVORO ANNO SCOLASTICO 2015/2016. I.I.S.S '' C. E. GADDA Sede di FONOVO

1 Settimana: Inizia a Programmare (6h) Benvenuti al Corso. Impostazione del Software. Eseguire il gioco

Procedura aggiornamento firmware

Elementi di Informatica Corso di Laurea in Scienze Geologiche a.a. 2003/2004. Docente. Orario. Da Ottobre-Dicembre:

Sistema Informativo Territoriale del bacino dell Adige in ambiente WEB

Java il Corso Fondamentale

Essendo Palette CAD partner di Windows l ultima versione di Palette CAD sarà performante per l ultima versione di Windows.

Elementi di Informatica

Transcript:

Fondamenti di sviluppo mobile su Android Dott. Ing. A. Tedeschi antonio.tedeschi@uniroma3.it Corso di Telecomunicazioni Wireless a.a. 2016-2017 1

Chi sono Dott. Ing. Antonio Tedeschi Ph.D. Student Signal Processing for Telecommunications and Economics (SP4TE) Contatti antonio.tedeschi@uniroma3.it Ricevimento Da concordare via mail, Via Volterra 62, Edificio Vasca Navale, 3 piano, Laboratorio di SP4TE - stanza 3.1 A. Tedeschi 2013/2014 2

Outline Introduzione Android Android studio Il materiale delle DEMO sarà messo a disposizione a fine lezione A. Tedeschi 2013/2014 3

Timeline tecnologia mobile 1973 : Ing. Cooper crea il primo prototipo di telefono cellulare 1974 : patent riguardante i concetti base degli smartphone 2000 2010: Mercato della telefonia mobile dominato da Symbian 2008 : Rilascio di Android sul mercato globale 2010: Android conquista il primato e diventa l OS più venduto 4

Statistiche di mercato Vendite Agosto anno 2013 e 2014 testo 4,9% 12,2 % Vendite in Italia Agosto Anno 2016 Android ios 82,5% Windows Other Link video diffusione Android Fonte Dati da consultare! 5

Android: storia (1/2) Android Inc. fondata nel 2003 da Andy Rubin e Chris White L Idea: creare un SO open source diverso dai competitor Problema: mancanza di fondi Soluzione: Nel 2005 Google acquista la società e crea la «Google Mobile Division» con a capo Rubin 2014 Rubin annuncia le sue dimissioni per dedicarsi alle startup Open Handset Alliance: consorzio di aziende nel settore Hi Tech Permette la presentazione di Android nel 2007 rilasciando la prima SDK (Software Development Kit) 6

Android: storia (2/2) SDK composta da: gli strumenti di sviluppo un emulatore del dispositivo un sistema di aggiornamenti dell sdk la documentazione i tutorial di base per prendere familiarità con il sistema La Mobile Division di Google nel 2009 riuscì a creare non un SO adatto per un solo dispositivo ma un intero ecosistema. Curiosità: Per incentivare lo sviluppo di app Google creò l Android Developer Challenge con un montepremi di 10 milioni di dollari per le migliori 50 applicazioni 7

Versioni Cupcake 1.5 2009 Donut 1.6 2009 Eclair 2.0 2009 Froyo 2.2 2010 Gingerbread 2.3 2010 Honeycomb 3.0 2011 Icecream Sandwich 4.0 2011 Jelly Bean 4.1 2012 KitKat 4.4 2013 Lollipop 5.0 2014 Marshmallow 6.0 2015 Nougat 7.0 2016 Esistono oltre 12000 dispositivi con SO Android ufficialmente supportati da Google 8

Versioni Molteplici versioni + Molteplici Dispositivi = Infiniti aspetti da gestire durante lo sviluppo di un app Fondamentale: Essere compatibili con le versioni più diffuse Gestire opportunamente l aspetto grafico Puntare su una grafica user friendly 9

Architettura 10

Architettura Linux Kernel utilizzato nelle versione 2.6, versione 3.x (versione di Android dalla 4.0 alla 4.2), versione SELinux (Android 4.3 per approfondimenti su SELinux http://selinuxproject.org/page/seandroid ) necessario per virtualizzare l hardware sottostante Libraries sono librerie native scritte in C/C++ (più performanti) rappresentati il vero e proprio nucleo di gestione del sistema operativo. Tra queste fondamentali sono Surface Manager: gestione interfaccia grafica Media Framework: gestione file multimediali SQLite: gestione e creazione di database leggeri (approfondimenti su SQLite http://www.sqlite.org/) 11

Architettura Android Runtime Offre la Dalvik Virtual Machine, macchina virtuale simile alla Java Virtual Machine, ma che si differenzia da questa poiché in grado di leggere file con estensione.dex, ottenuti durante la fase di compilazione Application Framework un insieme di API Java che sfruttano le librerie in C/C++ definite nello strato inferiore, per dare origine a operazioni ben precise, richiamate attraverso lo strato Applications. Tra queste si ha ad esempio l Activity Manager, gestore dell interfaccia grafica Applications lo strato finale con cui l utente interagisce con il sistema 12

Architettura Dalvik Virtual Machine Diversa dalla Java Virtual Machine Ottimizzata per esecuzione di app in ambienti a memoria ridotta. Permette una riduzione del 50% di memoria fisica occupata dal file generato Sfrutta le caratteristiche offerte dall O.S. Basata sull approccio Just-in-time: app compilata solo in parte dallo sviluppatore, ogni volta la Dalvik dovrà eseguire il codice compilandolo in linguaggio macchina in realtime per ogni esecuzione Capacità di eseguire un determinato bytecode, il DEX (Dalvik Executable), ottimizzato per smartphone Ogni applicazione su Android ha un proprio processo e la sua corrispondente istanza di Dalvik Virtual Machine 13

Architettura Android RunTime È il nuovo system runtime di Android Introdotto sperimentalmente da Google nella release KitKat 4.4 Deve essere abilitata manualmente Sfrutta le caratteristiche offerte dall O.S. Basata sull approccio Ahead-of-time: app viene interamente compilata durante l installazione sul device e non durante l esecuzione utilizzando il dex2oat tool Vantaggi in termini di performance Aumentano i tempi di installazione di un app Miglioramento del garbage collection, sviluppo e debugging Fonte: https://source.android.com/devices/tech/dalvik/art.html 14

Android: Ambienti di sviluppo Due possibili strumenti per sviluppare Android Studio Eclipse + ADT plugin 15

Android Studio Android Studio scaricabile al link http://developer.android.com/sdk /installing/studio.html Pro: primo IDE professionale che offre una nuova esperienza di sviluppo significativi miglioramenti per la gestione e lo sviluppo dei progetti Supporto NDK (anche su Windows senza l uso di Cygwing) Contro: presenza di bug, compilazione iniziale un po più lenta (raccomandato) 17

Android: Ambienti di sviluppo Eclipse + ADT Plugin Requisiti: Scaricare (e successivamente installare) L SDK al link http://developer.android.com/sdk/index.html#exist ingide Prendere nota del nome e della posizione in cui è stata salvata l SDK (verrà richiesta in seguito) Scaricare e Installare l ADT Plugin 18

Eclipse + ADT Plugin Riavviato Eclipse la toolbar mostrerà SDK Manager Android Virtual Device Manager 19

SDK Manager 20

Android Virtual Device Manager Gestore dei dispositivi virtuali di Android Permette la creazione di dispositivi le cui caratteristiche possono essere definite in base alle proprie esigenze Pro Si dispone di qualsiasi tipo di device Android Contro L emulatore è lento 21

Android Virtual Device Manager 22

Android Virtual Device Manager 23