Lezione 1 Primi passi con Android



Documenti analoghi
Lezione 1 Primi passi con Android

Programmazione in ambiente

Sistemi Mobili e Wireless Android Primi passi

Tale attività non è descritta in questa dispensa

L ambiente di sviluppo Android Studio

Guida alla configurazione della posta elettronica dell Ateneo di Ferrara sui più comuni programmi di posta

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

Tecniche di progettazione e sviluppo di applicazioni mobile

ANDROID GUIDA ALLO SVILUPPATORE

Direzione Centrale per le Politiche dell Immigrazione e dell Asilo

Il web server Apache Lezione n. 3. Introduzione

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Visual basic base Lezione 01. L'ambiente di sviluppo

ATOLLO BACKUP GUIDA INSTALLAZIONE E CONFIGURAZIONE

START Easy GO! Il gestionale sempre in tasca! Procedura di aggiornamento. Documentazione utente Pagina 1 di 18

La geolocalizzazione

File, Modifica, Visualizza, Strumenti, Messaggio

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

MANUALE UTENTE. Computer Palmare WORKABOUT PRO

Joomla: Come installarlo e come usarlo. A cura di

Android world. Sviluppare app per Android. Un insieme di software per dispositivi mobili (smartphone, tablet, portatili...)

PROCEDURE DI FIRMA PER I PIP PRESENTATI NEI BANDI APPRENDISTATO

FPf per Windows 3.1. Guida all uso

Cominciamo dalla barra multifunzione, ossia la struttura a schede che ha sostituito la barra dei menu e la barra delle icone (Figura 1).

Dispositivo Firma Digitale

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

VADEMECUM TECNICO. Per PC con sistema operativo Windows XP Windows Vista - Windows 7

CERTIFICATI DIGITALI. Manuale Utente

Iniziamo ad utilizzare LiveBox ITALIANO.

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Studio Legale. Guida operativa

