47
Riccardo Mancinelli JUG MARCHE

Introduzione ad Android jug marche meeting 2011_04_30

Embed Size (px)

DESCRIPTION

Meeting introduttivo allo sviluppo di Android

Citation preview

Page 1: Introduzione ad Android jug marche meeting 2011_04_30

Riccardo MancinelliJUG MARCHE

Page 2: Introduzione ad Android jug marche meeting 2011_04_30

Agenda Cos’è Android Perché studiare Android Predisposizione Ambiente Activity e Intent Risorse View e Layout Gestione file, ContentProvider, Sqlite Multithreading, Servizi e BroadcastReceiver Pubblicare un’applicazione AppInventor

Page 3: Introduzione ad Android jug marche meeting 2011_04_30

Android (1) OS + Strumenti e librerie per realizzare applicazioni

mobili

Kernel Linux versione 2.6Possibilità di usare e modificare API e

Librerie con cui è realizzatoOpen Source Apache License 2.0

Piattaforma Aperta e senza Royalties

Page 4: Introduzione ad Android jug marche meeting 2011_04_30

Android (2) Story

2005 : Acquisto Android Inc. 2007 : Costituzione della Open Handset Alliance

1° versione SDK 2008 : G1 T-Mobile

Rilascio sorgente con licenza Apache 2 Annuncio release candidate sdk 1.0 Possibilità di acquisto Dev Phone 1

2009 : Rilascio sdk 1.5 Cupcake >> tastiera virtuale Rilascio sdk 1.6 >>Quick search box

Rilascio sdk 2.0 ………….

2010: Rilascio sdk 2.2 Froyo 2011 : Rilascio sdk 2.3 GingerBread

Rilascio sdk 3.0

Page 5: Introduzione ad Android jug marche meeting 2011_04_30

Android (3)“ Le migliori applicazioni per Android non sono ancora pronte, questo perché sarete voi, insieme ad altri sviluppatori come voi, a crearle.”

Sergey Brin, Google Inc.

Page 6: Introduzione ad Android jug marche meeting 2011_04_30

Android (4)

Page 7: Introduzione ad Android jug marche meeting 2011_04_30

Nomenclatura delle versioni di Android Google adotta un particolare sistema di nomenclatura: il nome di ogni versione inizia con una

lettera successiva in ordine alfabetico, a quella con cui iniziava la versione precedente!

Android 1.5 Cupcake: una piccola torta adatta ad esser consumata da una sola persona, spesso cotta direttamente in un sottile strato di carta, o di alluminio

Android 1.6 Donut: è un tipo di pasta fritta che può esser dolce o salata, solitamente ha la tipica forma di una ciambella, ed è l’alimento principale nella dieta dei poliziotti nel cartone “I Simpson”

Android 2.0/2.1 Eclair: è una pasta lunga e sottile riempita di crema e ricoperta di glassa, l’impasto è lo stesso utilizzato per i profiterole

Android 2.2 FroYo: diminutivo di Frozen yogurt un dessert a base di gelato e yogurt, ha un sapore leggermente più aspro del gelato e solitamente è più magro di esso.

Android 2.x Gingerbread: anticipato da Brian Swetland, è un termine usato per descrivere una varietà di dolci alimentari, che possono variare da un dolce morbido a qualcosa di simile ad un biscotto allo zenzero

Page 8: Introduzione ad Android jug marche meeting 2011_04_30

Studiare Android (1) IOT: oltre SMARTPHONEAmpia gamma dispositivi > Maggior

Numero di copie distribuite/venduteSiamo un JUG : non occorre studiare

l’ennesimo linguaggio

Page 9: Introduzione ad Android jug marche meeting 2011_04_30

Studiare Android (2)

Page 10: Introduzione ad Android jug marche meeting 2011_04_30

Studiare Android (3)

Page 11: Introduzione ad Android jug marche meeting 2011_04_30

Ambiente sviluppo (1) Eclipse e Ant Installare SDK

Download sdk : android-sdk_<release>-<piattaforma>.<ext.zip> Configuriamo ANDROID_HOME Check installazione

Vediamo AVD Manager…..

Page 12: Introduzione ad Android jug marche meeting 2011_04_30

Ambiente sviluppo (2) Primo Progetto e relativi comandi :

android create project… android list targets ant debug android create avd… adb install …

Page 13: Introduzione ad Android jug marche meeting 2011_04_30

Ambiente sviluppo (3) Vediamo Utilizzo ADT…..

Page 14: Introduzione ad Android jug marche meeting 2011_04_30

API Level

Page 15: Introduzione ad Android jug marche meeting 2011_04_30

Android Application An application consists of one or more components

that are defined in the application's manifest file. A component can be one of the following:

1. An Activity 2. A Service 3. A broadcast receiver 4. A content provider

Page 16: Introduzione ad Android jug marche meeting 2011_04_30

Activity Stack Activities in the system are managed as an activity

stack When a new activity is started, it is placed on the top

of the stack and becomes the running activity --the previous activity always remains below it in the stack, and will not come to the foreground again until the new activity exits.

If the user presses the Back Button the next activity on the stack moves up and becomes active.

Page 17: Introduzione ad Android jug marche meeting 2011_04_30

Life Cycle States

Page 18: Introduzione ad Android jug marche meeting 2011_04_30

Diagramma Stati Activity

Page 19: Introduzione ad Android jug marche meeting 2011_04_30

Activity e Intent (1) http://developer.android.com/guide/topics/fundamentals/activities.html http://developer.android.com/guide/topics/intents/intents-filters.html

An Activities Android application could include any number of activities. An activity uses the setContentView(...) method to expose (usually) a single UI

