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

Slides:



Advertisements
Presentazioni simili
Traduzione ed Interpretazione
Advertisements

Programmazione in Java
1 Introduzione ai calcolatori Parte II Software di base.
Il Software.
Digital FX!32 Conte Davide Crivello Emanuele Ferrando Elisa.
Interazione Uomo - Macchina
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Android A. Ferrari.
Recupero debito quarto anno Primo incontro
Applet Java.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
I linguaggi di programmazione
Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette all'utente.
CONOSCIAMO IL WINDOWS '95.
Java Enterprise Edition (JEE)
Massa Laura Mela Enrica
Università degli Studi di Modena e Reggio Emilia
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.
Introduzione al linguaggio Java
Struttura dei sistemi operativi (panoramica)
Laboratorio di Informatica
Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.
Windows Sistema operativo con interfaccia grafica per PC IBM compatibili (varie versioni dal 95) La gestione dei file viene fatta secondo le modalità.
1 Titolo Presentazione / Data / Confidenziale / Elaborazione di... ASP. Net Web Part e controlli di login Elaborazione di Franco Grivet Chin.
Struttura di un progetto eclipse
Architettura Java/J2EE
Argomenti della lezione
Programmazione in Java
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Java Contardi Carlo A.S. 2008/09.
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.
Servizi Grid ed agenti mobili : un ambiente di sviluppo e delivering
Sistemi Informativi sul Web
Java come linguaggio di programmazione
Insegnamento “Tecniche audiovisive” Corso di Laurea in Ingegneria delle Comunicazioni Symbian Marco Teodori Assistente Ricercatore - Fondazione Ugo Bordoni.
Android Insegnamento “Tecniche audiovisive”
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
Sommario Cartelle Gestione delle risorse Manifest dell’applicazione
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
la traduzione dei programmi
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
© Copyright NTT DATA Italia – All Rights Reserved The information contained in this document is the property of NTT DATA Italia S.p.A. and the addressee.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Il software Componente del computer costituita dai: –programmi di base per la gestione del sistema –programmi applicativi per l’uso del sistema Queste.
Progetto di Ingegneria del Web Anno Accademico 2007/2008 Stefano Pigiani Bruno Ricci Marco Ruzzon.
UNIVERSITA’ DEGLI STUDI DI ROMA TOR VERGATA
ANDROID FORENSICS.
1 Macchine astratte, linguaggi, interpretazione, compilazione.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
ProgettAzione Tecnologie in movimento V anno. Applicazioni per sistemi mobili.
Easy Studio Realizzazione di un applicazione Android utile all'apprendimento Filippo Druda Istituto Tecnico Industriale Don Orione Fano Esame di Stato.
Eprogram informatica V anno.
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
+ Windows Phone : introduzione e configurazione dell’ambiente Nicolò Sordoni.
Mobile Apps e Android Tecniche Audiovisive Ing. Andrea Proietti Dip. DIET, Laboratorio di Multimedialità, I piano, stanza 111, Via Eudossiana 18,
Programmazione orientata agli Oggetti Introduzione a Java.
Corso di programmazione di sistemi mobile 1 1 Android Laboratorio Primo Progetto, Toast.
Eprogram informatica V anno. Programmare in rete.
Open City Platform è un progetto finanziato da Application Store Tutorial 30/09/2015.
Introduzione. 2 Perché Java? Java è un linguaggio di programmazione nato per essere eseguito su macchine e sistemi operativi molto diversi fra loro. A.
Insegnamento “Tecniche audiovisive” Corso di Laurea in Ingegneria delle Comunicazioni Yahoo! Widget TV Marco Teodori Assistente Ricercatore - Fondazione.
Corso di programmazione di sistemi mobile 1 1 Android Activity, View e Layout.
Gestire la navigazione. Creare un’app multi Controller La quasi totalità delle app è suddivisa in più ViewControllers, ognuno con specifiche funzionalità.
The Tavolo™. DESCRIZIONE 1 IL BISOGNO DELL’AZIENDA La necessità dell’azienda consiste nella volontà di posizionarsi come figura di riferimento innovativo.
Framework di sicurezza della piattaforma OCP (Identity & Access Management) Smart Cities and Communities and Social Innovation Bando MIUR D.D. 391/Ric.
Transcript della presentazione:

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