Premessa Le indicazioni seguenti sono parzialmente tratte da Wikipedia ( e da un tutorial di Pierlauro Sciarelli su comefare.

Installare Ubuntu su macchina virtuale

Rubrica e Clicca e chiama

Istruzioni operative instal azione FirmaVerifica3.0 Pag.1 di 27

Setup e installazione

PORTALE CLIENTI Manuale utente

Esercizio data base "Biblioteca"

2015 PERIODO D IMPOSTA

bolt PC-Suite (Guida all installazione)

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

illustrativa Affidabile, veloce, trasparente.

Virtualizzazione VirtualBox su Host Windows

Questa guida è realizzata per spiegarvi e semplificarvi l utilizzo del nostro nuovo sito E Commerce dedicato ad Alternatori e Motorini di avviamento.

ICARO Terminal Server per Aprile

DINAMIC: gestione assistenza tecnica

SOMMARIO... 3 INTRODUZIONE...

GUIDA UTENTE BILLIARDS COUNTER (Vers )

Office 2007 Lezione 08

I M P O S T A R E U N A C C O U N T D I P O S T A C O N M O Z I L L A T H U N D E R B I R D

STUDIUM.UniCT Tutorial per gli studenti

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

EyesCloud. Il mini gestionale Cloud

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Titolo: ASSISTENZA. Data: 18/02/2015. Referente: Omar Vezzoli

L amministratore di dominio

1. Il Client Skype for Business

Guida alla registrazione on-line di un DataLogger

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.

GESGOLF SMS ONLINE. Manuale per l utente

Tutorial. Raspberry Pi. Montare un immagine di Raspbian su scheda SD per Raspberry Pi. Raspberry Pi Montare un immagine di Raspbian su scheda SD

ANDROID 4.2 JELLY BEAN Installazione e configurazione dell ambiente

1.1 Installare un nuovo Client di Concept ed eseguire il primo avvio

Guida informatica per l associazione #IDEA

Istruzioni per l uso della Guida. Icone utilizzate in questa Guida. Istruzioni per l uso della Guida. Software di backup LaCie Guida per l utente

Creare e ripristinare immagine di sistema con Windows 8

Panoramica: che cosa è necessario

I tutorial di MadLabs.. Installazione e prima configurazione

FIRMA DIGITALE RETAIL

Presentazione della pratica online

Provincia di Siena UFFICIO TURISMO. Invio telematico delle comunicazioni relative alle Agenzie di Viaggio

Guida all uso della piattaforma. portale Weblog & Podcast del MIUR COME UTILIZZARE AL MEGLIO L AMMINISTRAZIONE DEL BLOG

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Tools For Autism 1.0. Manuale d uso

Quick Reference per il Tablet SAMSUNG Galaxy Tab

MANUALE PARCELLA FACILE PLUS INDICE

spiega una guida Inizia >

Firma Digitale Remota

GUIDA UTENTE PRIMA NOTA SEMPLICE

IRSplit. Istruzioni d uso 07/10-01 PC

INDICE. IL CENTRO ATTIVITÀ... 3 I MODULI... 6 IL MY CLOUD ANASTASIS... 8 Il menu IMPORTA... 8 I COMANDI DEL DOCUMENTO...

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

COSTER. Import/Export su SWC701. SwcImportExport

SendMedMalattia v Manuale d uso

COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO e PARAMETRI2015

Dispensa di Informatica I.1

Iniziamo ad utilizzare LiveBox ITALIANO.

GUIDA UTENTE MONEY TRANSFER MANAGER

GUIDA UTENTE WEB PROFILES

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Biblioteca di Cervia NOZIONI BASE DI INFORMATICA

Guida all uso. Esso sarà riportato nell intestazione. Vediamo:

TS-CNS. Tessera Sanitaria Carta Nazionale dei Servizi. Manuale di installazione e configurazione. Versione del

MagiCum S.r.l. Progetto Inno-School

GateManager. 1 Indice. tecnico@gate-manager.it

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

- Guida a VMware - Guida a VMware. Questa guida vi aiuterà passo passo nell installazione e la configurazione di VMware.

Figura 1 Le Icone dei file di Excel con e senza macro.

Guida all installazione e utilizzo del software Airbag Crash Cleaner

Transcript:

A cura di Carlo Pelliccia Android è una piattaforma software per smartphone e tablet realizzata dal consorzio noto come Open Handset Alliance, di cui Google è capofila e maggiore contributore, ed al quale aderiscono numerose aziende di grosso calibro, come Samsung, HTC, LG, Sony Ericcson, ASUS, Acer ed altre ancora. Il progetto è nato nel 2005, ha debuttato presso gli sviluppatori nel 2007 ed ha iniziato ad affermarsi presso il grande pubblico a partire dal 2009. Android, oggi, è il principale protagonista del mercato di smartphone e tablet. Nonostante il suo successo sia relativamente recente, la sua storia è lunga e le sue fondamenta solide. Grazie alle strategie di Google, che si è tenuta vicina al mondo dell Open Source, esiste oggi una comunità molto ampia di sviluppatori Android, estremamente produttiva e collaborativa. Come è fatto Android Android è, insieme, un sistema operativo, una piattaforma di sviluppo ed una collezione di software di base per l utilizzo di un dispositivo portatile. Essendo un sistema di moderna fattura, è abbastanza complesso. Anche se il suo target sono i dispositivi mobili, l architettura di Android ha poco da invidiare a quelle dei comuni sistemi per desktop o laptop. Tale architettura è presentata schematicamente in Figura 1. Figura 1 - L'architettura di Android Come si evince dalla figura, Google e soci hanno attinto a piene mani dal mondo Open Source. Il cuore di ogni sistema Android, tanto per cominciare, è un kernel Linux. Direttamente nel kernel sono inseriti i driver per il controllo dell hardware del dispositivo: driver per la tastiera, lo schermo, il touch screen, il Wi-Fi, il Bluetooth, il controllo dell audio e così via. Sopra il kernel poggiano le librerie fondamentali, anche queste tutte mutuate dal mondo Open Source. Da citare sono senz altro OpenGL, per la grafica, SQLite, per la gestione dei dati, e WebKit, per la visualizzazione delle pagine Web. L architettura prevede poi una macchina virtuale ed una libreria fondamentale che, insieme, costituiscono la piattaforma di sviluppo per le applicazioni Android. Questa macchina virtuale si chiama Dalvik, e sostanzialmente è una Java Virtual Machine. Come verificheremo più tardi, alcune

delle caratteristiche di Dalvik e della sua libreria non permettono di identificare immediatamente la piattaforma Java disponibile in Android con una di quelle di riferimento (Java SE, Java ME). Nel penultimo strato dell architettura è possibile rintracciare i gestori e le applicazioni di base del sistema. Ci sono gestori per le risorse, per le applicazioni installate, per le telefonate, il file system ed altro ancora: tutti componenti di cui difficilmente si può fare a meno. Infine, sullo strato più alto dell architettura, poggiano gli applicativi destinati all utente finale. Molti, naturalmente, sono già inclusi con l installazione di base: il browser ed il player multimediale sono dei facili esempi. A questo livello si inseriranno anche le applicazioni che, insieme, impareremo a sviluppare nell arco di questo corso. Installazione dell Android SDK Per sviluppare applicazioni che siano in grado di girare su sistemi Android, è necessario installare sul proprio PC un apposito kit di sviluppo (SDK), che sia completo di emulatore, librerie e documentazione. L Android SDK è disponibile gratuitamente per sistemi Windows, Linux e Mac OS X. La configurazione del kit è veramente semplice. L unica cosa da fare, prima di procedere, è accertarsi di soddisfare i requisiti di base. In particolare, è richiesto che il sistema disponga già di una macchina virtuale Java. È strettamente indispensabile soddisfare questo requisito, poiché Android si programma in Java, e gli strumenti di sviluppo hanno più o meno tutti una forte dipendenza da questa piattaforma. Per scaricare il kit di sviluppo di Android collegatevi quindi all indirizzo: http://developer.android.com/sdk/ La maniera più semplice per cominciare è scaricare il pacchetto denominato ADT Bundle, che la pagina Web propone in primo piano. Si tratta di una collezione che contiene gli strumenti di sviluppo, l emulatore e l immagine di una recente versione del sistema Android, tutto già integrato all interno di una copia del celebre ambiente di sviluppo integrato Eclipse. Scaricate il pacchetto adatto al vostro sistema e scompattate l archivio ZIP sul vostro disco, alla posizione che preferite. Quindi entrate nella sotto-cartella eclipse e lanciate l eseguibile dell ambiente di sviluppo. Configurazione dell Android SDK Dalla barra degli strumenti di Eclipse, azionate l icona denominata Android SDK Manager, che avvia uno strumento utile per verificare l installazione e la configurazione dello strumento di sviluppo. Figura 2 - L'Android SDK Manager permette di installare altre versioni del sistema e di scaricare strumenti aggiuntivi. Pagina 2

Verrà caricata una GUI che vi permette di gestire le differenti versioni Android installate nel kit ed alcuni componenti aggiuntivi. Appena installato, l Android SDK in versione bundle contiene gli strumenti di sviluppo di base, insieme con l immagine della più recente versione di Android disponibile (la 4.2.2, al momento della stesura di questa lezione). Usando l Android SDK Manager potrete scaricare altre versioni del sistema, utili soprattutto per eseguire test con l emulatore, mantenere aggiornati gli strumenti di sviluppo e, in caso di necessità, potrete scaricare anche ulteriori addendum del kit di sviluppo, utili in situazioni specifiche. Gestione dei device virtuali Il kit di sviluppo comprende degli emulatori che ci consentiranno di provare le nostre creazioni sul PC, prima di installarle su un reale dispositivo equipaggiato con Android. Per sviluppare le applicazioni, quindi, dobbiamo imparare ad interagire con questo emulatore. Il primo concetto che si deve assimilare è quello che ha nome Android Virtual Device (AVD), cioè dispositivo virtuale Android. Nel nostro PC possiamo creare e configurare quanti dispositivi virtuali vogliamo. È come avere tanti differenti smartphone da utilizzare per i propri test, solo che invece di dispositivi di plastica e silicio si tratta di macchine virtuali, fatte cioè di puro software, da eseguire attraverso l emulatore. In questo modo è anche possibile avviare contemporaneamente sullo stesso PC due o più dispositivi virtuali, ad esempio per testare un applicazione che fa interagire più smartphone, come una chat o un gioco multiplayer. Dalla barra principale di Eclipse, avviate il tool associato all icona Android Virtual Device Manager. Accederete così all elenco dei device virtuali configurati. Inizialmente l elenco è vuoto. Create uno o più device virtuali, con il tasto New. Figura 3 - La maschera di creazione di un nuovo dispositivo virtuale. Pagina 3

Le informazioni più importanti da fornire sono: Programmazione Android AVD Name: il nome che si vuole attribuire al dispositivo virtuale, ad esempio Emulator1. Device: una configurazione di base per l emulatore, che aiuta nel selezionare valori coerenti per la risoluzione e la densità del display, per la dimensione della memoria e per altri parametri ancora. Ci trovate le configurazioni di base di alcuni device noti, più altre di tipo generico. Target: la versione di Android che sarà installata nel dispositivo. L elenco a tendina permette di scegliere fra le differenti piattaforme scaricate ed integrate all interno del proprio SDK. SD Card: qui è possibile dotare il dispositivo virtuale di una scheda di memoria virtuale. È possibile specificare sia il percorso di un file di immagine di una scheda di memoria, se si vuole riutilizzare una memoria virtuale esistente, sia una dimensione di spazio, per creare una nuova memoria virtuale. Snapshot: se abilitata, l opzione permette di avere delle immagini dello stato del sistema, in modo da velocizzarne il riavvio. È consigliabile attivare questa opzione. Una volta creato, il nuovo dispositivo virtuale entrerà a far parte dell elenco gestito dall ambiente di sviluppo, e potrà quindi essere utilizzato per eseguire il debug ed il test delle applicazioni. L emulatore Android Se non siete già pratici nell utilizzo di Android, prima di iniziare a programmare è meglio che ci prendiate confidenza. Esplorando le applicazioni di base potrete così entrare nell ottica del sistema, per imparare i principi di funzionamento e di design delle sue applicazioni. Potete avviare un dispositivo virtuale dall interno del SDK, selezionandone uno creato in precedenza ed attivando il tasto Start. Qualche istante di pazienza (al primo lancio anche qualcosa in più) e l emulatore caricherà e renderà disponibile il dispositivo virtuale Android selezionato. Con il mouse è possibile simulare il touchscreen del dispositivo, cliccando sullo schermo. Fatevi un giro e prendete pure confidenza con l ambiente. Figura 4 - L'emulatore Android. Pagina 4

Come prima cosa utilizzate le applicazioni di base, come il browser o la rubrica: vi aiuteranno molto nel comprendere i principi di utilizzo del sistema. Poi passate a del materiale più tecnico: il menù principale contiene la voce Dev Tools, che raccoglie una serie di strumenti dedicati a chi Android vuole programmarlo, e non solo farci un giro di prova. Tra questi spicca l emulatore di terminale, che permette di avere una shell di sistema per un interazione di più basso livello con il dispositivo. Ciao, Mondo Androide! È venuto il momento di utilizzare l ambiente di sviluppo per programmare la nostra prima applicazione Android. Naturalmente sarà una variante del classico Ciao, Mondo!. Avviate Eclipse e create un progetto di tipo Android Project. Figura 5 - La maschera di creazione di un progetto Android (primo passo). Al primo passo del wizard che vi sarà proposto, assegnate al progetto il nome Ciao Mondo Androide, valorizzando il campo Application Name. Il campo Project Name sarà suggerito automaticamente in rispetto dell Application Name (ma se volete potete cambiarlo). Come Package Name impostate invece il valore example.helloandroid. Nel gruppo di controlli successivo viene stabilito il rapporto dell applicazione che si sta creando con le differenti versioni di Android. Minimum Required SDK indica la versione minima di Android che l app andrà a supportare; Target SDK è invece la versione di riferimento, quella per cui l app sarà ottimizzata; Compile With, infine, indica quale immagine di Android installata localmente nell ambiente di sviluppo dovrà essere utilizzata per compilare e verificare l app durante le fasi di sviluppo. Impostate Android 2.2 come versione minima, mentre scegliete la più recente che avete a disposizione nelle altre due caselle. Un ultimo campo, etichettato Theme, permette di preselezionare il tema grafico che sarà usato dall applicazione. Lasciate selezionata la scelta predefinita proposta dal wizard. Pagina 5

Figura 6 - La maschera di creazione di un progetto Android (secondo passo). Al secondo passo del wizard attivate le voci Create activity, che chiederà al wizard di generare per noi un componente predefinito all interno del progetto, e Create Project in Workspace, che stabilisce di salvare i file del progetto all interno del workspace di Eclipse. Disabilitate tutte le altre voci. Figura 7 - La maschera di creazione di un progetto Android (terzo passo). Al terzo passo il wizard ci assiste nel create una activity, come richiesto al passo precedente. Come impareremo a breve, una activity è un componente base di Android che permette di interagire con l utente. Lasciate selezionato Blank Activity e andate avanti. Pagina 6

Figura 8 - La maschera di creazione di un progetto Android (quarto passo). Anche al quarto passo lasciate impostati i valori inseriti in automatico dal wizard, che propone di chiamare l activity MainActivity e activity_main il layout ad essa associato (impareremo a breve cosa tutto ciò significhi). Il progetto, a questo punto, può essere creato, azionando il tasto Finish. Eclipse popolerà automaticamente il progetto, inserendo le librerie di Android e la struttura di base dei progetti per questa piattaforma. Come abbiamo richiesto, Eclipse provvederà anche alla creazione della prima classe della soluzione, chiamata MainActivity ed inserita nel pacchetto example.helloandroid: package example.helloandroid; import android.os.bundle; import android.app.activity; import android.view.menu; public class MainActivity extends Activity { } @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); } @Override public boolean oncreateoptionsmenu(menu menu) { getmenuinflater().inflate(r.menu.main, menu); return true; } Ora selezionate la radice del progetto CiaoMondoAndroide, selezionate la voce di menù Run» Run e nella finestra di selezione della tipologia di applicazione scegliete Android Application. Pagina 7