from which a number of actions could be performed. Activities are independent of each other; however they usually cooperate

exchanging data and actions. Typically, one of the activities is designated as the first one (main) that should

be presented to the user when the application is launched. Moving from one activity to another is accomplished by asking the current

activity to execute an intent. Activities interact with each other in an asynchronous mode.

Page 20: Introduzione ad Android jug marche meeting 2011_04_30

Activity e Intent (2)

Page 21: Introduzione ad Android jug marche meeting 2011_04_30

Activity e Intent (3)

Page 22: Introduzione ad Android jug marche meeting 2011_04_30

Activity e Intent (4)

Page 23: Introduzione ad Android jug marche meeting 2011_04_30

Activity e Intent (5)

Page 24: Introduzione ad Android jug marche meeting 2011_04_30

Activity e Intent (6)

Page 25: Introduzione ad Android jug marche meeting 2011_04_30

Activity e Intent (7)

Page 26: Introduzione ad Android jug marche meeting 2011_04_30

Intent Filters

Page 27: Introduzione ad Android jug marche meeting 2011_04_30

Intent Filters (2)

Page 28: Introduzione ad Android jug marche meeting 2011_04_30

Risorse view e layout (1)

Page 29: Introduzione ad Android jug marche meeting 2011_04_30

Risorse view e layout (2) C:\android\android-sdk-windows\platforms\android-10\data\res

Demo …..

Page 30: Introduzione ad Android jug marche meeting 2011_04_30

Android Application

Page 31: Introduzione ad Android jug marche meeting 2011_04_30

Gestione file

Page 32: Introduzione ad Android jug marche meeting 2011_04_30

Android Files

Page 33: Introduzione ad Android jug marche meeting 2011_04_30

Android Files

Page 34: Introduzione ad Android jug marche meeting 2011_04_30

Android Files

Page 35: Introduzione ad Android jug marche meeting 2011_04_30

Android Files

Page 36: Introduzione ad Android jug marche meeting 2011_04_30

ContentProviderhttp://developer.android.com/guide/topics/providers/content-providers.html

Consideriamoli come “repository” di informazioni accessibili da applicazioni diverse

A ciascun CP sono associati uno o più URI del tipo:content://<autority>/path

Un’authority può corrispondere al più un solo CP ContentResolver ci permette di accedere ad un CP conoscendo solo l’URI

Page 37: Introduzione ad Android jug marche meeting 2011_04_30

SQLite Demo ….

Page 38: Introduzione ad Android jug marche meeting 2011_04_30

Multithreading Demo …

Page 39: Introduzione ad Android jug marche meeting 2011_04_30

Multithreading e Servizi Concetto di Main thread/worker thread Handler MessageQueue Message Notification Service Servizi locali(stessa app) e remoti: tipo di interazione

da parte di un client>>determina in quali operazioni va fatto l’overriding

>LocalServiceTest Tecniche di IPC (Inter Process Communication)

Page 40: Introduzione ad Android jug marche meeting 2011_04_30

BroadcastReceiver Demo …

Page 41: Introduzione ad Android jug marche meeting 2011_04_30

Pubblicare un’applicazionehttps://market.android.com/ Obbligo di Firma: il market o il dispositivo deve

riuscire ad associare una qualche identità Autocertificazione: nel caso di test>>certificato di

debug Scadenza valutata in fase di installazione zipalign per ottimizzare lo spazio in RAM:

allineamento in memoria dei dati non compressi, mappa i dati in zone di memoria così che il Sistema sia in grado di trovarle senza cercare

Page 42: Introduzione ad Android jug marche meeting 2011_04_30

Pubblicare un’applicazione Ogni dispositivo impedisce che un’applicazione possa

essere aggiornata da un’altra firmata con un certificato diverso >>

Nel dispositivo non ci possono essere più applicazioni con stesso package e certificati diversi

Stesso certificato >> stesso processo >> condivisione componenti in modo più stretto

Page 43: Introduzione ad Android jug marche meeting 2011_04_30

Firma Keytool JAVA_HOME\bin Certificato di debug : keystore Preferences>Android>Build keytool –list –v –keystore debug.keystore Processo di deploy

Generazione certificato con keytoolc:\android\test_signature\mystore>keytool -genkey -v -keyalg RSA -validity 15000 -keystore c:\android\test_signature\mystore\android.keystore -alias apoandroid-storepass test12

Firma applicazione con jarsigner Certificato di release: ADT Export Signed Application Package dal

Menu Android Tools Coppia chiavi firma Compilazione in release mode Firma con le chiavi zipalign

Page 44: Introduzione ad Android jug marche meeting 2011_04_30

Processo Deploy Export unsigned Application Package dal menu

android tools jarsigner –keystore ./android.keystore –storepass

****** -keypass ****** <nomepak>.apk apoandroid zipalign –v 4 <nomeapk>.apk <nomeapk>-aligned.apk adb install [-r] <nomeapk>.apk (stesso package e

stesso certificato per aggiornamento)

Page 45: Introduzione ad Android jug marche meeting 2011_04_30

AppInventorhttp://appinventor.googlelabs.com/about/

AppInventor_Setup_Installer_v_1_1.exe (~92 MB)

Page 46: Introduzione ad Android jug marche meeting 2011_04_30

Game over

Q &A

Page 47: Introduzione ad Android jug marche meeting 2011_04_30

GRAZIE www.refacturing.it @ricmancio [email protected]

Il materiale presente in queste slides è in parte recuperato da risorse liberamente scaricabili dalla rete, ma se qualcuno dovesse ritenere di avere eventuali diritti di proprietà sullo stesso, è pregato di comunicarmelo che provvederò a rimuoverlo