Upload
riccardo-mancinelli
View
1.136
Download
2
Embed Size (px)
DESCRIPTION
Meeting introduttivo allo sviluppo di Android
Citation preview
Riccardo MancinelliJUG MARCHE
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
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
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
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.
Android (4)
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
Studiare Android (1) IOT: oltre SMARTPHONEAmpia gamma dispositivi > Maggior
Numero di copie distribuite/venduteSiamo un JUG : non occorre studiare
l’ennesimo linguaggio
Studiare Android (2)
Studiare Android (3)
Ambiente sviluppo (1) Eclipse e Ant Installare SDK
Download sdk : android-sdk_<release>-<piattaforma>.<ext.zip> Configuriamo ANDROID_HOME Check installazione
Vediamo AVD Manager…..
Ambiente sviluppo (2) Primo Progetto e relativi comandi :
android create project… android list targets ant debug android create avd… adb install …
Ambiente sviluppo (3) Vediamo Utilizzo ADT…..
API Level
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
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.
Life Cycle States
Diagramma Stati Activity
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.
Activity e Intent (2)
Activity e Intent (3)
Activity e Intent (4)
Activity e Intent (5)
Activity e Intent (6)
Activity e Intent (7)
Intent Filters
Intent Filters (2)
Risorse view e layout (1)
Risorse view e layout (2) C:\android\android-sdk-windows\platforms\android-10\data\res
Demo …..
Android Application
Gestione file
Android Files
Android Files
Android Files
Android Files
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
SQLite Demo ….
Multithreading Demo …
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)
BroadcastReceiver Demo …
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
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
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
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)
AppInventorhttp://appinventor.googlelabs.com/about/
AppInventor_Setup_Installer_v_1_1.exe (~92 MB)
Game over
Q &A
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