Figura 9 - Il progetto deve essere eseguito come una Android Application. L emulatore verrà caricato. Eclipse provvederà automaticamente ad installare al suo interno l applicazione CiaoMondoAndroide, per poi avviarla non appena l operazione sarà completata. È fatta: il vostro primo software per Android sta girando davanti ai vostri occhi. Figura 10 - L'applicazione CiaoMondoAndroide eseguita nell'emulatore. Successivamente, accedendo alle configurazioni di esecuzione (voce di menù Run» Run Configurations ), sarà possibile alterare i parametri di avvio dell emulatore e dell applicazione. Tra questi, anche il dispositivo virtuale sul quale sarà installato ed avviato il software. Fate qualche esperimento. Provate, ad esempio, a creare differenti AVD, collaudando così il software con schermi di differenti dimensioni e proporzioni. Un altro esperimento interessante, che si consiglia di compiere prima di procedere oltre, è l utilizzo del debugger di Eclipse con l applicazione Android. Ponete un breakpoint sulla classe Java MainActivity ed avviate di nuovo emulatore ed applicazione, questa volta in modalità debug. Provare con un dispositivo reale L emulatore è un ottimo strumento di supporto allo sviluppo, perché permette di eseguire test con differenti versioni del sistema e diverse dimensioni dello schermo, senza dover spendere nulla. Tuttavia l emulatore ha diversi limiti: è lento e non sempre riesce a riprodurre in maniera sufficientemente realistica alcune condizioni, caratteristiche e funzionalità dei device reali. Insomma, l emulatore va bene per lo studio e anche per lo sviluppo ed i test preliminari, ma per una maggiore accuratezza e per la realizzazione di prodotti di livello commerciale è necessario testare i propri software con dei dispositivi reali. Utilizzare un dispositivo Android reale con Eclipse è molto semplice. Se utilizzate Windows, dovete anzitutto installare i driver del dispositivo stesso, che solitamente sono scaricabili dal sito del produttore. Gli utenti Mac OS X e delle principali distribuzioni Linux sono invece avvantaggiati in questo aspetto: non dovranno installare alcun driver, in quanto i loro sistemi riconosceranno automaticamente i dispositivi Android. Prima di collegare il telefono al PC, dovete abilitare sul dispositivo Android la funzione di debug via cavo USB. Può essere fatto dalle impostazioni di sistema, ma il percorso da eseguire al loro interno è differente a seconda del device e della versione del sistema installata. In Android 4.x, generalmente, c è una voce Opzioni sviluppatore, mentre sugli Android 2.x, invece, il percorso da seguire è di solito Applicazioni» Sviluppo. All interno di questa sezione troverete i setting di sviluppo messi a disposizione dal vostro device. La voce da abilitare è Debug USB. Questa modalità permette al dispositivo di essere utilizzato come strumento di sviluppo, semplicemente collegandolo al PC con il cavo USB ricevuto in dotazione con il device stesso. Pagina 8

