Sviluppo Android (LinuxDay TO 2010)

26
23 Ottobre 2010 LinuxDay Torino Sviluppo su Android Linux Day Torino 2010 Francesco Ronchi [email protected] - www.synesthesia.it

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-web

Transcript of Sviluppo Android (LinuxDay TO 2010)

Page 1: Sviluppo Android (LinuxDay TO 2010)

23 Ottobre 2010 LinuxDay Torino

Sviluppo su Android

Linux Day Torino 2010Francesco Ronchi

[email protected] - www.synesthesia.it

Page 2: Sviluppo Android (LinuxDay TO 2010)

23 Ottobre 2010 LinuxDay Torino

Cos'è Android

● Sistema operativo dedicato ai device mobili:

● cellulari, ● palmari, ● tablet, ● navigatori...

Page 3: Sviluppo Android (LinuxDay TO 2010)

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

Page 4: Sviluppo Android (LinuxDay TO 2010)

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"

Page 5: Sviluppo Android (LinuxDay TO 2010)

23 Ottobre 2010 LinuxDay Torino

Architettura di Android

Page 6: Sviluppo Android (LinuxDay TO 2010)

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

Page 7: Sviluppo Android (LinuxDay TO 2010)

23 Ottobre 2010 LinuxDay Torino

Dalvik

● Java?● Virtual Machine otimizzata ● Formato .dex● Da Android 2.2 include JIT● java > class > jar > dex > apk

Page 8: Sviluppo Android (LinuxDay TO 2010)

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

Page 9: Sviluppo Android (LinuxDay TO 2010)

23 Ottobre 2010 LinuxDay Torino

Versioni e marketshare

Page 10: Sviluppo Android (LinuxDay TO 2010)

23 Ottobre 2010 LinuxDay Torino

Android Market

● 25$ per la registrazione (una tantum)● Pubblicazione immediata app● Applicazioni free e a pagamento● 30% di commissione

Page 11: Sviluppo Android (LinuxDay TO 2010)

23 Ottobre 2010 LinuxDay Torino

Size Matters (?)

Setembre 2010: Android 80.000 Apple 250.000

Page 12: Sviluppo Android (LinuxDay TO 2010)

23 Ottobre 2010 LinuxDay Torino

Prerequisiti per iniziare

● Programmazione a oggeti● Java● XML

● Problematiche dello sviluppo mobile...

Page 13: Sviluppo Android (LinuxDay TO 2010)

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/

Page 14: Sviluppo Android (LinuxDay TO 2010)

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

Page 15: Sviluppo Android (LinuxDay TO 2010)

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)

Page 16: Sviluppo Android (LinuxDay TO 2010)

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

Page 17: Sviluppo Android (LinuxDay TO 2010)

23 Ottobre 2010 LinuxDay Torino

Al lavoro...

● Creiamo una applicazione (fnalmente!)● App vuota (hello world)● Skeleton App● Esempi...

Page 18: Sviluppo Android (LinuxDay TO 2010)

23 Ottobre 2010 LinuxDay Torino

Anatomia di una App

● Src – sorgenti● Gen – fle generati● Assets – fle vari (non risorse)● Res - risorse● Android Manifest xml

Page 19: Sviluppo Android (LinuxDay TO 2010)

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!

Page 20: Sviluppo Android (LinuxDay TO 2010)

23 Ottobre 2010 LinuxDay Torino

Manifest

● Contiene le informazioni base dell'applicazione e dei suoi componenti

● nome, package, activities, intents, permessi

Page 21: Sviluppo Android (LinuxDay TO 2010)

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

Page 22: Sviluppo Android (LinuxDay TO 2010)

23 Ottobre 2010 LinuxDay Torino

Ciclo vitale di una Activity

Page 23: Sviluppo Android (LinuxDay TO 2010)

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

Page 24: Sviluppo Android (LinuxDay TO 2010)

23 Ottobre 2010 LinuxDay Torino

Intent

● Richiamano una activity● Espliciti o impliciti● È possibile specifcare dei dati● È possibile ricevere valori di ritorno● Asincroni

Page 25: Sviluppo Android (LinuxDay TO 2010)

23 Ottobre 2010 LinuxDay Torino

E' solo l'inizio...

● … ma ci fermiamo qui

● Q&A?

Page 26: Sviluppo Android (LinuxDay TO 2010)

23 Ottobre 2010 LinuxDay Torino

● Grazie a [email protected]

www.synesthesia.it