SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Sviluppo su Android

                    JUG Torino 2011
                            Francesco Ronchi
                   francesco.ronchi (at) synesthesia.it
                           www.synesthesia.it




29 Febbraio 2012                JUG Torino                1
Cos'è Android

  ● Sistema operativo dedicato ai device mobili:
  ● smartphone,


  ● tablet,


  ● Set-top boxes


  ● TV


  ● Sistemi embedded...




29 Febbraio 2012          JUG Torino               2
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 Android




29 Febbraio 2012         JUG Torino             3
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
Architettura di Android




29 Febbraio 2012               JUG Torino    5
Architettura in breve...

  ● Applicazioni (base e di terze parti)
  ● Application Framework


  ● Virtual Machine “Java” (Dalvik)


  ● Librerie native (Multimedia, Database,

    WebKit, ecc...)
  ● Linux Kernek & Drivers




29 Febbraio 2012                JUG Torino    6
Dalvik

  ● Java?
  ● Virtual Machine ottimizzata


  ● Formato .dex


  ● Da Android 2.2 include JIT


  ● java -> class -> jar -> dex -> apk




29 Febbraio 2012       JUG Torino        7
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
Versioni e marketshare




29 Febbraio 2012               JUG Torino   9
Android Market

● 25$ per la registrazione (una tantum)
● Pubblicazione immediata app


● Applicazioni free e a pagamento


● 30% di commissione a Google


● In-app billing




29 Febbraio 2012           JUG Torino     10
Il market per gli sviluppatori

●   Gestione App
    ●   Artwork, descrizioni, ecc.
    ●   Commenti/valutazioni
    ●   Errori
    ●   Statistiche
●   Google Checkout
    ●   Acquisti app
    ●   Acquisti in-app


29 Febbraio 2012                     JUG Torino   11
Size Matters (?)




                                         ●   2012
                                             ●   Android 400k+
                                             ●   Apple 700k+



29 Febbraio 2012            JUG Torino                       12
Il market per gli sviluppatori

●   Gestione App
    ●   Artwork, descrizioni, ecc.
    ●   Commenti/valutazioni
    ●   Errori
    ●   Statistiche
●   Google Checkout
    ●   Acquisti app
    ●   Acquisti in-app


29 Febbraio 2012                     JUG Torino   13
Prerequisiti per iniziare

  ● Programmazione a oggetti
  ● Java


  ● XML




  ●   C/C++ per NDK

  ●   Problematiche dello sviluppo mobile...
29 Febbraio 2012            JUG Torino         14
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
Passi iniziali 1

●   scaricare sdk da
    ●   http://developer.android.com/
● impostare il path per l'sdk
● Lanciare il comando

    ●   Android (Mac, Linux)
    ●   SDK Manager.exe (Windows)
●   scaricare gli sdk e le api necessarie

29 Febbraio 2012                JUG Torino   16
Passi iniziali 2

  ● scaricare Eclipse (classic, java o RCP)
  ● installare plugin (ADT) su Eclipse




  ● configurare il path dell'sdk in Eclipse
    (preferences)
  ● creare un device virtuale (AVD)




29 Febbraio 2012            JUG Torino        17
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 digitalmente

29 Febbraio 2012       JUG Torino                18
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
           market

keytool -genkey -v -keystore NOME_KEYSTORE.keystore -alias
NOME_ALIAS -keyalg RSA -keysize 2048 -validity 10000

  ●   Mai perdere il keystore!! (e la password...)
29 Febbraio 2012                JUG Torino                      19
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
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
  ● Android Manifest xml – configurazione app




29 Febbraio 2012             JUG Torino     22
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
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/JAuu



29 Febbraio 2012            JUG Torino        24
Manifest

  ●   Contiene le informazioni base
      dell'applicazione e la configurazione dei
      suoi componenti
       ●   Nome, version number, version name
       ●   package,
       ●   activities, servizi ecc..
       ●   intents,
       ●   permessi richiesti dalla app



