Scaletta. Strumenti di sviluppo Prima applicazione Aspetti peculiari di Android. Conclusioni. Activity e Intent. MoBe s.r.l.



Documenti analoghi
Sistemi Mobili e Wireless Android Primi passi

Tecniche di progettazione e sviluppo di applicazioni mobile

Programmazione Android. Luca Morettoni

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.

Android. Anatomia di una applicazione

ANDROID 4.2 JELLY BEAN Installazione e configurazione dell ambiente

Sistemi Mobili e Wireless Android Activity

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

Programmazione in ambiente

L ambiente di sviluppo Android Studio

14/10/2015 ALESSANDRAZULLO SVILUPPO DI APPLICAZIONI ANDROID- VERSIONE 1. Alessandra Zullo

La geolocalizzazione

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

MagiCum S.r.l. Progetto Inno-School

Tale attività non è descritta in questa dispensa

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

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Programmazione Android

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

Android. Installare l'sdk

Sistemi Mobili e Wireless Android - Servizi

Android. Android03: Ciclo di vita di una Activity.

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Android. Implementare una interfaccia utente

Corso Eclipse. Prerequisiti. 1 Introduzione

Android. Ciclo di vita di Activity, Service e Processi

Installazione e Configurazione della strumentazione necessaria. Antonio Gallo info@laboratoriolibero.com

Mobile Programming. Prova scritta del 28/01/2015. Prof. De Prisco. Corso di laurea in Informatica

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

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

Introduzione all uso di Eclipse

Android. Ambrosi Michele Rigo Francesco Marcantoni Francesco. 4 giugno 2009

CdL in Medicina Veterinaria - STPA AA

Android. Deploy di una App.

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

Strumenti per la programmazione

Android. Intent e intent-filter. diegozabot@yahoo.it

Corso App modulo Android. Antonio Gallo

Scrivere un programma in Java

Eclipse e Subversion

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

INTRODUZIONE ALLE PIATTAFORME

Installazione del Software. per lo Sviluppo di Applicazioni Java

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

GESCO MOBILE per ANDROID

Le command line di Java

Sistemi Mobili e Wireless Android Localizzazione utente

Guida all uso delle Web View su ios

e/fiscali - Rel e/fiscali Installazione

Capitolo 4 Pianificazione e Sviluppo di Web Part

Eclipse - Nozioni Base

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Java e la piattaforma Android. Corso di Laurea in Ingegneria Informatica. Anno accademico 2012/2013

Introduzione ad Eclipse

Ingegneria del Software 1: Eclipse

MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY

Software - Software applicativo

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Come usare P-touch Transfer Manager

2015 PERIODO D IMPOSTA

StartUp programmazione C++ con EVC4 1. SVILUPPO APPLICAZIONI VISUAL C++...2

Lezione 1 Primi passi con Android

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

SIMPLY JOB. Progetto per il corso di Programmazione III e Laboratorio A.A Realizzato da: Massimo Buonocore

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

InitZero s.r.l. Via P. Calamandrei, Arezzo

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

Corso Corso di di programmazione di di sistemi mobile 1 1. Android Laboratorio. Primo Progetto, Toast

Acronis License Server. Manuale utente

Acronis Universal Restore

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

ANDROID. Domenico Talia. Università della Calabria.

Installazione LINUX 10.0

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

Ambienti di Sviluppo

Mida Directory. Introduzione. Mida Directory

Istruzioni per l utilizzo di file KML (Google Earth) con Software dei navigatori satellitari TELE System

Lezione 3 Le attività

Java e la piattaforma Android. Corso di Laurea in Ingegneria Informatica. Anno accademico 2014/2015

ANDROID ANDROID & JAVA. DALVIK o ART? STRUMENTI SVILUPPARE CON ECLIPSE. Java e la piattaforma Android. Corso di Laurea in Ingegneria Informatica

Microsoft Office XP. dott. ing. Angelo Carpenzano. La suite Microsoft Office XP

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

2010 Ing. Punzenberger COPA-DATA Srl. Tutti i diritti riservati.

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per utenti singoli)

Ciclo di vita delle aevità Android Mobile Programming Prof. R. De Prisco

Guida alla registrazione on-line di un DataLogger

Introduzione a Dev-C++

Installazione e caratteristiche generali 1

Eclipse. Avviare un progetto e compilare un semplice programma

Corso di Informatica

Antonio Guerrieri UTILIZZO DEL COMPUTER E GESTIONE DEI FILE IN MS WINDOWS

Visual basic base Lezione 01. L'ambiente di sviluppo

Laboratorio di Elaborazione e Trasmissione Video

Corso Programmazione Java ed Android

Lezione 1 Primi passi con Android

Sommario. 1. Cos è SecureDrive Caratteristiche Privacy dei dati: SecureVault... 4

1 2 Fase di autenticazione utente