Corso di programmazione di sistemi mobile 2 2 Android e Java Android non esegue bytecode Java, quindi non ha bisogno di una JVM, per ottimizzare al massimo l’utilizzo delle risorse dei dispositivi, è stata creata una propria Virtual Machine che prende il nome di Dalvik (nome delle città di origine dello sviluppatore). Successivamente, dalla versione di Android 5.0 Lollipop, è stato sostituito da Art. Android utilizza per quasi la totali le librerie standard di Java ad esclusione delle Abstract Window Toolkit (AWT) e Swing. Java però non è l’unico linguaggio a disposizione degli sviluppatori, infatti esiste: Android Scripting Evironment (ASE): per semplificare lo sviluppo delle applicazioni attraverso un linguaggio di scripting di alto livello Android Native Development Kit (AND): per sfruttare al massimo le potenzialità hardware del dispositivo nel caso di app che richiedono elevata elaborazione

Corso di programmazione di sistemi mobile 3 3 Si tratta di una VM ottimizzata per l’esecuzione di applicazioni in dispositivi a risorse limitate, la quale esegueil codice contenuto in file di estensione.DEX ottenuto a sua volta dai file.class contenuti all’interno del fileapk installato.Durante l’esecuzione di un programma la Dalvik si occupa di tradurre il bytecode in linguaggio macchina cosìda divenire eseguibile. Una volta terminata l’esecuzione dell’applicazione il codice tradotto viene perso.La DVM utilizza un garbage collectorIl meccanismo di generazione del codice nella DVM viene detto register based (orientato all’utilizzo deiregistri) a differenza di quello della JVM di tipo stack based (orientato all’utilizzo dello stack).Grazie a ciò si ottiene una riduzione dicirca il 30% delle operazioni (in generale!) Considerando l’operazione: c = a + b DAVLIK VM push b; // LS push a: // LS add; // LLS store c; // LS add a,b,c /LLS

Corso di programmazione di sistemi mobile 4 4 Sostituisce la Dalvik, si basa sulla tecnologia Ahead-of-time, in cui la compilazione viene eseguita per interodurante l’installazione dell’applicazione generando un file.ELF eseguibile.La generazione del file comporta un miglioramento delle prestazioni, della gestione delle risorse e unariduzione dei tempi di avvio ed esecuzione dell’applicazione.A differenza di quanto avveniva con la Dalvik le applicazioni eseguite con Art richiedono maggior spazio suldispositivo.Infine ART utilizza un nuovo garbage collector ART (Android RunTime)

Corso di programmazione di sistemi mobile 5 5 Piattaforma di Android

Corso di programmazione di sistemi mobile 6 6 Piattaforma o Linux Kernel: rappresenta il livello di astrazione dell’hardware con i driver per la gestione delle diverse periferiche. o Libraries: librerie native sviluppate in linguaggio C/C++ e utilizzate da vari componenti del sistema o Android Runtime: costituito da una libreria core che permette l’esecuzione delle applicazioni e da una virtual machine, sostituita di recente da Art e costituiscono la piattaforma di sviluppo di Android. o Application Framework: Insieme di API e componenti. Sono presenti i gestori per le risorse, per le app, per il file system e le applicazioni di base del sistema. o Application: applicazioni utilizzate dall’utente, come per esempio il telefono, il calendario, la rubrica. E’ bene notare che Android non differenzia le applicazioni di terze parti da quelle già incluse di default, infatti garantisce gli stessi privilegi a entrambe le categorie

Corso di programmazione di sistemi mobile 7 7 o Activity Manager : ha il compito di gestire le varie Activity sul display e di organizzarle in uno stack in base all’ordine di visualizzazione sullo schermo o Package Manager : gestisce i processi di installazione e rimozione delle applicazioni dal sistema o Window Manager : gestisce le finestre delle diverse applicazioni o Telephony Manager : consente di accedere alle informazioni e l’utilizzo dei servizi di telefonia del dispositivo o Resource Manager : gestisce tutte le informazioni relative ad una applicazione come file di configurazione, layout, immagini, ecc o View System : gestisce gli elementi grafici (view) utilizzati nella costruzione dell’interfaccia utente (UI) o Location Manager : API per la gestione delle informazioni relative alla localizzazione o Notification Manager : gestisce le informazioni di notifica tra il dispositivo e l’utente. Le notifiche possono consistere in vari eventi: la comparsa di un’icona nella barra di notifica, l’accensione del LED del dispositivo,l’attivazione della retroilluminazione del display, la riproduzione di suoni o vibrazioni. Application Framework

Corso di programmazione di sistemi mobile 8 8 Strumenti e Ambiente di Sviluppo I principali strumenti che uno sviluppatore ha bisogno per realizzare applicazione Android sono: JDK : kit di sviluppo per la realizzazione di applicazione in linguaggio Java IDE : Ambienti di sviluppo contenente gli strumenti necessari per la programmazione. Le alternative maggiormente usate sono Eclipse e Android Studio Android SDK: kit di sviluppo contenente gli strumenti, le risorse, gli emulatori e le piattaforme per rilasciare applicazioni Android Photoshop o simili: per realizzare le risorse grafiche da utilizzare all’intero dell’applicazione