29 Febbraio 2012                JUG Torino        25
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ù activities




29 Febbraio 2012           JUG Torino          26
Ciclo vitale
                                  di una
                                 Activity




29 Febbraio 2012   JUG Torino                  27
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 stato


29 Febbraio 2012               JUG Torino        28
Intent

  ● Richiamano una activity
  ● Espliciti o impliciti


  ● È possibile aggiungere dei dati/parametri


  ● È possibile ricevere valori di ritorno


  ● Asincroni


  ● Interni all'app, tra app, di sistema




29 Febbraio 2012       JUG Torino               29
E' solo l'inizio...

  ●   … ma ci fermiamo qui

  ●   Q&A?




29 Febbraio 2012             JUG Torino   30
●   Grazie a tutti!
                   francesco.ronchi (at) synesthesia.it - @qba75
                            www.synesthesia.it - @synesthesiait




29 Febbraio 2012           JUG Torino                          31

Weitere ähnliche Inhalte

Ähnlich wie My life with Android @ JUG Torino 2012

Sviluppo Android (LinuxDay TO 2010)
Sviluppo Android (LinuxDay TO 2010)Sviluppo Android (LinuxDay TO 2010)
Sviluppo Android (LinuxDay TO 2010)Francesco Ronchi
 
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzaAndroid: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzajekil
 
Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pra...
Lo sbarco di Google nel pianeta Mobile Internet:  primo impatto ed esempi pra...Lo sbarco di Google nel pianeta Mobile Internet:  primo impatto ed esempi pra...
Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pra...Riccardo Solimena
 
Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015Piero Sbressa
 
Stato dell'arte del progetto CMDBuild - CMDBuild Day, 15 aprile 2010
Stato dell'arte del progetto CMDBuild - CMDBuild Day, 15 aprile 2010Stato dell'arte del progetto CMDBuild - CMDBuild Day, 15 aprile 2010
Stato dell'arte del progetto CMDBuild - CMDBuild Day, 15 aprile 2010CMDBuild org
 
Android Introduzione All Architettura Programmazione Sicurezza Serate A Tema ...
Android Introduzione All Architettura Programmazione Sicurezza Serate A Tema ...Android Introduzione All Architettura Programmazione Sicurezza Serate A Tema ...
Android Introduzione All Architettura Programmazione Sicurezza Serate A Tema ...jekil
 
Introduzione al software libero - Giulio Fieramosca
Introduzione al software libero - Giulio FieramoscaIntroduzione al software libero - Giulio Fieramosca
Introduzione al software libero - Giulio FieramoscaLibreItalia
 
Flutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaformaFlutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaformaCommit University
 
Android Code Camp 2012 - ita
Android Code Camp 2012 - itaAndroid Code Camp 2012 - ita
Android Code Camp 2012 - itaneunet
 
Google Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoogle Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoWireless
 
Dev fest android application case study
Dev fest android application   case studyDev fest android application   case study
Dev fest android application case studyfirenze-gtug
 
Plone in Regione Emilia-Romagna - wpd2013
Plone in Regione Emilia-Romagna - wpd2013Plone in Regione Emilia-Romagna - wpd2013
Plone in Regione Emilia-Romagna - wpd2013Giovanni Grazia
 

Ähnlich wie My life with Android @ JUG Torino 2012 (20)

Sviluppo Android (LinuxDay TO 2010)
Sviluppo Android (LinuxDay TO 2010)Sviluppo Android (LinuxDay TO 2010)
Sviluppo Android (LinuxDay TO 2010)
 
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzaAndroid: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
 
Android Workshop
Android WorkshopAndroid Workshop
Android Workshop
 
Android vs iOS
Android vs iOSAndroid vs iOS
Android vs iOS
 