Figura 11 - Impostazione della funzione Debug USB su un Samsung Galaxy S3 con Android 4. Figura 12 - Impostazione della funzione Debug USB su un Samsung Galaxy S con Android 2. A questo punto potete collegare il telefono al computer. Se tutto va bene, lo vedrete comparire nella scheda Devices della prospettiva DDMS di Eclipse. Figura 13 La prospettiva DDMS di Eclipse permette il controllo dei dispositivi (reali e virtuali) connessi. Pagina 9

Provate ora a rilanciare l applicazione dimostrativa svolta in precedenza. Se avete l emulatore ancora avviato, Eclipse vi chiederà su quale dei due dispositivi andare ad eseguirlo, altrimenti utilizzerà direttamente il dispositivo reale. L applicazione verrà installata ed avviata sul telefono. Figura 14 L'applicazione CiaoMondoAndroide eseguita in un Samsung Galaxy S3 con Android 4. Dalvik e le librerie Android Superata la prova del primo progetto Android, torniamo ad occuparci dei concetti fondamentali per la programmazione in questo ambiente. Come abbiamo appreso e dimostrato, la piattaforma di sviluppo è di natura Java. Tuttavia si tratta di una piattaforma particolare e personalizzata, che vale la pena approfondire. La macchina virtuale, chiamata Dalvik, sembra essere una Java Virtual Machine, ma in realtà non lo è del tutto. Mi spiego meglio: una Java Virtual Machine esegue del codice bytecode, giusto? Ecco, la Dalvik Virtual Machine non esegue bytecode standard, ma un altro linguaggio, chiamato DEX (Dalvik EXecutable), studiato appositamente per una migliore resa in uno smartphone. Con l Android SDK ed Eclipse, ad ogni modo, ci sembrerà di utilizzare una regolare Java Virtual Machine. L ambiente di sviluppo, infatti, provvede automaticamente alla generazione del codice DEX, ri-compilando il bytecode che a sua volta è frutto di una prima comune compilazione Java. Per lo sviluppatore, ad ogni modo, è tutto trasparente. Questa peculiarità di Dalvik, quindi, non influenzerà il nostro modo di programmare. La stessa considerazione, invece, non può essere fatta riguardo la libreria di base che affianca Dalvik. Collegatevi all indirizzo: http://developer.android.com/reference/packages.html È la reference ufficiale di Android, in un formato simile al javadoc, e contiene l indice dei package Java compresi nella libreria di base. Scorretela velocemente e traete pure le prime conclusioni. C è parecchio della Standard Edition di Java, ma non c è tutto. Ad esempio non ci sono AWT e Swing. I pacchetti fondamentali, però, ci sono tutti, ed appaiono in larga misura identici a come li vuole Oracle. Davvero poco viene dalla Micro Edition, praticamente nulla. La piattaforma Java ME è stata snobbata da Android, che le ha preferito una libreria più simile a quella di un sistema desktop. Non passano poi inosservati i tanti package con prefisso android che, naturalmente, sono esclusivi di questa speciale piattaforma. Servono per l interazione diretta con le funzionalità del sistema sottostante. Ad esempio: il package android.widget contiene i componenti custom di Android per la costruzione delle interfacce grafiche; nel pacchetto android.graphics ci sono le funzioni primitive per la grafica di più basso livello; in android.location ci sono gli strumenti per interagire con il ricevitore GPS compreso nel dispositivo. Ciascuno dei pacchetti android, naturalmente, meriterebbe una trattazione estesa e completa, tanti sono i possibili campi di applicazione. Ne emerge il profilo di una piattaforma di sviluppo complessa, perché molto ricca, ma semplice, perché ordinata e perché condivide parecchio con l edizione tradizionale di Java. Il consiglio, naturalmente, è quello di tenere sempre a portata di mano la documentazione delle API di Android. Fatevi poi guidare dalla curiosità: date pure una prima occhiata alle classi che più stuzzicano la vostra fantasia. Pagina 10

