際際滷

際際滷Share a Scribd company logo
Riccardo Mancinelli JUG 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 unapplicazione AppInventor
Android (1) OS + Strumenti e librerie per realizzare applicazioni mobili Kernel Linux versione 2.6 Possibilit di usare e modificare API  e Librerie con cui 竪 realizzato Open 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 竪 lalimento 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, limpasto 竪 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 SMARTPHONE Ampia gamma dispositivi > Maggior Numero di copie distribuite/vendute Siamo un JUG : non occorre studiare lennesimo 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:ndroidndroid-sdk-windowslatformsndroid-10ataes Demo ..
Android Application
Gestione file
Android Files
Android Files
Android Files
Android Files
ContentProvider http://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 Unauthority pu嘆 corrispondere al pi湛 un solo CP ContentResolver ci permette di accedere ad un CP conoscendo solo lURI
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 loverriding >LocalServiceTest Tecniche di IPC (Inter Process Communication)
BroadcastReceiver Demo
Pubblicare unapplicazione https://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 unapplicazione Ogni dispositivo impedisce che unapplicazione possa essere aggiornata da unaltra 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_HOMEin Certificato di debug : keystore Preferences>Android>Build keytool list v keystore debug.keystore Processo di deploy Generazione certificato con keytool c:ndroidest_signatureystore>keytool -genkey -v -keyalg RSA -validity 15000 -keystore c:ndroidest_signatureystorendroid.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)
AppInventor http://appinventor.googlelabs.com/about/ AppInventor_Setup_Installer_v_1_1.exe (~92 MB)
Game over Q &A
GRAZIE www.refacturing.it @ricmancio [email_address] 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

More Related Content

Introduzione ad Android jug marche meeting 2011_04_30

  • 2. Agenda Cos竪 Android Perch辿 studiare Android Predisposizione Ambiente Activity e Intent Risorse View e Layout Gestione file, ContentProvider , Sqlite Multithreading, Servizi e BroadcastReceiver Pubblicare unapplicazione AppInventor
  • 3. Android (1) OS + Strumenti e librerie per realizzare applicazioni mobili Kernel Linux versione 2.6 Possibilit di usare e modificare API e Librerie con cui 竪 realizzato Open Source Apache License 2.0 Piattaforma Aperta e senza Royalties
  • 4. 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
  • 5. 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.
  • 7. 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 竪 lalimento 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, limpasto 竪 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
  • 8. Studiare Android (1) IOT: oltre SMARTPHONE Ampia gamma dispositivi > Maggior Numero di copie distribuite/vendute Siamo un JUG : non occorre studiare lennesimo linguaggio
  • 11. Ambiente sviluppo (1) Eclipse e Ant Installare SDK Download sdk : android-sdk_<release>-<piattaforma>.<ext.zip> Configuriamo ANDROID_HOME Check installazione Vediamo AVD Manager..
  • 12. Ambiente sviluppo (2) Primo Progetto e relativi comandi : android create project android list targets ant debug android create avd adb install
  • 13. Ambiente sviluppo (3) Vediamo Utilizzo ADT..
  • 15. 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
  • 16. 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.
  • 19. 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.
  • 20. Activity e Intent (2)
  • 21. Activity e Intent (3)
  • 22. Activity e Intent (4)
  • 23. Activity e Intent (5)
  • 24. Activity e Intent (6)
  • 25. Activity e Intent (7)
  • 28. Risorse view e layout (1)
  • 29. Risorse view e layout (2) C:ndroidndroid-sdk-windowslatformsndroid-10ataes Demo ..
  • 36. ContentProvider http://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 Unauthority pu嘆 corrispondere al pi湛 un solo CP ContentResolver ci permette di accedere ad un CP conoscendo solo lURI
  • 39. 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 loverriding >LocalServiceTest Tecniche di IPC (Inter Process Communication)
  • 41. Pubblicare unapplicazione https://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
  • 42. Pubblicare unapplicazione Ogni dispositivo impedisce che unapplicazione possa essere aggiornata da unaltra 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
  • 43. Firma Keytool JAVA_HOMEin Certificato di debug : keystore Preferences>Android>Build keytool list v keystore debug.keystore Processo di deploy Generazione certificato con keytool c:ndroidest_signatureystore>keytool -genkey -v -keyalg RSA -validity 15000 -keystore c:ndroidest_signatureystorendroid.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
  • 44. 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)
  • 47. GRAZIE www.refacturing.it @ricmancio [email_address] 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