Introduzione ad Android
Introduzione ad AndroidIntroduzione ad Android
Introduzione ad Android
 
Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pra...
Lo sbarco di Google nel pianeta Mobile Internet:  primo impatto ed esempi pra...Lo sbarco di Google nel pianeta Mobile Internet:  primo impatto ed esempi pra...
Lo sbarco di Google nel pianeta Mobile Internet: primo impatto ed esempi pra...
 
Startup weekend bootcamp
Startup weekend bootcampStartup weekend bootcamp
Startup weekend bootcamp
 
MonoTouch, un anno dopo
MonoTouch, un anno dopoMonoTouch, un anno dopo
MonoTouch, un anno dopo
 
Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015
 
Stato dell'arte del progetto CMDBuild - CMDBuild Day, 15 aprile 2010
Stato dell'arte del progetto CMDBuild - CMDBuild Day, 15 aprile 2010Stato dell'arte del progetto CMDBuild - CMDBuild Day, 15 aprile 2010
Stato dell'arte del progetto CMDBuild - CMDBuild Day, 15 aprile 2010
 
Golang Introduzione
Golang IntroduzioneGolang Introduzione
Golang Introduzione
 
Mars: Land of No Mercy
Mars: Land of No MercyMars: Land of No Mercy
Mars: Land of No Mercy
 
Android Introduzione All Architettura Programmazione Sicurezza Serate A Tema ...
Android Introduzione All Architettura Programmazione Sicurezza Serate A Tema ...Android Introduzione All Architettura Programmazione Sicurezza Serate A Tema ...
Android Introduzione All Architettura Programmazione Sicurezza Serate A Tema ...
 
Introduzione al software libero - Giulio Fieramosca
Introduzione al software libero - Giulio FieramoscaIntroduzione al software libero - Giulio Fieramosca
Introduzione al software libero - Giulio Fieramosca
 
Flutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaformaFlutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaforma
 
Android Code Camp 2012 - ita
Android Code Camp 2012 - itaAndroid Code Camp 2012 - ita
Android Code Camp 2012 - ita
 
Modelli arduino
Modelli arduinoModelli arduino
Modelli arduino
 
Google Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoogle Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobili
 
Dev fest android application case study
Dev fest android application   case studyDev fest android application   case study
Dev fest android application case study
 
Plone in Regione Emilia-Romagna - wpd2013
Plone in Regione Emilia-Romagna - wpd2013Plone in Regione Emilia-Romagna - wpd2013
Plone in Regione Emilia-Romagna - wpd2013
 

Mehr von Francesco Ronchi

Chi ha paura dell'AI? - @reelations
Chi ha paura dell'AI? - @reelationsChi ha paura dell'AI? - @reelations
Chi ha paura dell'AI? - @reelationsFrancesco Ronchi
 
AI Work Revolution - #TDD2023
AI Work Revolution - #TDD2023 AI Work Revolution - #TDD2023
AI Work Revolution - #TDD2023 Francesco Ronchi
 
Droidcon Italy 2020 report
Droidcon Italy 2020 report Droidcon Italy 2020 report
Droidcon Italy 2020 report Francesco Ronchi
 
Swift heroes digital 2020 - post event report
Swift heroes digital 2020 - post event reportSwift heroes digital 2020 - post event report
Swift heroes digital 2020 - post event reportFrancesco Ronchi
 
Presentazione Linkedin All Star - Autocrocetta 13 Giugno 2019
Presentazione Linkedin All Star - Autocrocetta 13 Giugno 2019Presentazione Linkedin All Star - Autocrocetta 13 Giugno 2019
Presentazione Linkedin All Star - Autocrocetta 13 Giugno 2019Francesco Ronchi
 
Presentazione Linkedin - Torino Digital Days
Presentazione Linkedin - Torino Digital DaysPresentazione Linkedin - Torino Digital Days
Presentazione Linkedin - Torino Digital DaysFrancesco Ronchi
 
Presentazione GrowItApp (v1.0)
Presentazione GrowItApp (v1.0)Presentazione GrowItApp (v1.0)
Presentazione GrowItApp (v1.0)Francesco Ronchi
 