Principi di programmazione Chi programma con Java ME sa che le MIDlet sono il mattone fondamentale delle applicazioni MIDP; chi crea applicazioni Web con Java EE non può ignorare cosa sia una Servlet; chi sviluppa applicazioni Java che girano nel browser, invece, sa che deve cominciare dalle Applet. Tutto questo per dire che ciascun ambiente, Java e non, dispone dei suoi mattoni fondamentali, che lo sviluppatore può estendere ed implementare per trovare un punto di aggancio con la piattaforma. Android non sfugge alla regola, anzi la amplifica. A seconda di quel che si intende fare è disponibile un diverso modello. Android fornisce quattro mattoni di base: Attività Le attività sono quei blocchi di un applicazione che interagiscono con l utente utilizzando lo schermo ed i dispositivi di input messi a disposizione dallo smartphone. Comunemente fanno uso di componenti UI già pronti, come quelli presenti nel pacchetto android.widget, ma questa non è necessariamente la regola. La classe dimostrativa MainActivity è un attività. Le attività sono probabilmente il modello più diffuso in Android, e si realizzano estendendo la classe base android.app.activity. Servizio Un servizio gira in sottofondo e non interagisce direttamente con l utente. Ad esempio può riprodurre un brano MP3, mentre l utente utilizza delle attività per fare altro. Un servizio si realizza estendendo la classe android.app.service. Broadcast Receiver Un Broadcast Receiver viene utilizzato quando si intende intercettare un particolare evento, attraverso tutto il sistema. Ad esempio lo si può utilizzare se si desidera compiere un azione quando si scatta una foto o quando parte la segnalazione di batteria scarica. La classe da estendere è android.content.broadcastreceiver. Content Provider I Content Provider sono utilizzati per esporre dati ed informazioni. Costituiscono un canale di comunicazione tra le differenti applicazioni installate nel sistema. Si può creare un Content Provider estendendo la classe astratta android.content.contentprovider. Un applicazione Android è costituita da uno o più di questi elementi. Molto frequentemente, contiene almeno un attività, ma non è detto che debba sempre essere così. I pacchetti APK Le applicazioni Android sono distribuite sotto forma di file APK (Android Package). Al loro interno vengono raccolti gli eseguibili in formato DEX, le eventuali risorse associate ed una serie di descrittori che delineano il contenuto del pacchetto. In particolare, nel cosiddetto manifesto, vengono dichiarate le attività, i servizi, i provider ed i receiver compresi nel pacchetto, in modo che il sistema possa agganciarli ed azionarli correttamente. Torniamo, in Eclipse, sul progetto CiaoMondoAndroide. Al suo interno troverete un file chiamato AndroidManifest.xml, fatto come segue: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="example.helloandroid" android:versioncode="1" Pagina 11

