Your SlideShare is downloading. ×
0
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Introduzione ad Android jug marche meeting 2011_04_30
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Introduzione ad Android jug marche meeting 2011_04_30

1,130

Published on

Meeting introduttivo allo sviluppo di Android …

Meeting introduttivo allo sviluppo di Android

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,130
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Riccardo Mancinelli JUG MARCHE
  • 2. Agenda <ul><li>Cos’è Android </li></ul><ul><li>Perché studiare Android </li></ul><ul><li>Predisposizione Ambiente </li></ul><ul><li>Activity e Intent </li></ul><ul><li>Risorse View e Layout </li></ul><ul><li>Gestione file, ContentProvider , Sqlite </li></ul><ul><li>Multithreading, Servizi e BroadcastReceiver </li></ul><ul><li>Pubblicare un’applicazione </li></ul><ul><li>AppInventor </li></ul>
  • 3. Android (1) <ul><li>OS + Strumenti e librerie per realizzare applicazioni mobili </li></ul><ul><ul><li>Kernel Linux versione 2.6 </li></ul></ul><ul><ul><li>Possibilità di usare e modificare API e Librerie con cui è realizzato </li></ul></ul><ul><ul><li>Open Source Apache License 2.0 </li></ul></ul><ul><li>Piattaforma Aperta e senza Royalties </li></ul>
  • 4. Android (2) <ul><li>Story </li></ul><ul><ul><li>2005 : Acquisto Android Inc. </li></ul></ul><ul><ul><li>2007 : Costituzione della Open Handset Alliance </li></ul></ul><ul><li> 1° versione SDK </li></ul><ul><ul><li>2008 : G1 T-Mobile </li></ul></ul><ul><li> Rilascio sorgente con licenza Apache 2 </li></ul><ul><li>Annuncio release candidate sdk 1.0 </li></ul><ul><li>Possibilità di acquisto Dev Phone 1 </li></ul><ul><ul><li>2009 : Rilascio sdk 1.5 Cupcake >> tastiera virtuale </li></ul></ul><ul><li>Rilascio sdk 1.6 >>Quick search box </li></ul><ul><li> Rilascio sdk 2.0 </li></ul><ul><li> ………… . </li></ul><ul><ul><li>2010: Rilascio sdk 2.2 Froyo </li></ul></ul><ul><ul><li>2011 : Rilascio sdk 2.3 GingerBread </li></ul></ul><ul><li>Rilascio sdk 3.0 </li></ul>
  • 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.
  • 6. Android (4)
  • 7. Nomenclatura delle versioni di Android <ul><li>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! </li></ul><ul><li>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 </li></ul><ul><li>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” </li></ul><ul><li>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 </li></ul><ul><li>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. </li></ul><ul><li>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 </li></ul>
  • 8. Studiare Android (1) <ul><li>IOT: oltre SMARTPHONE </li></ul><ul><li>Ampia gamma dispositivi > Maggior Numero di copie distribuite/vendute </li></ul><ul><li>Siamo un JUG : non occorre studiare l’ennesimo linguaggio </li></ul>
  • 9. Studiare Android (2)
  • 10. Studiare Android (3)
  • 11. Ambiente sviluppo (1) <ul><li>Eclipse e Ant </li></ul><ul><li>Installare SDK </li></ul><ul><ul><li>Download sdk : android-sdk_<release>-<piattaforma>.<ext.zip> </li></ul></ul><ul><ul><li>Configuriamo ANDROID_HOME </li></ul></ul><ul><ul><li>Check installazione </li></ul></ul><ul><li>Vediamo AVD Manager….. </li></ul>
  • 12. Ambiente sviluppo (2) <ul><li>Primo Progetto e relativi comandi : </li></ul><ul><ul><li>android create project… </li></ul></ul><ul><ul><li>android list targets </li></ul></ul><ul><ul><li>ant debug </li></ul></ul><ul><ul><li>android create avd… </li></ul></ul><ul><ul><li>adb install … </li></ul></ul>
  • 13. Ambiente sviluppo (3) <ul><li>Vediamo Utilizzo ADT….. </li></ul>
  • 14. API Level
  • 15. Android Application <ul><li>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: </li></ul><ul><li>1. An Activity </li></ul><ul><li>2. A Service </li></ul><ul><li>3. A broadcast receiver </li></ul><ul><li>4. A content provider </li></ul>
  • 16. Activity Stack <ul><li>Activities in the system are managed as an activity stack </li></ul><ul><li>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. </li></ul><ul><li>If the user presses the Back Button the next activity on the stack moves up and becomes active. </li></ul>
  • 17. Life Cycle States
  • 18. Diagramma Stati Activity
  • 19. Activity e Intent (1) <ul><li>http://developer.android.com/guide/topics/fundamentals/activities.html </li></ul><ul><li>http://developer.android.com/guide/topics/intents/intents-filters.html </li></ul><ul><li>An Activities Android application could include any number of activities. </li></ul><ul><li>An activity uses the setContentView(...) method to expose (usually) a single UI from which a number of actions could be performed. </li></ul><ul><li>Activities are independent of each other; however they usually cooperate exchanging data and actions. </li></ul><ul><li>Typically, one of the activities is designated as the first one ( main) that should be presented to the user when the application is launched. </li></ul><ul><li>Moving from one activity to another is accomplished by asking the current activity to execute an intent. </li></ul><ul><li>Activities interact with each other in an asynchronous mode. </li></ul>
  • 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)
  • 26. Intent Filters
  • 27. Intent Filters (2)
  • 28. Risorse view e layout (1)
  • 29. Risorse view e layout (2) <ul><li>C:androidandroid-sdk-windowsplatformsandroid-10datares </li></ul><ul><li>Demo ….. </li></ul>
  • 30. Android Application
  • 31. Gestione file
  • 32. Android Files
  • 33. Android Files
  • 34. Android Files
  • 35. Android Files
  • 36. ContentProvider <ul><li>http://developer.android.com/guide/topics/providers/content-providers.html </li></ul><ul><li>Consideriamoli come “repository” di informazioni accessibili da applicazioni diverse </li></ul><ul><li>A ciascun CP sono associati uno o più URI del tipo: </li></ul><ul><li>content://<autority>/path </li></ul><ul><li>Un’authority può corrispondere al più un solo CP </li></ul><ul><li>ContentResolver ci permette di accedere ad un CP conoscendo solo l’URI </li></ul>
  • 37. SQLite <ul><li>Demo …. </li></ul>
  • 38. Multithreading <ul><li>Demo … </li></ul>
  • 39. Multithreading e Servizi <ul><li>Concetto di Main thread/worker thread </li></ul><ul><li>Handler MessageQueue Message </li></ul><ul><li>Notification Service </li></ul><ul><li>Servizi locali(stessa app) e remoti: tipo di interazione da parte di un client>>determina in quali operazioni va fatto l’overriding </li></ul><ul><li>>LocalServiceTest </li></ul><ul><li>Tecniche di IPC (Inter Process Communication) </li></ul>
  • 40. BroadcastReceiver <ul><li>Demo … </li></ul>
  • 41. Pubblicare un’applicazione <ul><li>https://market.android.com/ </li></ul><ul><li>Obbligo di Firma: il market o il dispositivo deve riuscire ad associare una qualche identità </li></ul><ul><li>Autocertificazione: nel caso di test>>certificato di debug </li></ul><ul><li>Scadenza valutata in fase di installazione </li></ul><ul><li>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 </li></ul>
  • 42. Pubblicare un’applicazione <ul><li>Ogni dispositivo impedisce che un’applicazione possa essere aggiornata da un’altra firmata con un certificato diverso >> </li></ul><ul><li>Nel dispositivo non ci possono essere più applicazioni con stesso package e certificati diversi </li></ul><ul><li>Stesso certificato >> stesso processo >> condivisione componenti in modo più stretto </li></ul>
  • 43. Firma <ul><li>Keytool JAVA_HOMEbin </li></ul><ul><li>Certificato di debug : keystore Preferences>Android>Build </li></ul><ul><li>keytool –list –v –keystore debug.keystore </li></ul><ul><li>Processo di deploy </li></ul><ul><ul><li>Generazione certificato con keytool </li></ul></ul><ul><li>c:androidtest_signaturemystore>keytool -genkey -v -keyalg RSA -validity 15000 </li></ul><ul><li>-keystore c:androidtest_signaturemystoreandroid.keystore -alias apoandroid </li></ul><ul><li>-storepass test12 </li></ul><ul><ul><li>Firma applicazione con jarsigner </li></ul></ul><ul><li>Certificato di release: ADT Export Signed Application Package dal Menu Android Tools </li></ul><ul><ul><li>Coppia chiavi firma </li></ul></ul><ul><ul><li>Compilazione in release mode </li></ul></ul><ul><ul><li>Firma con le chiavi </li></ul></ul><ul><ul><li>zipalign </li></ul></ul>
  • 44. Processo Deploy <ul><li>Export unsigned Application Package dal menu android tools </li></ul><ul><li>jarsigner –keystore ./android.keystore –storepass ****** -keypass ****** <nomepak>.apk apoandroid </li></ul><ul><li>zipalign –v 4 <nomeapk>.apk <nomeapk>-aligned.apk </li></ul><ul><li>adb install [-r] <nomeapk>.apk (stesso package e stesso certificato per aggiornamento) </li></ul>
  • 45. AppInventor http://appinventor.googlelabs.com/about/ AppInventor_Setup_Installer_v_1_1.exe (~92 MB)
  • 46. Game over Q &A
  • 47. GRAZIE <ul><li>www.refacturing.it </li></ul><ul><li>@ricmancio </li></ul><ul><li>[email_address] </li></ul><ul><li>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 </li></ul>

×