Synesthesia & GrowItApp @ b-appexpo.it 2016
Synesthesia & GrowItApp @ b-appexpo.it 2016Synesthesia & GrowItApp @ b-appexpo.it 2016
Synesthesia & GrowItApp @ b-appexpo.it 2016Francesco Ronchi
 
Lo Zen e l'arte dello UX Design Mobile - festival ICT 2015 - Synesthesia
Lo Zen e l'arte dello UX Design Mobile -  festival ICT 2015 - SynesthesiaLo Zen e l'arte dello UX Design Mobile -  festival ICT 2015 - Synesthesia
Lo Zen e l'arte dello UX Design Mobile - festival ICT 2015 - SynesthesiaFrancesco Ronchi
 
Report Droidcon Italy 2014
Report Droidcon Italy 2014Report Droidcon Italy 2014
Report Droidcon Italy 2014Francesco Ronchi
 
Droidcon 2014 Italy - Opening Welcome
Droidcon 2014 Italy - Opening WelcomeDroidcon 2014 Italy - Opening Welcome
Droidcon 2014 Italy - Opening WelcomeFrancesco Ronchi
 
Mobile App o Mobile Web? Quale scelta per il mio business?
Mobile App o Mobile Web? Quale scelta per il mio business?Mobile App o Mobile Web? Quale scelta per il mio business?
Mobile App o Mobile Web? Quale scelta per il mio business?Francesco Ronchi
 
Mobile Marketing & Apps @ Digital festival 2013
Mobile Marketing & Apps @ Digital festival 2013Mobile Marketing & Apps @ Digital festival 2013
Mobile Marketing & Apps @ Digital festival 2013Francesco Ronchi
 
Realtà Aumentata - Techno Pitch
Realtà Aumentata - Techno PitchRealtà Aumentata - Techno Pitch
Realtà Aumentata - Techno PitchFrancesco Ronchi
 
Google Play (Android Market) visto da sviluppatore
Google Play (Android Market) visto da sviluppatoreGoogle Play (Android Market) visto da sviluppatore
Google Play (Android Market) visto da sviluppatoreFrancesco Ronchi
 
CakePhp Linux Day Torino '09
CakePhp Linux Day Torino '09CakePhp Linux Day Torino '09
CakePhp Linux Day Torino '09Francesco Ronchi
 

Mehr von Francesco Ronchi (17)

Chi ha paura dell'AI? - @reelations
Chi ha paura dell'AI? - @reelationsChi ha paura dell'AI? - @reelations
Chi ha paura dell'AI? - @reelations
 
AI Work Revolution - #TDD2023
AI Work Revolution - #TDD2023 AI Work Revolution - #TDD2023
AI Work Revolution - #TDD2023
 
Marketing&Privacy
Marketing&PrivacyMarketing&Privacy
Marketing&Privacy
 
Droidcon Italy 2020 report
Droidcon Italy 2020 report Droidcon Italy 2020 report
Droidcon Italy 2020 report
 
Swift heroes digital 2020 - post event report
Swift heroes digital 2020 - post event reportSwift heroes digital 2020 - post event report
Swift heroes digital 2020 - post event report
 
Presentazione Linkedin All Star - Autocrocetta 13 Giugno 2019
Presentazione Linkedin All Star - Autocrocetta 13 Giugno 2019Presentazione Linkedin All Star - Autocrocetta 13 Giugno 2019
Presentazione Linkedin All Star - Autocrocetta 13 Giugno 2019
 
Presentazione Linkedin - Torino Digital Days
Presentazione Linkedin - Torino Digital DaysPresentazione Linkedin - Torino Digital Days
Presentazione Linkedin - Torino Digital Days
 
Presentazione GrowItApp (v1.0)
Presentazione GrowItApp (v1.0)Presentazione GrowItApp (v1.0)
Presentazione GrowItApp (v1.0)
 