android:versionname="1.0" > <uses-sdk android:minsdkversion="8" android:targetsdkversion="17" /> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="example.helloandroid.mainactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest> È il manifesto descrittore citato poco fa. Al suo interno potete e dovete dichiarare i componenti del vostro software. Eclipse, all atto di creazione del progetto, ha già eseguito su di esso alcune configurazioni iniziali. Ad esempio ha registrato l attività MainActivity, ha specificato le proprietà generali dell applicazione ed ha anche generato ed impostato delle icone per il programma (res/drawable-qualcosa/ic_launcher.png). Ovviamente queste scelte possono essere alterate, e nuovi componenti possono essere aggiunti al progetto. Con lo speciale editor visuale messo a disposizione da Eclipse, vi risulterà tutto molto semplice: è sufficiente fare un po di pratica ed approfondire di volta in volta l aspetto d interesse. Una volta che il lavoro è stato completato, è possibile esportare il file APK da distribuire ai possessori di un sistema Android. Prima di distribuire in giro il pacchetto è però necessario apporre su di esso una firma digitale. In caso contrario, Android non potrà installarne i contenuti. Questo è l unico vincolo imposto dal sistema. Il fatto che un pacchetto debba essere firmato non deve preoccupare lo sviluppatore: non è necessario che una certification authority riconosca la chiave utilizzata per la firma. Di conseguenza è possibile firmare un pacchetto APK anche servendosi di un certificato fatto in casa. In parole semplici: non bisogna pagare nessuno perché i nostri software siano autorizzati, possiamo fare tutto da noi. In Eclipse, ancora una volta, è questione di pochi clic: selezionate la radice del progetto, attivate la voce di menù File» Export e scegliete il wizard Export Android Application. Pagina 12

