0
Sviluppo su Android                    JUG Torino 2011                            Francesco Ronchi                   franc...
Cosè Android  ● Sistema operativo dedicato ai device mobili:  ● smartphone,  ● tablet,  ● Set-top boxes  ● TV  ● Sistemi e...
Perchè sviluppare su Android   ● Creato da Google: Open source (lic. Apache     2.0) e basato su Linux (garanzia di apertu...
Una chicca...  ●   Andy Rubin  ●   the definition of open:      "mkdir android ; cd android ; repo init      -u      git:/...
Architettura di Android29 Febbraio 2012               JUG Torino    5
Architettura in breve...  ● Applicazioni (base e di terze parti)  ● Application Framework  ● Virtual Machine “Java” (Dalvi...
Dalvik  ● Java?  ● Virtual Machine ottimizzata  ● Formato .dex  ● Da Android 2.2 include JIT  ● java -> class -> jar -> de...
Versioni di Android     Storiche: ●   Android 1.5 Cupcake (2009) ●   Android 1.6 Donut (2009) ●   Android 2.0/2.1 Eclair (...
Versioni e marketshare29 Febbraio 2012               JUG Torino   9
Android Market● 25$ per la registrazione (una tantum)● Pubblicazione immediata app● Applicazioni free e a pagamento● 30% d...
Il market per gli sviluppatori●   Gestione App    ●   Artwork, descrizioni, ecc.    ●   Commenti/valutazioni    ●   Errori...
Size Matters (?)                                         ●   2012                                             ●   Android ...
Il market per gli sviluppatori●   Gestione App    ●   Artwork, descrizioni, ecc.    ●   Commenti/valutazioni    ●   Errori...
Prerequisiti per iniziare  ● Programmazione a oggetti  ● Java  ● XML  ●   C/C++ per NDK  ●   Problematiche dello sviluppo ...
Strumenti per lavorare ● Android API ● Development tools ● Emulatore Android ● DDMS (Dalvik Debug Monitor Service) ● Docum...
Passi iniziali 1●   scaricare sdk da    ●   http://developer.android.com/● impostare il path per lsdk● Lanciare il comando...
Passi iniziali 2  ● scaricare Eclipse (classic, java o RCP)  ● installare plugin (ADT) su Eclipse  ● configurare il path d...
Tools  ● Android  ● Adb (android debug bridge)  ● Draw 9 Patches (tutorial! http://goo.gl/lWMFv)  ● Monkey  ● Emulator  ● ...
Firma dei pacchetti .apk  ● Per poter caricare sul device un .apk deve    essere firmato.  ● La firma usa un certificato a...
Librerire utili e 3rd parties ●   Support Packages      ●compatibilità con vecche versioni, sfruttando caratteristiche    ...
Al lavoro...  ●   Creiamo una applicazione (finalmente!)  ●   Esempi...  ●29 Febbraio 2012          JUG Torino           21
Anatomia di una App  ● src – sorgenti  ● gen – file generati  ● assets – file vari (non risorse)  ● res  - risorse  ● Andr...
Le Risorse    ●   drawables (immagini...)    ●   layouts (xml di definizione UI)    ●   values (stringhe, colori, ecc)    ...
Qualifier risorse  ● Lingua (it, en, en_rUS, ...)  ● Dimensione schermo (swXXdp, wXXdp...)  ● Categoria schermo (small, la...
Manifest  ●   Contiene le informazioni base      dellapplicazione e la configurazione dei      suoi componenti       ●   N...
Componenti base   ● Activities → equivalgono alle“finestre”   ● Services → lavorano in background   ● Intents → permettono...
Ciclo vitale                                  di una                                 Activity29 Febbraio 2012   JUG Torino...
Gestione della memoria  ● Le activities in determinati momenti    possono essere killate se è richiesta maggiore    ram.  ...
Intent  ● Richiamano una activity  ● Espliciti o impliciti  ● È possibile aggiungere dei dati/parametri  ● È possibile ric...
E solo linizio...  ●   … ma ci fermiamo qui  ●   Q&A?29 Febbraio 2012             JUG Torino   30
●   Grazie a tutti!                   francesco.ronchi (at) synesthesia.it - @qba75                            www.synesth...
Upcoming SlideShare
Loading in...5
×

My life with Android @ JUG Torino 2012

653

Published on

Slides del talk "My life with Android" tenuto da Francesco Ronchi di Synesthesia srl al JUG Torino (29 febbraio 2012) sullo sviluppo applicazioni Android

http://presentz.org/jugtorino/201202_android
http://www.synesthesia.it/

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
653
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "My life with Android @ JUG Torino 2012"

  1. 1. Sviluppo su Android JUG Torino 2011 Francesco Ronchi francesco.ronchi (at) synesthesia.it www.synesthesia.it29 Febbraio 2012 JUG Torino 1
  2. 2. Cosè Android ● Sistema operativo dedicato ai device mobili: ● smartphone, ● tablet, ● Set-top boxes ● TV ● Sistemi embedded...29 Febbraio 2012 JUG Torino 2
  3. 3. Perchè sviluppare su Android ● Creato da Google: Open source (lic. Apache 2.0) e basato su Linux (garanzia di apertura) ● Sviluppo in Java e XML (ci si sente a casa...) ● SDK Multipiattaforma (Lin/Mac/Win) ● Successo crescente (850k attivaz./g) ● Ecosistema Android29 Febbraio 2012 JUG Torino 3
  4. 4. Una chicca... ● Andy Rubin ● the definition of open: "mkdir android ; cd android ; repo init -u git://android.git.kernel.org/platform/m anifest.git ; repo sync ; make"29 Febbraio 2012 JUG Torino 4
  5. 5. Architettura di Android29 Febbraio 2012 JUG Torino 5
  6. 6. Architettura in breve... ● Applicazioni (base e di terze parti) ● Application Framework ● Virtual Machine “Java” (Dalvik) ● Librerie native (Multimedia, Database, WebKit, ecc...) ● Linux Kernek & Drivers29 Febbraio 2012 JUG Torino 6
  7. 7. Dalvik ● Java? ● Virtual Machine ottimizzata ● Formato .dex ● Da Android 2.2 include JIT ● java -> class -> jar -> dex -> apk29 Febbraio 2012 JUG Torino 7
  8. 8. Versioni di Android Storiche: ● Android 1.5 Cupcake (2009) ● Android 1.6 Donut (2009) ● Android 2.0/2.1 Eclair (2009) ● Android 2.2 Froyo (2010) Recenti: ● Android 2.3.x Gingerbread (2010/11) ● Android 3.x Honeycomb (2011) solo per tablet! ● Android 4.x Ice Cream Sandwich (2011/12)29 Febbraio 2012 JUG Torino 8
  9. 9. Versioni e marketshare29 Febbraio 2012 JUG Torino 9
  10. 10. Android Market● 25$ per la registrazione (una tantum)● Pubblicazione immediata app● Applicazioni free e a pagamento● 30% di commissione a Google● In-app billing29 Febbraio 2012 JUG Torino 10
  11. 11. Il market per gli sviluppatori● Gestione App ● Artwork, descrizioni, ecc. ● Commenti/valutazioni ● Errori ● Statistiche● Google Checkout ● Acquisti app ● Acquisti in-app29 Febbraio 2012 JUG Torino 11
  12. 12. Size Matters (?) ● 2012 ● Android 400k+ ● Apple 700k+29 Febbraio 2012 JUG Torino 12
  13. 13. Il market per gli sviluppatori● Gestione App ● Artwork, descrizioni, ecc. ● Commenti/valutazioni ● Errori ● Statistiche● Google Checkout ● Acquisti app ● Acquisti in-app29 Febbraio 2012 JUG Torino 13
  14. 14. Prerequisiti per iniziare ● Programmazione a oggetti ● Java ● XML ● C/C++ per NDK ● Problematiche dello sviluppo mobile...29 Febbraio 2012 JUG Torino 14
  15. 15. Strumenti per lavorare ● Android API ● Development tools ● Emulatore Android ● DDMS (Dalvik Debug Monitor Service) ● Documentazione, Esempi → http://developer.android.com/29 Febbraio 2012 JUG Torino 15
  16. 16. Passi iniziali 1● scaricare sdk da ● http://developer.android.com/● impostare il path per lsdk● Lanciare il comando ● Android (Mac, Linux) ● SDK Manager.exe (Windows)● scaricare gli sdk e le api necessarie29 Febbraio 2012 JUG Torino 16
  17. 17. Passi iniziali 2 ● scaricare Eclipse (classic, java o RCP) ● installare plugin (ADT) su Eclipse ● configurare il path dellsdk in Eclipse (preferences) ● creare un device virtuale (AVD)29 Febbraio 2012 JUG Torino 17
  18. 18. Tools ● Android ● Adb (android debug bridge) ● Draw 9 Patches (tutorial! http://goo.gl/lWMFv) ● Monkey ● Emulator ● Aapt, zipalign, ecc.. per creare pacchetti apk e firmarli digitalmente29 Febbraio 2012 JUG Torino 18
  19. 19. Firma dei pacchetti .apk ● Per poter caricare sul device un .apk deve essere firmato. ● La firma usa un certificato auto-generato ● Debug: lo genera la IDE ● Deploy: generato manualmente per il caricamento su marketkeytool -genkey -v -keystore NOME_KEYSTORE.keystore -aliasNOME_ALIAS -keyalg RSA -keysize 2048 -validity 10000 ● Mai perdere il keystore!! (e la password...)29 Febbraio 2012 JUG Torino 19
  20. 20. Librerire utili e 3rd parties ● Support Packages ●compatibilità con vecche versioni, sfruttando caratteristiche recenti (es fragment) ● Google Analytics ● ADMob ● Gson ●Gestione avanzata json ● Bugsense ● Gestione bugs remota ● Librerie vendor-specific (Samsung, LG, Motorola...)29 Febbraio 2012 JUG Torino 20
  21. 21. Al lavoro... ● Creiamo una applicazione (finalmente!) ● Esempi... ●29 Febbraio 2012 JUG Torino 21
  22. 22. Anatomia di una App ● src – sorgenti ● gen – file generati ● assets – file vari (non risorse) ● res - risorse ● Android Manifest xml – configurazione app29 Febbraio 2012 JUG Torino 22
  23. 23. Le Risorse ● drawables (immagini...) ● layouts (xml di definizione UI) ● values (stringhe, colori, ecc) ● menu (definizione menu) ● anim (animazioni) ● raw (tutto il resto) - Tutte codificate in R.java mediante id! – Gestibili con qualifier differenti!29 Febbraio 2012 JUG Torino 23
  24. 24. Qualifier risorse ● Lingua (it, en, en_rUS, ...) ● Dimensione schermo (swXXdp, wXXdp...) ● Categoria schermo (small, large, medium...) ● Aspect, Orientation ● DPI ● Versione OS ● Ecc... http://goo.gl/JAuu29 Febbraio 2012 JUG Torino 24
  25. 25. Manifest ● Contiene le informazioni base dellapplicazione e la configurazione dei suoi componenti ● Nome, version number, version name ● package, ● activities, servizi ecc.. ● intents, ● permessi richiesti dalla app29 Febbraio 2012 JUG Torino 25
  26. 26. Componenti base ● Activities → equivalgono alle“finestre” ● Services → lavorano in background ● Intents → permettono di chiamare le activities ● Bundles → salvano lo “stato” di una activity ● Application → raggruppa più activities29 Febbraio 2012 JUG Torino 26
  27. 27. Ciclo vitale di una Activity29 Febbraio 2012 JUG Torino 27
  28. 28. Gestione della memoria ● Le activities in determinati momenti possono essere killate se è richiesta maggiore ram. ● Dopo onPause, onStop, onRestore ● onSaveInstanceState e onRestoreInstanceState permettono di salvare lo stato29 Febbraio 2012 JUG Torino 28
  29. 29. Intent ● Richiamano una activity ● Espliciti o impliciti ● È possibile aggiungere dei dati/parametri ● È possibile ricevere valori di ritorno ● Asincroni ● Interni allapp, tra app, di sistema29 Febbraio 2012 JUG Torino 29
  30. 30. E solo linizio... ● … ma ci fermiamo qui ● Q&A?29 Febbraio 2012 JUG Torino 30
  31. 31. ● Grazie a tutti! francesco.ronchi (at) synesthesia.it - @qba75 www.synesthesia.it - @synesthesiait29 Febbraio 2012 JUG Torino 31
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×