Synesthesia & GrowItApp @ b-appexpo.it 2016
Synesthesia & GrowItApp @ b-appexpo.it 2016Synesthesia & GrowItApp @ b-appexpo.it 2016
Synesthesia & GrowItApp @ b-appexpo.it 2016
 
Lo Zen e l'arte dello UX Design Mobile - festival ICT 2015 - Synesthesia
Lo Zen e l'arte dello UX Design Mobile -  festival ICT 2015 - SynesthesiaLo Zen e l'arte dello UX Design Mobile -  festival ICT 2015 - Synesthesia
Lo Zen e l'arte dello UX Design Mobile - festival ICT 2015 - Synesthesia
 
Report Droidcon Italy 2014
Report Droidcon Italy 2014Report Droidcon Italy 2014
Report Droidcon Italy 2014
 
Droidcon 2014 Italy - Opening Welcome
Droidcon 2014 Italy - Opening WelcomeDroidcon 2014 Italy - Opening Welcome
Droidcon 2014 Italy - Opening Welcome
 
Mobile App o Mobile Web? Quale scelta per il mio business?
Mobile App o Mobile Web? Quale scelta per il mio business?Mobile App o Mobile Web? Quale scelta per il mio business?
Mobile App o Mobile Web? Quale scelta per il mio business?
 
Mobile Marketing & Apps @ Digital festival 2013
Mobile Marketing & Apps @ Digital festival 2013Mobile Marketing & Apps @ Digital festival 2013
Mobile Marketing & Apps @ Digital festival 2013
 
Realtà Aumentata - Techno Pitch
Realtà Aumentata - Techno PitchRealtà Aumentata - Techno Pitch
Realtà Aumentata - Techno Pitch
 
Google Play (Android Market) visto da sviluppatore
Google Play (Android Market) visto da sviluppatoreGoogle Play (Android Market) visto da sviluppatore
Google Play (Android Market) visto da sviluppatore
 
CakePhp Linux Day Torino '09
CakePhp Linux Day Torino '09CakePhp Linux Day Torino '09
CakePhp Linux Day Torino '09
 

Kürzlich hochgeladen

Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 

Kürzlich hochgeladen (9)

Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 

My life with Android @ JUG Torino 2012

  • 1. Sviluppo su Android JUG Torino 2011 Francesco Ronchi francesco.ronchi (at) synesthesia.it www.synesthesia.it 29 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 Android 29 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 Android 29 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 & Drivers 29 Febbraio 2012 JUG Torino 6
  • 7. Dalvik ● Java? ● Virtual Machine ottimizzata ● Formato .dex ● Da Android 2.2 include JIT ● java -> class -> jar -> dex -> apk 29 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 marketshare 29 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 billing 29 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-app 29 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-app 29 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 l'sdk ● Lanciare il comando ● Android (Mac, Linux) ● SDK Manager.exe (Windows) ● scaricare gli sdk e le api necessarie 29 Febbraio 2012 JUG Torino 16
  • 17. Passi iniziali 2 ● scaricare Eclipse (classic, java o RCP) ● installare plugin (ADT) su Eclipse ● configurare il path dell'sdk 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 digitalmente 29 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 market keytool -genkey -v -keystore NOME_KEYSTORE.keystore -alias NOME_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 app 29 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/JAuu 29 Febbraio 2012 JUG Torino 24
  • 25. Manifest ● Contiene le informazioni base dell'applicazione e la configurazione dei suoi componenti ● Nome, version number, version name ● package, ● activities, servizi ecc.. ● intents, ● permessi richiesti dalla app 29 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ù activities 29 Febbraio 2012 JUG Torino 26
  • 27. Ciclo vitale di una Activity 29 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 stato 29 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 all'app, tra app, di sistema 29 Febbraio 2012 JUG Torino 29
  • 30. E' solo l'inizio... ● … 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 - @synesthesiait 29 Febbraio 2012 JUG Torino 31