Sviluppo su Android Linux Day Torino 2010 Francesco Ronchi francesco.ronchi@gmail.com - www.synesthesia.it
Cos'è Android Sistema operativo dedicato ai device mobili: cellulari, palmari, tablet, navigatori...
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
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"
Architettura di Android
Architettura in breve... Applicazioni (base e di terze parti) Application Framework Virtual Machine Java (Dalvik) Librerie native (Multimedia, Database, WebKit, ecc...) Linux Kernek & Drivers
Dalvik Java? Virtual Machine otimizzata Formato.dex Da Android 2.2 include JIT java > class > jar > dex > apk
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
Versioni e marketshare
Android Market 25$ per la registrazione (una tantum) Pubblicazione immediata app Applicazioni free e a pagamento 30% di commissione
Size Matters (?) Setembre 2010: Android 80.000 Apple 250.000
Prerequisiti per iniziare Programmazione a oggeti Java XML Problematiche dello sviluppo mobile...
Strumenti per lavorare Android API Development tools Emulatore Android DDMS (Dalvik Debug Monitor Service) Documentazione, Esempi htp://developer.android.com/
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
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)
Tools Android Adb (android debug bridge) Draw 9 Patches Monkey Emulator Aapt, zipalign, ecc.. per creare paccheti apk e frmarli digitalmente
Al lavoro... Creiamo una applicazione (fnalmente!) App vuota (hello world) Skeleton App Esempi...
Anatomia di una App Src sorgenti Gen fle generati Assets fle vari (non risorse) Res - risorse Android Manifest xml
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!
Manifest Contiene le informazioni base dell'applicazione e dei suoi componenti nome, package, activities, intents, permessi
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
Ciclo vitale di una Activity
Gestione della memoria Le activities in determinati momenti possono essere killate se è richiesta maggiore ram. Dopo onpause, onstop, onrestore onsaveinstancestate e onrestoreinstancestate
Intent Richiamano una activity Espliciti o impliciti È possibile specifcare dei dati È possibile ricevere valori di ritorno Asincroni
E' solo l'inizio... ma ci fermiamo qui Q&A?
Grazie a tuti! francesco.ronchi@gmail.com www.synesthesia.it