Your SlideShare is downloading. ×
0
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
My life with Android @ JUG Torino 2012
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

My life with Android @ JUG Torino 2012

648

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 …

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
648
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
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. Sviluppo su Android JUG Torino 2011 Francesco Ronchi francesco.ronchi (at) synesthesia.it www.synesthesia.it29 Febbraio 2012 JUG Torino 1
  • 2. Cosè Android ● Sistema operativo dedicato ai device mobili: ● smartphone, ● tablet, ● Set-top boxes ● TV ● Sistemi embedded...29 Febbraio 2012 JUG Torino 2
  • 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. 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. Architettura di Android29 Febbraio 2012 JUG Torino 5
  • 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. Dalvik ● Java? ● Virtual Machine ottimizzata ● Formato .dex ● Da Android 2.2 include JIT ● java -> class -> jar -> dex -> apk29 Febbraio 2012 JUG Torino 7
  • 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. Versioni e marketshare29 Febbraio 2012 JUG Torino 9
  • 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. 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. Size Matters (?) ● 2012 ● Android 400k+ ● Apple 700k+29 Febbraio 2012 JUG Torino 12
  • 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. Prerequisiti per iniziare ● Programmazione a oggetti ● Java ● XML ● C/C++ per NDK ● Problematiche dello sviluppo mobile...29 Febbraio 2012 JUG Torino 14
  • 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. 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. 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. 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. 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. 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. Al lavoro... ● Creiamo una applicazione (finalmente!) ● Esempi... ●29 Febbraio 2012 JUG Torino 21
  • 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. 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. 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. 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. 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. Ciclo vitale di una Activity29 Febbraio 2012 JUG Torino 27
  • 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. 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. E solo linizio... ● … ma ci fermiamo qui ● Q&A?29 Febbraio 2012 JUG Torino 30
  • 31. ● Grazie a tutti! francesco.ronchi (at) synesthesia.it - @qba75 www.synesthesia.it - @synesthesiait29 Febbraio 2012 JUG Torino 31

×