Figura 15 - Selezione del wizard di esportazione di un'applicazione Android. Al secondo step del wizard di generazione del pacchetto, vi verrà chiesto da dove prelevare la firma digitale. Solitamente gli oggetti di questo tipo vengono raccolti e conservati all interno di un keystore. In un keystore, cioè, ci sono più firme digitali. Se non avete mai formato un keystore in precedenza, o se semplicemente ne volete iniziare uno nuovo, selezionate l opzione Create new keystore. Figura 16 - La selezione o creazione di un keystore. Il keystore verrà conservato all interno di un file, il cui percorso va obbligatoriamente specificato. Scegliete dove riporre il keystore e date un nome a vostro piacimento a file ( keystore.ks, nel caso in immagine). Non c è bisogno di usare un estensione particolare per il nome del file. È invece buona pratica proteggere i propri keystore con una password, in modo che le nostre firme digitali non possano essere utilizzate nel caso in cui qualcuno ci rubi il file. Pertanto abbiate cura di impostare una password sufficientemente sicura. Siccome il keystore appena creato è vuoto, il passo successivo del wizard ci fa creare una chiave, cioè una firma digitale. Dobbiamo inserire il nome della chiave (detto alias), la password per l utilizzo della chiave, una validità in anni (di solito si usa il valore 25) ed i dati anagrafici di base del firmatario (nome e cognome). Pagina 13

Figura 17 - La maschera per la creazione di una nuova chiave di firma digitale. Superata la fase di creazione o selezione del keystore e della chiave, il wizard fa scegliere dove salvare il pacchetto APK che sarà generato. Scegliete la destinazione e concludete l operazione. È fatta: il pacchetto è stato generato e firmato. Potete ora installarlo su un dispositivo Android reale, in plastica, metallo e silicio. Figura 18 - Esportazione dell APK, cioè del file di installazione dell applicazione. Pagina 14