Corso di programmazione di sistemi mobile 9 9 Struttura di un Progetto build/Contiene il codice generato in automatico da Android Studio AndroidManifest.xmlFile che descrive l’applicazione come i permessi e le activity, i service e molto altro libs/Contiene le librerie (JAR) utilizzate dall’applicazione main/res/Contiene le risorse come icone, layouts, stringhe, temi main/src/Contiene il codice sorgente dell’applicazione main/assets/Contiene file statici che saranno caricati in fase di deploy dell’app build.gradlekit di automazione di sviluppo e contiene informazioni di sviluppo specifiche al modulo

Corso di programmazione di sistemi mobile 10 Corso di programmazione di sistemi mobile 10 res/drawable-xxx/cartelle suddivise per dp, contengono le risorse grafiche (png) res/layout/contiene i file xml che in vengono utilizzati dall’utente (UI) res/menu/contiene file xml per la definizione dei menu res/mipmap-xxx/contiene l’icona di avvio dell’applicazione res/raw/contiene file generici come ad esempio file CSV, audio clip res/values/ per stringhe, dimensioni, colori... res/xml/ file xml generici

Corso di programmazione di sistemi mobile 11 Corso di programmazione di sistemi mobile 11 < uses-feature android :name= " android.hardware.camera " android :required= " false " /> Android Manifest

Corso di programmazione di sistemi mobile 12 Corso di programmazione di sistemi mobile 12 Layout

Corso di programmazione di sistemi mobile 13 Corso di programmazione di sistemi mobile 13 HelloAndroid Inserisci l\’username Inserisci la password Accedi Registrati Login con Facebook Valore 1 Valore 2 Valore Possono esistere più versioni della stessa stringa (name uguali) contenute in cartelle diverse suddivise percaratteristiche diverse (lingua, tipo di device, dimensione …). Inoltre si possono creare array di stringhe e diinteri. String

Corso di programmazione di sistemi mobile 14 Corso di programmazione di sistemi mobile 14 Si tratta di risorse che permettono di rappresentare dei colori secondo le seguenti sintassi: #RGB, #ARGB,#RRGGBB e #AARRGGBB, dove con R, G e B indichiamo le tre componenti red, green e blue in cui può esserescomposto un colore mentre con A indichiamo l’eventuale componente alpha di Trasparenza #FF0000 #00FF00 #0000FF #66DDCCDD Colori

Corso di programmazione di sistemi mobile 15 Corso di programmazione di sistemi mobile px 50px 100dp 50dp Dimension px uso dei pixel nel display in le dimensioni sono assolute e misurate in pollici (inch) mm le dimensioni sono assolute e misurate in millimetri pt si utilizzano i punti come 1/72 di un inch dp si tratta di un’unità astratta indipendente dalla densità di pixel sp come la dp, solo che l’adattamento avviene tenendo conto delle preferenze dell’utente relative al font utilizzato

Corso di programmazione di sistemi mobile 16 Corso di programmazione di sistemi mobile 16 Utilizzo delle risorse

Corso di programmazione di sistemi mobile 17 Corso di programmazione di sistemi mobile 17

Corso di programmazione di sistemi mobile 18 Corso di programmazione di sistemi mobile 18 La classe R è una classe generata automaticamente dal sistema, contiene un numerico (Integer) per ogni filee id presente all’interno della cartella res dell’applicazione. Il file R è suddiviso in classi statiche createdinamicamente: R.drawable. R.layout. R.menu. R.mipmap. R.values. R.id. Esiste un file R di sistema e un fileR per ogni applicazione o libreria sviluppata per Androidpublic static final class id { public static final int output = 0x7f ; public static final int pressButton = 0x7f ; }Un attributo definito in un documento XML può far riferimento ad altri valori definiti nello stesso o in altridocumenti tramite la sintassi è la type/name Classe R

Corso di programmazione di sistemi mobile 19 Corso di programmazione di sistemi mobile 19 Utilizzo delle risorse nei file xml

Corso di programmazione di sistemi mobile 20 Corso di programmazione di sistemi mobile 20 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView outputView = (TextView) findViewById(R.id.output); outputView.setText(R.string.hello_world);}Il metodo findViewById è un metodo definito all’interno della classe Activity e ci consente di recuperare unaqualsiasi View definita all’interno di un file xml (R.layout.main) ottenendone un suo riferimento. Utilizzo delle risorse nel codice