Transcript:

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 > 1.5) Eclipse Android SDK A differenza di iphone SDK Starter package Android Development Tools (ADT ), plug in Eclipse Android NDK Ambiente integrato per lo sviluppo di applicazioni Gestione automatica della burocrazia Esecuzione e debugging: emulatore o

Eclipse Editor più popolare e completo Miriade di funzionalità Refactoring Debugging Autocompletamento Help integrato...

Android SDK: emulatore Emulatore Configurabile attraverso AVD Android Virtual Device (AVD) Dispositivo virtuali Android che permettono di modellare le caratteristiche di funzionamento dell'emulatore Altamente configurabili Emulazione di quasi tutte le caratteristiche HW e SW RAM, schermo dimensione e risoluzione, ecc. Limitazioni Bluetooth, USB, cattura

Android SDK: ADB Android Debug Bridge (ADB) Strumento che permette di installare i pacchetti apk sull'emulatore o dispositivo vero e accedervi tramite linea di comando Funzionalità Gestisce lo stato di emulatori e dispositivi reali Installazione/rimozione di applicazioni Copia file da/su dispositivi Logcat Shell remota

Android SDK: DDMS Dalvik Debug Monitor Service (DDMS) Strumento per gestire processi sull'emulatore o un dispositivo vero Funzionalità Debug Informazioni su stato memoria e processi Kill dei processi Cattura screenshot Esplorazione File System Controlli avanzati dell'emulatore

Android SDK: hierarchy viewer Visualizzazione della gerarchia della UI Pixel Perfect View

Android SDK: traceview Timeline Panel Quando thread e metodi sono stati lanciati e fermati Profile Panel Riassunto dell'esecuzione di un metodo

Android SDK: altro Android Asset Packaging Tool (AAPT) Permette di creare pacchetti.apk per distribuire le applicazioni UI/Application Exerciser Monkey Gira sull'emulatore o dispositivo reale e genera flussi pseudo casuali (configurabili) di eventi tipo click, tocchi ed eventi a livello di sistema tipo batteria scarica Serve a testare le applicazioni in condizioni di stress

Eclipse ADT plugin Rende Eclipse un ambiente di sviluppo integrato per applicazioni Android Gestire diversi tool dell'sdk direttamente da Eclipse Ad es. compilare ed eseguire direttamente l'applicazione nell'emulatore, prendere screenshot, gestire i breakpoint per il debugging tramite l'interfacciamento con il tool DDMS Dettagli Wizard per creare nuovi progetti Editor di interfaccia Automatizzazione del processo di building Gestione file XML (manifest file, resources, ecc.) Gestione della costruzione dei pacchetti APK e delle firme rendendo le applicazioni pronte

Google App Inventor Applicazione Web per la creazione di applicazioni Obiettivi soprattutto educativi Drag and drop di elementi grafici e logici

Tool di terze parti Sensor simulator http://code.google.com/p/openintents/wiki/sensorsimulator Simula sull'emulatore dati relativi ai sensori

Nuovo progetto (1/2)

Nuovo progetto (2/2)

Ambiente (1/2) Alla fine del wizard si ha un progetto compilabile ed eseguibile Vengono creati: Tutte le cartelle necessarie (di base) Il file manifest.xml di base string.xml: file per la gestione di localizzazione/internazionalizzazione delle stringhe dell'applicazione File vari di progetto e risorse di esempio Eclipse fornisce già un IDE potente per lo sviluppo di codice Java (navigazione delle classi, autocompletamento,...) Con l'adt Plugin vengono aggiunte e integrate le funzionalità dell'android SDK

Ambiente (2/2)

Codice iniziale (1/2) package com.google.helloandroid; import android.app.activity; import android.os.bundle; public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void oncreate(bundle icicle) { super.oncreate(icicle); setcontentview(r.layout.main); } }

Codice iniziale (2/2) Activity Singola attività che l'utente può svolgere (pezzo di applicazione) Generalmente coincide con una singola schermata OnCreate Bundle Chiamato alla prima creazione dell'activity Riporta lo stato di eventuali precedenti Activity SetContenteView Mostra GUI Impostata nel file main.xml

