-
Programmazione Android A cura di Carlo Pelliccia
Lezione 1 Primi passi con Android
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, un protagonista del mercato di smartphone e tablet.
Nonostante il suo successo sia piuttosto recente, la sua storia
lunga e le sue fondamenta solide. Grazie alle strategie di Google,
che si tenuta vicina al mondo dellOpen Source, esiste oggi una
comunit molto ampia di sviluppatori Android, estremamente
produttiva e collaborativa, che altri sistemi mobili non possono
vantare. Decine di migliaia di applicazioni sono state sviluppate,
e molte altre ancora lo saranno nei prossimi tempi. Il sistema,
sbarcato recentemente anche sul terreno dei tablet, stabile e
maturo, ed offre potenzialit molto ampie.
Come fatto Android Android , insieme, un sistema operativo, una
piattaforma di sviluppo ed una collezione di software di base per
lutilizzo di un dispositivo portatile. Essendo un sistema di
moderna fattura, abbastanza complesso. Anche se il suo target sono
i dispositivi mobili, larchitettura 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, versione 2.6. Direttamente nel
kernel sono inseriti i driver per il controllo dellhardware del
dispositivo: driver per la tastiera, lo schermo, il touch screen,
il Wi-Fi, il Bluetooth, il controllo dellaudio e cos via. Sopra il
kernel poggiano le librerie fondamentali, anche queste tutte
mutuate dal mondo Open Source. Da citare sono senzaltro OpenGL, per
la grafica, SQLite, per la gestione dei dati, e WebKit, per la
visualizzazione delle pagine Web. Larchitettura prevede poi una
macchina virtuale ed una libreria fondamentale che, insieme,
costituiscono la piattaforma di sviluppo per le applicazioni
Android. Questa macchina virtuale si
-
Programmazione Android
Lezione 1 Primi passi con Android
Pagina 2
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
dellarchitettura 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 dellarchitettura, poggiano gli
applicativi destinati allutente finale. Molti, naturalmente, sono
gi inclusi con linstallazione 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 nellarco di questo corso.
Installazione dellAndroid 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. LAndroid SDK disponibile
gratuitamente per sistemi Windows, Linux e MacOS X. possibile
scaricarlo collegandosi allindirizzo:
http://developer.android.com/sdk/
Vi verr proposto di scaricare la pi recente versione
disponibile. Procedete pure al download del pacchetto adatto al
vostro sistema. Al momento della stesura di questa lezione, la
versione scaricabile dalla pagina la r18 (che sta per release 18),
ma se ne trovate di pi recenti fate pure: non dovrebbero differire
troppo da quella presa qui a riferimento. Linstallazione del kit
veramente semplice. Lunica cosa di cui bisogna accertarsi, prima di
procedere, di soddisfare i requisiti di base. In particolare,
richiesto che il sistema disponga gi di un Java SDK (JDK) versione
5 o successiva. strettamente indispensabile soddisfare questo
requisito, poich Android si programma in Java, e senza un JDK non
possibile compilare il codice. Dopo aver verificato i requisiti,
possibile procedere. Prendete larchivio ZIP scaricato da Internet e
scompattatelo dove meglio preferite. Accedete alla cartella cos
ottenuta e lanciate lapplicazione SDK Manager, utile per completare
linstallazione e la configurazione dello strumento di sviluppo.
Figura 2 - L'SDK, al primo avvio, propone l'installazione delle
diverse piattaforme Android disponibili.
-
Programmazione Android
Lezione 1 Primi passi con Android
Pagina 3
Verr caricata una GUI che vi permette di gestire i device
virtuali ed i componenti aggiuntivi. Appena installato, lSDK
praticamente vuoto. Contiene solo gli strumenti di sviluppo, ed al
suo interno non c traccia di alcuna versione del sistema Android.
Al primo avvio, dunque, viene eseguita unanalisi e proposto
allutente di scaricare allinterno dellSDK le diverse piattaforme
Android disponibili, che potranno essere successivamente utilizzate
per lo sviluppo ed il test della applicazioni. Procedete al
download e allinstallazione automatica dei componenti proposti
automaticamente o selezionati manualmente. Per seguire
efficacemente questo corso si consiglia il download dei pacchetti
Android 2.2 (API Level 8), che sono quelli qui presi a riferimento
per lapprendimento delle basi della programmazione della
piattaforma.
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
lemulatore. In questo modo anche possibile avviare
contemporaneamente sullo stesso PC due o pi dispositivi virtuali,
ad esempio per testare unapplicazione che fa interagire pi
smartphone, come una chat o un gioco multiplayer. NellSDK di
Android avviate il tool AVD Manager. Accederete cos allelenco dei
device virtuali configurati. Inizialmente lelenco vuoto. Create uno
o pi device virtuali, con il tasto New.
Figura 3 - La maschera di creazione di un nuovo dispositivo
virtuale.
Le informazioni da fornire sono:
Name: il nome che si vuole attribuire al dispositivo virtuale,
ad esempio Device1. Target: la piattaforma Android che sar
installata nel dispositivo. Lelenco a tendina
permette di scegliere fra le differenti piattaforme scaricate ed
integrate allinterno 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
-
Programmazione Android
Lezione 1 Primi passi con Android
Pagina 4
vuole riutilizzare una memoria virtuale esistente, sia una
dimensione di spazio, per creare una nuova memoria virtuale.
Snapshot: se abilitata, lopzione permette di avere delle
immagini dello stato del sistema, in modo da avviarne il
riavvio.
Skin: la risoluzione del dispositivo. Si pu specificare
manualmente o selezionare fra quelle predefinite.
Hardware: permette di impostare alcuni requisiti hardware del
dispositivo, come la densit dei pixel, la presenza di un
accelerometro e cos via.
Una volta creato, il nuovo dispositivo virtuale entrer a far
parte dellelenco gestito dallSDK, e potr quindi essere utilizzato
per eseguire il debug ed il test delle applicazioni.
Lemulatore Android Se non siete gi pratici nellutilizzo di
Android, prima di iniziare a programmare meglio che ci prendiate
confidenza. Esplorando le applicazioni di base potrete cos entrare
nellottica del sistema, per imparare i principi di funzionamento e
di design delle sue applicazioni. Potete avviare un dispositivo
virtuale dallinterno dellSDK, selezionandone uno creato in
precedenza ed attivando il tasto Start. Qualche istante di pazienza
(al primo lancio anche qualcosa in pi) e lemulatore 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 lambiente.
Figura 4 - L'emulatore Android.
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
lemulatore di terminale, che permette di avere una shell di sistema
per uninterazione di pi basso livello con il dispositivo.
-
Programmazione Android
Lezione 1 Primi passi con Android
Pagina 5
ADT per Eclipse Bench lAndroid SDK disponga di script che
automatizzano linstallazione delle applicazioni, il lancio
dellemulatore ed il debug del codice, lavorare in un ambiente
integrato, con ogni opzione a portata di clic, sicuramente pi
facile. Specie quando lambiente integrato si chiama Eclipse. Nel
sito di Android contattato in precedenza disponibile anche un
plug-in per la celebre piattaforma di sviluppo Open Source. Questo
add-on si chiama Android Development Tools for Eclipse, che
abbreviato diventa ADT. Il modulo, al momento della stesura di
questa lezione, funziona con le pi recenti versioni di Eclipse
(dalla 3.5 in poi). Pu essere installato direttamente dallinterno
della piattaforma di sviluppo. Avviate Eclipse ed eseguite il
wizard per linstallazione di nuovi componenti. Lo si fa con la voce
di men Help Install New Software. Giunti a destinazione,
specificate come fonte del plug-in il seguente indirizzo:
https://dl-ssl.google.com/android/eclipse/
Digitate lindirizzo, premete invio ed attendente che venga
presentata la lista dei componenti disponibili per il download.
Selezionateli tutti e procedete. Il plug-in per lo sviluppo del
software Android sar automaticamente scaricato ed installato.
Figura 5 - Installazione del plug-in ADT in Eclipse 3.5.
Dopo il riavvio di Eclipse, recatevi immediatamente nella
schermata delle preferenze dellambiente (voce di men Window
Preferences). Qui troverete disponibile la nuova categoria Android,
nellelenco sulla sinistra. Selezionatela.
-
Programmazione Android
Lezione 1 Primi passi con Android
Pagina 6
Figura 6 - La schermata di configurazione dell'ADT.
Impostate il percorso del vostro Android SDK: necessario affinch
Eclipse possa agganciare il kit di sviluppo. Durante questa fase
dovreste anche ricevere un pop-up per laccettazione della licenza
del plug-in.
Ciao, Mondo Androide! venuto il momento di utilizzare ADT e
lemulatore per programmare la nostra prima applicazione Android.
Naturalmente sar una variante del classico Ciao, Mondo!. Avviate
Eclipse. Grazie ad ADT disponete ora di una nuova categoria di
progetto, chiamata Android Project. Create un progetto di questo
tipo.
Figura 7 - Eclipse dispone ora di una categoria per progetti e
file Android.
-
Programmazione Android
Lezione 1 Primi passi con Android
Pagina 7
Figura 8 - La maschera di creazione di un progetto Android
(primo passo).
Al primo passo del wizard che vi sar proposto, assegnate al
progetto il nome CiaoMondoAndroide, valorizzando il campo Project
Name.
Figura 9 - La maschera di creazione di un progetto Android
(primo passo).
Il secondo passo del wizard serve per selezionare la versione
del sistema Android con la quale si intende sviluppare. Selezionate
Android 2.2 (significa che il vostro progetto sar sviluppato e
testato con Android 2.2, ma che funzioner anche con le versioni
successive del sistema).
-
Programmazione Android
Lezione 1 Primi passi con Android
Pagina 8
Figura 10 - La maschera di creazione di un progetto Android
(primo passo).
Al terzo ed ultimo passo del wizard specificate le seguenti
informazioni:
Application Name: Ciao Mondo Package name: example.helloandroid
Create Activity: CiaoMondoAndroideActivity Minimum SDK: 8 (Android
2.2)
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. In uno slancio di generosit,
Eclipse provveder anche alla creazione della prima classe della
soluzione, chiamata CiaoMondoAndroideActivity (come specificato
alla voce Create Activity) ed inserita nel pacchetto
example.helloandroid (come alla voce Package name). Aprite il
codice della classe e modificatelo alla seguente maniera:
package example.helloandroid;
import android.app.Activity; import android.os.Bundle; import
android.widget.TextView;
public class CiaoMondoAndroideActivity extends Activity {
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); TextView tv = new
TextView(this); tv.setText("Ciao, Mondo Androide!");
setContentView(tv); }
}
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.
-
Programmazione Android
Lezione 1 Primi passi con Android
Pagina 9
Figura 11 - Il progetto deve essere eseguito come una Android
Application.
Lemulatore verr caricato. Eclipse provveder automaticamente ad
installare al suo interno lapplicazione CiaoMondoAndroide, per poi
avviarla non appena loperazione sar completata. fatta: il vostro
primo software per Android sta girando davanti ai vostri occhi.
Figura 12 - 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 dellemulatore e dellapplicazione. 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, lutilizzo del debugger di Eclipse con lapplicazione Android.
Ponete un breakpoint sulla classe realizzata ed avviate di nuovo
emulatore ed applicazione, questa volta in modalit debug.
Provare con un dispositivo reale Lemulatore 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 lemulatore ha diversi limiti:
lento e non sempre riesce a riprodurre in maniera sufficientemente
realistica alcune condizioni, caratteristiche e funzionalit dei
device reali. Insomma, lemulatore 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. Accedete alle impostazioni del sistema, entrate
nel men Applicazioni, selezionate la voce Sviluppo e quindi
attivate la casella di spunta Debug USB.
-
Programmazione Android
Lezione 1 Primi passi con Android
Pagina 10
Questa modalit permette al telefono di essere utilizzato come
strumento di sviluppo, semplicemente collegandolo al PC con il cavo
USB ricevuto in dotazione con il telefono stesso.
Figura 13 - Impostazione della funzione Debug USB su un Samsung
Galaxy S.
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 14 La prospettiva DDMS di Eclipse permette il controllo
dei dispositivi (reali e virtuali) connessi.
Provate ora a rilanciare lapplicazione dimostrativa svolta in
precedenza. Se avete lemulatore ancora avviato, Eclipse vi chieder
su quale dei due dispositivi andare ad eseguirlo, altrimenti
utilizzer direttamente il dispositivo reale. Lapplicazione verr
installata ed avviata sul telefono.
-
Programmazione Android
Lezione 1 Primi passi con Android
Pagina 11
Figura 15 L'applicazione CiaoMondoAndroide eseguita in un
Samsung Galaxy S.
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
lAndroid SDK ed Eclipse, ad ogni modo, ci sembrer di utilizzare una
regolare Java Virtual Machine. Lambiente 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.
Aprite il documento al percorso docs/reference/packages.html, nel
vostro Android SDK. lindice 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 Sun. 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 linterazione 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 (in CiaoMondoAndroide abbiamo
usato TextView); 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 un eventuale 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 ledizione
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.
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.
-
Programmazione Android
Lezione 1 Primi passi con Android
Pagina 12
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 unapplicazione che
interagiscono con lutente 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 CiaoMondoAndroideActivity unattivit. 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 lutente. Ad esempio pu riprodurre un brano MP3,
mentre lutente 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
unazione 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.
Unapplicazione Android costituita da uno o pi di questi
elementi. Molto frequentemente, contiene almeno unattivit, 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:
-
Programmazione Android
Lezione 1 Primi passi con Android
Pagina 13
il manifesto descrittore citato poco fa. Al suo interno potete e
dovete dichiarare i componenti del vostro software. Eclipse,
allatto di creazione del progetto, ha gi eseguito su di esso alcune
configurazioni iniziali. Ad esempio ha registrato lattivit
CiaoMondoAndroideActivity, ha specificato le propriet generali
dellapplicazione 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
laspetto dinteresse. 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 lunico
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.
Figura 16 - 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 allinterno 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 lopzione Create new
keystore.
-
Programmazione Android
Lezione 1 Primi passi con Android
Pagina 14
Figura 17 - La selezione o creazione di un keystore.
Il keystore verr conservato allinterno di un file, il cui
percorso va obbligatoriamente specificato. Scegliete dove riporre
il keystore (nel caso in Figura 15, la directory C:\keystores) e
date un nome a vostro piacimento a file (android_keystore, nel caso
in immagine). Non c bisogno di usare unestensione 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 lutilizzo della chiave, una validit in anni (di solito
si usa il valore 25) ed i dati anagrafici di base del firmatario
(nome e cognome).
Figura 18 - 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 loperazione.
fatta: il pacchetto stato generato e firmato. Potete ora
installarlo su un dispositivo Android reale, in plastica, metallo e
silicio.
-
Programmazione Android
Lezione 1 Primi passi con Android
Pagina 15
Figura 19 - Esportazione dellAPK, cio del file di installazione
dellapplicazione.