sviluppo android (linuxday to 2010)
DESCRIPTION
Per approfondimenti sullo sviluppo applicazioni Android: http://www.synesthesia.it/sviluppo-mobile-applicazioni-android-iphone-ipad-ios-web http://www.synesthesia.it/sviluppo-mobile-applicazioni-android-iphone-ipad-ios-webTRANSCRIPT
23 Ottobre 2010 LinuxDay Torino
Sviluppo su Android
Linux Day Torino 2010Francesco Ronchi
[email protected] - www.synesthesia.it
23 Ottobre 2010 LinuxDay Torino
Cos'è Android
● Sistema operativo dedicato ai device mobili:
● cellulari, ● palmari, ● tablet, ● navigatori...
23 Ottobre 2010 LinuxDay Torino
Perchè sviluppare su Android
● Creato da Google: Open source e basato su Linux (garanzia di apertura)
● Sviluppo in Java e XML (ci si sente a casa...)
● SDK Multipiataforma (Lin/Mac/Win)● Successo crescente● Android Market
23 Ottobre 2010 LinuxDay Torino
Una chicca...
● Andy Rubin
● the defnition of open: "mkdir android ; cd android ; repo init -u git://android.git.kernel.org/platform/manifest.git ; repo sync ; make"
23 Ottobre 2010 LinuxDay Torino
Architettura di Android
23 Ottobre 2010 LinuxDay Torino
Architettura in breve...
● Applicazioni (base e di terze parti)● Application Framework ● Virtual Machine “Java” (Dalvik)● Librerie native (Multimedia, Database,
WebKit, ecc...)● Linux Kernek & Drivers
23 Ottobre 2010 LinuxDay Torino
Dalvik
● Java?● Virtual Machine otimizzata ● Formato .dex● Da Android 2.2 include JIT● java > class > jar > dex > apk
23 Ottobre 2010 LinuxDay Torino
Versioni di Android
● Android 1.5 Cupcake● Android 1.6 Donut● Android 2.1 Eclair● Android 2.2 Froyo
futuro: 3.0 Gingerbread... (fne 2010?) con maggiore supporto ai tablet
23 Ottobre 2010 LinuxDay Torino
Versioni e marketshare
23 Ottobre 2010 LinuxDay Torino
Android Market
● 25$ per la registrazione (una tantum)● Pubblicazione immediata app● Applicazioni free e a pagamento● 30% di commissione
23 Ottobre 2010 LinuxDay Torino
Size Matters (?)
Setembre 2010: Android 80.000 Apple 250.000
23 Ottobre 2010 LinuxDay Torino
Prerequisiti per iniziare
● Programmazione a oggeti● Java● XML
● Problematiche dello sviluppo mobile...
23 Ottobre 2010 LinuxDay Torino
Strumenti per lavorare
● Android API● Development tools● Emulatore Android● DDMS (Dalvik Debug Monitor Service)● Documentazione, Esempi→ htp://developer.android.com/
23 Ottobre 2010 LinuxDay Torino
Passi iniziali 1
● scaricare sdk da htp://developer.android.com/
● impostare il path per l'sdk● lanciare "android"● scaricare gli sdk e le api necessarie
23 Ottobre 2010 LinuxDay Torino
Passi iniziali 2
● scaricare eclipse 3.5 (NB no 3.6!)● installare plugin su eclipse
● confgurare il path dell'sdk in eclipse (preferences)
● creare un device virtuale (avd)
23 Ottobre 2010 LinuxDay Torino
Tools
● Android● Adb (android debug bridge)● Draw 9 Patches● Monkey● Emulator● Aapt, zipalign, ecc.. per creare paccheti
apk e frmarli digitalmente
23 Ottobre 2010 LinuxDay Torino
Al lavoro...
● Creiamo una applicazione (fnalmente!)● App vuota (hello world)● Skeleton App● Esempi...
23 Ottobre 2010 LinuxDay Torino
Anatomia di una App
● Src – sorgenti● Gen – fle generati● Assets – fle vari (non risorse)● Res - risorse● Android Manifest xml
23 Ottobre 2010 LinuxDay Torino
Le Risorse
● Drawables (immagini...)● Layouts (xml di defnizione UI)● Values (stringhe, colori, ecc)● Menu (menu...)● Anim (animazioni)● Raw (tuto il resto)
Tute codifcate in R.java mediante id!
23 Ottobre 2010 LinuxDay Torino
Manifest
● Contiene le informazioni base dell'applicazione e dei suoi componenti
● nome, package, activities, intents, permessi
23 Ottobre 2010 LinuxDay Torino
Componenti base
● Activities → equivalgono alle view● Services → lavorano in background● Intents → permetono di chiamare le
activities● Bundles → salvano lo “stato” di una
activity● Application → raggruppa più activities
23 Ottobre 2010 LinuxDay Torino
Ciclo vitale di una Activity
23 Ottobre 2010 LinuxDay Torino
Gestione della memoria
● Le activities in determinati momenti possono essere killate se è richiesta maggiore ram.
● Dopo onPause, onStop, onRestore● onSaveInstanceState e
onRestoreInstanceState
23 Ottobre 2010 LinuxDay Torino
Intent
● Richiamano una activity● Espliciti o impliciti● È possibile specifcare dei dati● È possibile ricevere valori di ritorno● Asincroni
23 Ottobre 2010 LinuxDay Torino
E' solo l'inizio...
● … ma ci fermiamo qui
● Q&A?