Esecuzione (1/2) Grazie all'adt Plugin è possibile direttamente da Eclipse Gestire le configurazioni di API, versioni SDK,... Richiamare direttamente l'avd Manager per creare e gestire le AVD (configurazioni per l'android Emulator) Passi per l'esecuzione di un'applicazione Compilazione Creazione del pacchetto.apk Avvio dell'android Emulator Installazione dell'applicazione Esecuzione

Esecuzione (2/2) Run run

Elementi Src: directory sorgenti Contiene packages e file.java Android.jar: tutto ciò che riguarda android Res: directory risorse esterne Immagini File di layout Testo localizzato AndroidManifest.xml

AndroidManifest.xml File xml, necessario per ogni applicazione Riporta informazioni globali sull'applicazione: componenti, Activity, dati gestibili, parametri sicurezza,...

main.xml File xml di layout Sistema alternativo per la generazione della GUI Non programmatico, ma esterno al codice (come XUL, XAML, ecc.) <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text=@string/app_name /> </LinearLayout>

strings.xml Stringhe di testo app_name richiamato nel manifest e nel main.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">hello, android</string> </resources>

R.java Indice di tutte le risorse Creato e gestito automaticamente da Eclipse Verboten toccare public final class R { public static final class attr { } public static final class drawable { public static final int icon=0x7f020000; } public static final class layout { public static final int main=0x7f030000; } public static final class string { public static final int app_name=0x7f040000; } }

Activity (1/2) Applicazione Android Non è un'entità unica, ma una composizione modulare generata da componenti indipendenti detti Activity Activity Assimilabile ad una schermata Destinata ad eseguire un unico compito Ha un'interfaccia visuale per l'interazione utente Un'applicazione che presenta più schermate verosimilmente avrà più Activity Varie Activity Passaggio di valori tra Activity Da ogni Activity si può accedere e aprire altre

Activity (2/2) Esempio Varie Activity dell'applicazione per telefonare

Ciclo di vita di un'activity (1/4) Le Activity sono gestite con uno stack: quella corrente è in cima 4 stati Active/Running: mostrata sullo schermo e ha focus Paused: visibile, ma senza focus (Activity sotto Alert) Stopped: completamente oscurata da un altra Activity. Mantiene memoria degli stati; può essere eliminata per liberare risorse Destroyed: eliminata dalla memoria. Per rivisualizzarla deve essere nuovamente avviata e ripristinato lo stato

Ciclo di vita di un'activity (2/4)

Ciclo di vita di un'activity (3/4) Ciclo di vita dei componenti dell'applicazione non è controllato dall'applicazione, ma dal sistema Android cerca di allungare la vita di ogni componente il più possibile (caching per aumentare la reattività) Sistema può chiudere autonomamente parti della applicazione (per es. singole Activity) per liberare risorse Se deve essere liberata memoria, avviene una scelta di quali componenti da sopprimere, basata su un ordine di importanza

Ciclo di vita di un'activity (4/4) Ordine di importanza Processo in primo piano Processo non in primo piano Activity visibile, ma non in primo piano (onpause) Servizio Activity mostrata sullo schermo o IntentReceiver in esecuzione Service chiamato con startservice Processo background Activity non visibile (onstop) I M P O R T A N Z A

Intent Messaggi scambiati tra i componenti di un'applicazione (es.: Activity) e tra la piattaforma e le applicazioni Notificare eventi Avviare le Activity Oggetto Intent: struttura dati passiva Descrizione astratta delle operazioni da eseguire Es.: applicazione vuole mostrare pagina web Dichiara l'intent di mostare una pagina web Il sistema ricerca l'activity in grado di eseguire l'operazione Dichiarazione esplicita del componente da avviare Notifica di qualche cosa che è avvenuto Chiamata, batteria scarica, URI dei dati da elaborare

Navigazione tra Activity Navigazione tra schermate (Activity) equivale a risolvere Intent Activity chiama startactivity(myintent) Il sistema risolve l'intent e sceglie l'activity opportuna La nuova schermata (Activity) è informata dell'intent con cui è avviata Risoluzione Intent Esplicita: stabilisce univocamente il componente che eseguirà l'intent. Di solito sono usati per messaggi interni all'applicazione visto che i nomi dei componenti di altre applicazioni non sono noti a priori Implicita: non viene specificato il componente e quindi, in generale, si accetta che l'azione venga svolta dal componente designato dal sistema

Risoluzione Intent: esplicita Viene definita l'esatta Activity da mandare in esecuzione //Creo Intent Intent intent = new Intent(ActivityInizio.this, ActivityFine.class); //Avvio startactivity(intent);

Risoluzione Intent: implicita Si specifica cosa debba essere fatto, il sistema cercherà l'activity opportuna in base agli IntentFilters definiti //Creo Intent Intent i = new Intent("android.settings.LOCATION_SOURCE_SETTINGS"); //Avvio startactivity(i); <activity android:name="securitysettings" android:label="@string/name"> <intent-filter> <action android:name="android.intent.action.main"/> <action android:name="android.settings.security_settings"/> <action android:name="android.settings.location_source_settings"/> <category android:name="android.intent.category.default" /> </intent-filter> </activity> action

Risoluzione implicita: esempio

Considerazioni Vantaggi risoluzione implicita Maggiore generalità Separazione tra operazione da eseguire e componente che la esegue Late binding Possibilità di modificare a piacimento ogni componente della piattaforma Android

Riassunto Cosa abbiamo visto Strumenti di sviluppo Prima applicazione Aspetti peculiari di Android: Activity e Intent Abbiamo a malapena intaccato la superficie di Android Molte altre cose interessanti

Riferimenti Siti www.android.com developer.android.com code.google.com/android/index.html Presentazioni Paolo Zuliani Federico Zanco