Sei sulla pagina 1di 14

Quaderni di

TECNOLOGIE

Paolo Camagni
Riccardo Nikolassy
Emanuele Falzone

app 
Sviluppare per

Android
Edizione OPENSCHOOL
1 LIBRODITESTO
2 E-BOOK+
3 RISORSEONLINE
4 PIATTAFORMA HOEPLI
PAOLO CAMAGNI RICCARDO NIKOLASSY
EMANUELE FALZONE

SVILUPPARE APP
PER ANDROID
Quaderni di tecnologie

EDITORE ULRICO HOEPLI MILANO


Copyright © Ulrico Hoepli Editore S.p.A. 2017
Via Hoepli 5, 20121 Milano (Italy)
tel. +39 02 864871 – fax +39 02 8052886
e-mail hoepli@hoepli.it

www.hoepli.it

Tutti i diritti sono riservati a norma di legge


e a norma delle convenzioni internazionali
Quaderni di tecnologie
La collana Quaderni di tecnologie è costituita da volumi monograici che trattano singolar-
mente argomenti speciici inerenti a tecnologie di ambito informatico, elettrico, elettronico,
meccanico e meccatronico.
Lo scopo della collana è fornire al docente strumenti didattici speciici per singoli argomenti al
ine di realizzare o integrare un percorso formativo adatto al proprio piano di lavoro.
L’approccio didattico vuole essere estremamente “sempliicato” senza essere banale, mantenen-
do rigorosità nella terminologia ma essenzialità negli aspetti teorici privilegiando l’attività labo-
ratoriale.
I Quaderni sono quindi uno strumento didattico realmente duttile, che consente al docente di
costruirsi percorsi di insegnamento su misura, combinando argomenti/temi in funzione delle
proprie speciiche esigenze.
L’elenco completo dei titoli disponibili è riportato all’indirizzo web www.hoepliscuola.it.

Presentazione del volume


Android è un sistema operativo per dispositivi mobili sviluppato da Google Inc. basato sul kernel
Linux ma dove la quasi totalità delle utilities sono sostituite da sotware scritto in linguaggio
Java. È un sistema operativo progettato principalmente per dispositivi mobili quali smartphone
e tablet, con interfacce utente specializzate per televisori (Android TV), automobili (Android
Auto), orologi da polso (Android Wear), occhiali (Google Glass), che nel 2015 si attestava ad
una quota di mercato mobile di circa l’82%.

Android Studio è un ambiente integrato (IDE) per lo sviluppo di applicazioni per la piattaforma
Android che si sta difondendo ampiamente nel mondo dei programmatori per dispositivi mo-
bili. Android Studio consente allo sviluppatore di programmare in maniera più agevole rispetto
ai predecessori (Eclipse e Netbeans), oltre ad essere molto stabile. Il volume, attraverso esempi
pratici coinvolgenti e assai semplici da comprendere, tratta i tre aspetti essenziali dello sviluppo
di app per Android:
◗◗ gli elementi graici di programmazione (widget);
◗◗ i sensori;
◗◗ i database.
Struttura dell’opera
Database locali ·
L7
Nel caso in cui un
nostro contatto camb
utile per noi dispo iasse numero di
rre
re il numero di telefo di una funzione di aggiornamento, telefono sarebbe molto
no di un determina che permette di modi
to contatto. ica-

1
LEZIONE
ne
In questa lezio
impareremo
ERATIVO
IL SIS TEMA OP Z il concetto di
Z ad analizzare
Applicazione
i vari componenti
di una activity
ANDROID
Z il ciclo di vita

OSSERVAZIONI
Quando utilizziamo
il metodo update
Un aiuto per comprendere
attributo valore l’oggetto ContentValu
Android da modifi

a operativo per
dispositivi mob
Android è un sistem o su kernel Linux.
basat
ili sviluppato e cognome del contat care. Nel caso appena citato non es deve contenere solo le coppie
to, quindi includ è nostro interesse
iamo nel ContentValu
es solo il numero
modificare nome
di telefono.
e approfondire
da Google Inc. e Prova adesso! ESEMPIE
Definizione Apri l’esempio
Rubrica telefonica
il nucleo di un si- Z Utilizzare il metod
Il kernel costit uisce
o
AreaDigitale
query
e possiede il com- 1. Modifica il codice
stema operativo - in modo che per Z Applicare i metod
ai processi in esecu
PROVA ADESSO!
id ogni contatto si possa
Versioni di Andro rizzare anche email i:
pito di fornire, 2. Modifica il codice e un secondo numero di telefono.
memo- insert, delete, update
all’harware.
zione, l’accesso aggiungendo una
funzione che verific
contatto esiste,
e nel caso esista,
facce utente 3. Modifica il codice restituisca il numer a se il
e tablet, con inter orologi da in modo che l’utent o di telefono a esso
per smartphone ), Marco. e possa visualizzare associato.
o principalmente TV), automobili (Android Auto la lista dei contat
È stato progettat
ti il cui nome è

specializzate per
polso (Android
televisori (Android gle Glass) e altri.
Wear), occhiali
(Goo Intent
Quando la complessità
Per mettere in pratica,
dell’applicazione aume
stessa dividendon
e gli nta può essere
un’applicazione comp aspetti funzionali in diverse activi necessario organizzare la
osta da due activity. ty. Vedia
Per prima cosa creiam mo come realizzare
in itinere, quanto
o un nuovo proge

Android TV
Android Auto
Android Wear
Google Glass
1
tto
I sensori · L6
83
appreso nella lezione
Z¥¥M
I sensori dello smartphone L3 · L’interfaccia
grafica di Andro
Riconosce i gesti della mano id Studio
Misura l’intensità luminosa nelle con il sensore infrarossi
3 componenti (rosso, verde, blu)

ZOOM con il sensore luminoso (RGB) Riconosce la vicinanza


dell’utilizzatore (prossimità) con i Test Vero/Fals
Esercitiamoc
Legge la posizione della bussola
il sensore infrarossi
o
Indica, barrando
con il sensore magnetico Riconosce la rotazione del dispositivo la relativa casella
, se le seguenti afferm
con il giroscopio a tre assi azioni sono vere
1 Il Component o false.
Tree mostra gli errori

Piccole sezioni Rileva la chiusura/apertura della


cover con il sensore piezoelettrico
Riconosce il movimento del dispositivo
con l’accelerometro a tre assi
2 Il riquadro Prope
3 Il layout è definit
rties mostra le propri
o in linguaggio HTML
di compilazione.
età relative al contro
llo selezionato. VF
Legge temperatura e umidità
con . VF
Legge la pressione con il sensore

di approfondimento barometrico il sensore di temperatura/umidità


4 XML è un lingua
5 Il Project Explor
6 Il file manifest
ggio per la definiz
er ci consente di
ione di markup.
vedere lo stato delle
variabili durante
VF
VF
descrive la strutt l’esecuzione.
ura e i metadati VF
7 Il file manifest dell’applicazione.
è un file java.
8 La versione del VF
sistema operativo
dell’emulatore non VF
9 Per il debug delle influenza le presta
applicazioni possia zioni.
mo utilizzare solo VF
10 I Google USB
Driver servon o per emulatori.
Accelerometro da un minuscolo in- poter installare
nte, fatto di silicio e costituito 11 Per utilizzare emulatori. VF
L’accelerometro è un compone che con- un dispositivo per
Quest’ultima ha una certa lessibilità succede il debug basta colleg VF
volucro con all’interno una massa. come 12 Per poter attivar arlo con il cavo USB.
nti senza dover utilizzare una molla, e il debug USB dobbia
mo abilitare le opzion
sente di valutarne gli spostame ni. La massa è costituita da piccole
lamelle 13 Possiamo sempr
e scegliere su quale i sviluppatore.
VF
negli accelerom etri di grandi dimensio dispositivo esegui VF
14 Logcat mostr re l’applicazione.
serie di lamelle isse. a la quantità di RAM
mobili che si muovono tra una toccare le lamelle isse, si è pensato di misu-
15 Android Studio
utilizzata dall’ap
plicazione. VF
Poiché le lamelle mobili non possono i sse; la lamella integra uno strum
tra la lamella mobile e le due lamelle La diferenza ento di debugging.
SCHEDA DI AUTOVALUTAZIONE rare la diferenza di potenziale
mobile e quella issa fungono quindi
da armature del condensatore.
mobile e la lamella issa varia in
funzione della
16 È possibile inserir
17 L’esecuzione
e un breakpoint
step by step non
all’interno del codice
.
VF
VF
di potenziale che si ha tra la lamella più utile per lo smartpho ne; 18 I Toast vengo
consente l’ispezione
della variabili. VF
metro è il sensore
Alla fine di ciascuna lezione distanza tra le due lamelle. L’accelero
Apple fu la prima a scoprirne i
vantaggi, usando questo sensore
magine dello schermo in base all’orient
azione del dispositivo.
per orientare l’im-
no mostrati solo
se l’applicazione
è in esecuzione su
emulatore.
VF
VF

il lettore può valutare la qualità Giroscopio


Lo scopo principale del giroscopi
o è quello di mantenere l’orientam
Così come un oggetto tende a
ento grazie alla
conservare il
Domande a
risp
Indica la risposta
corretta barrando
osta multipla
la casella relativa.
conservazione del momento angolare., un oggetto ruotante tenderà a mantenere il 1 Quale tipo di errori
del suo apprendimento suo stato di moto rettilineo uniforme . Grazie a questa proprietà, il giroscopio è
suo moto rotatorio nella stessa
direzione
relativa dell’oggetto cui è solidale,
descriven done la
role che non appart
a. errori in fase di
sono causati dall’ut
engon o al lingua
esecuzione
ilizzo di pa-
ggio?
3 Quali delle seguen
ti
lizzate per indicar costanti posson o essere uti-
e la durata di un
in grado di rilevare la rotazione b. errori di allocaz
ione della memoria a. LENGTH_LON Toast?
59 c. errori di compil
azione b. LONG_LENGTH
G c. SHORT_LENG
d. errori logici TH
d. LENGTH_SHO
4 Le Permission RT
2 Qual è il nome all’interno del file
i · L7 della console di vono: manager descri-
Data base local Studio? debug di Android
a. quali utenti posson
a. GRADLE
c. LogMe b. come ogni compo o usare l’applicazione
b. Logcat nente interagisce
d. Toast c. quali tipi di input con gli altri
l’applicazione suppor
d. quanta memo
zione ria l’applicazione occupa ta
32

autovaluta
su disco

Scheda di Medio Ottimo


Scarso
{ {
{
Conoscenze
ite {
Android SQL {
di un data base {
gli elementi {
Riconoscere ti e pubblici {
e tra dati priva {
le differenz elper {
Individuare
Con osce re i met odi della class
i metodi della
e SQLiteOpenH
classe SQLiteD
atab ase
{
{
{
{ {
{
ESERCIZI
Con oscere di Preferences { {
il significato {
Comprendere @Overrid e {
annotazione {
il ruolo dell’
Riconoscere
Con oscere
il ruolo della
il ruolo della
class e Curs

classe Inten
or
t
{
{
{
{
{
{ Ampia sezione di esercizi per la verifica
Con oscere entValues
classe Cont
Con oscere
il ruolo della
Scarso Medio
{
Ottimo
{
delle conoscenze e delle competenze
elper {
Competenze {
penH
classe SQLiteO {
utilizzino la {
icazioni che {
Creare appl locale { {
base SQLite {
Creare un data ase { {
e SQLiteDatab {

AreaDigitale
la class
Applicare ride {
reate in over {
metodo onC {
Utilizzare il ride {
pgrade in over {
metodo onU {
Utilizzare il ase {
eada bleDatab {
metodo getR {
Applicare il taba se {

eBook+
riteb leDa {
metodo getW {
Applicare il { {
or
icare la classe Curs {
Appl { {
la class e Intent
Applicare
entValues
classe Cont
Applicare la

L’eBook+ che completa il volume presenta l’intero


testo in versione digitale, utilizzabile su tablet, LIM
89
e computer, e offre alcuni contenuti aggiuntivi.
Indice

Lezione 1 • Il sistema operativo Android Lezione 5 • Un’app completa:


Android 1 la calcolatrice 52
La struttura di un’applicazione Android 2 La calcolatrice 52
Il ciclo di vita di una activity 3 Esercitiamoci 56
Scheda di autovalutazione 6 Scheda di autovalutazione 57

AreaDigitale Lezione 6 • I sensori 58


◗◗ Versioni di Android
◗◗ I diversi tipi di tocco su display touch
SensorManager 58
La classe Sensor 61
Lezione 2 • Android Studio 7 Esercitiamoci 66
Scheda di autovalutazione 68
Android Studio 7
Creare un’applicazione 11
Lezione 7 • Database locali 69
Scheda di autovalutazione 16
Il salvataggio dei dati 69
Lezione 3 • L’interfaccia graica La classe SQLiteOpenHelper 71
di Android Studio 17 La gestione del database 74
Esercitiamoci 87
L’ambiente di lavoro 17
Scheda di autovalutazione 89
Il Project Explorer 19
Creare un emulatore 21 Come utilizzare il coupon per scaricare
Conigurazione dispositivo isico 24 la versione digitale del libro (eBook+)
e i contenuti digitali integrativi (risorse online) 90
Mandare in esecuzione un’app 26
Effettuare il debug
con Android Studio 27
Toast 30
Esercitiamoci 32
Scheda di autovalutazione 34

Lezione 4 • I widget 35
La modiica del layout 35
Widget di base 39
Altri widget molto utilizzati 45
Esercitiamoci 49
Scheda di autovalutazione 51
AreaDigitale
◗◗ Il layout degli elementi grafici
L’OFFERTA DIDATTICA HOEPLI
L’edizione Openschool Hoepli offre a docenti e studenti tutte le potenzialità
di Openschool Network (ON), il nuovo sistema integrato di contenuti e servizi
per l’apprendimento.

Edizione OPENSCHOOL

+ + +
LIBRO eBOOK+ RISORSE PIATTAFORMA
DI TESTO ONLINE DIDATTICA

Il libro di testo L’eBook+ è la versione Il sito della casa editrice La piattaforma didattica
è l’elemento cardine digitale e interattiva offre una ricca dotazione è un ambiente digitale
dell’offerta formativa, uno del libro di testo, di risorse digitali che può essere utilizzato
strumento didattico agile utilizzabile su tablet, per l’approfondimento in modo duttile, a misura
e completo, utilizzabile LIM e computer. e l’aggiornamento. delle esigenze della classe
autonomamente Aiuta a comprendere Nella pagina web dedicata e degli studenti.
o in combinazione con e ad approfondire al testo è disponibile Permette in particolare di
il ricco corredo digitale i contenuti, rendendo MyBookBox, condividere contenuti ed
offline e online. Secondo l’apprendimento più attivo il contenitore virtuale esercizi e di partecipare
le più recenti indicazioni e coinvolgente. Consente che raccoglie i materiali a classi virtuali.
ministeriali, volume di leggere, annotare, integrativi che Ogni attività svolta viene
cartaceo e apparati sottolineare, effettuare accompagnano l’opera. salvata sul cloud e rimane
digitali sono integrati ricerche e accedere Per accedere sempre disponibile
in un unico percorso direttamente alle ai materiali è sufficiente e aggiornata.
didattico. Le espansioni numerose risorse registrarsi al sito La piattaforma consente
accessibili attraverso digitali integrative. www.hoepliscuola.it inoltre di consultare
l’eBook+ e i materiali Scaricare l’eBook+ e inserire il codice coupon la versione online
integrativi disponibili è molto semplice. che si trova nella terza degli eBook+ presenti
nel sito dell’editore È sufficiente seguire pagina di copertina. nella propria libreria.
sono puntualmente le istruzioni riportate Per il docente nel sito È possibile accedere
richiamati nel testo nell’ultima pagina sono previste ulteriori alla piattaforma attraverso
tramite apposite icone. di questo volume. risorse didattiche dedicate. il sito www.hoepliscuola.it.
1LEZIONE

In questa lezione
IL SISTEMA OPERATIVO impareremo
◗ il concetto di Applicazione
ANDROID ◗ ad analizzare i vari componenti
◗ il ciclo di vita di una activity

Android
Android è un sistema operativo per dispositivi mobili sviluppato
da Google Inc. e basato su ºkernel» Linux.
Definizione
Il kernel costituisce il nucleo di un si-
stema operativo e possiede il com-
pito di fornire, ai processi in esecu- AreaDigitale
zione, l’accesso all’harware. Versioni di Android

È stato progettato principalmente per smartphone e tablet, con interfacce utente


specializzate per televisori (Android TV), automobili (Android Auto), orologi da
polso (Android Wear), occhiali (Google Glass) e altri.

Android TV Android Auto Android Wear Google Glass


1
L1 · Il sistema operativo Android

Definizione
Esistono numerose applicazioni,
Il termine app è una abbreviazione della paro-
chiamate ºapps», sviluppate per la app(lication). Si tratta di programmi eseguiti
questa piattaforma e, probabil- dall’utente tramite l’interfaccia grafica del termi-
mente, molte ancora compariran- nale Android. Le app sono di tipo Event Driven,
no in tempi futuri. cioè guidate dagli eventi gestiti all’interno del di-
spositivo mobile, come ad esempio il touch dello
schermo, le azioni dei sensori ecc. Possono essere
di due tipi: Applicazioni vere e proprie, che occupa-
no tutto lo schermo principale come per esempio
il browser web standard di Android, oppure Widget
AreaDigitale che occupano una piccola e fissata porzione dello
I diversi tipi di tocco
schermo principale come per esempio l’orologio
su display touch standard di Android.

La struttura di un’applicazione Android


Le applicazioni Android sono compo-
ste da quattro componenti fondamen-
tali:
◗◗Activity
◗◗Service
◗◗Broadcast receiver
◗◗Content provider
Le applicazioni sono formate da uno o
più di questi elementi, tuttavia ciascu-
na app contiene almeno una activity.

Activity
Le activity sono l’elemento fondamentale delle applicazioni, rappresentano il bloc-
co di codice che interagisce con l’utente utilizzando lo schermo e i dispositivi di
input messi a disposizione dal dispositivo. Utilizzano componenti GUI, come ad
esempio pulsanti, caselle di testo, pulsanti radio ecc., presenti nel package android.
widget. Le activity sono probabilmente il modello più difuso in Android, e vengo-
no create ereditando la classe android.app.Activity.

Service
I service sono programmi che vengono eseguiti in background e non interagiscono
direttamente con l’utente. Un servizio può ad esempio riprodurre un brano Mp3,
2
Il sistema operativo Android · L1

oppure leggere segnali dai sensori GPS, mentre l’utente utilizza delle activity per fa-
re altre operazioni. Un servizio si realizza estendendo la classe android.app.Service.

Broadcast Receiver
Un Broadcast Receiver viene utilizzato quando si deve intercettare un particolare
evento di sistema, come ad esempio quando si scatta una foto o quando parte la segna-
lazione di batteria scarica. La classe da estendere è android.content.BroadcastReceiver.

Content Provider
I Content Provider sono utilizzati per esporre dati e informazioni. Costituiscono
un canale di comunicazione tra le diferenti applicazioni installate nel sistema. Si
può creare un Content Provider estendendo la classe astratta android.content.Con-
tent Provider.
Z¥¥M
Activity e Applicazioni • Spesso questi due concetti vengono confusi. In generale:
◗◗Activity: sono associate a una singola e ben precisa attività che l’utente può svol-
gere, come ad esempio selezionare una data da un Time Picker, oppure inserire un
nome in una casella di testo.
◗◗Applicazione: contengono delle activity, oltre ad altri elementi, come ad esempio
l’applicazione Appunti possiede una speciica activity per modiicare una nota op-
pure una activity per gestire la data di un appuntamento.

Il ciclo di vita di una activity


I dispositivi mobili per i quali è stato creato il sistema operativo Android non pos-
siedono schermi capienti come quelli dei PC, per cui le inestre di esecuzione dei
programmi non possono essere aiancate o sovrapposte. Le activity Android sono
una sorta di programma in esecuzione con delle caratteristiche peculiari, tra cui
quella di essere esclusivamente proprietarie del display. In generale una activity pas-
sa attraverso i seguenti stati:
◗◗active o running: è visibile ed è in grado di ricevere dati in input;
◗◗paused: è parzialmente visibile, non riceve nessun input;
◗◗stopped: non è visibile, tuttavia ancora in esecuzione;
◗◗destroyed: è rimossa dalla memoria del dispositivo mobile.
Possiamo eseguire più attività simultaneamente, ma solo una potrà prendere il con-
trollo del display che, come abbiamo detto prima è una risorsa esclusiva. L’attività
3
L1 · Il sistema operativo Android

che occupa il display è in esecuzione e interagisce direttamente con l’utente, altre


attività ancora in esecuzione vengono, per così dire, ibernate in background, per
ridurre al minimo il consumo delle risorse del sistema, in questo caso della risor-
sa elaborazione da parte del microprocessore. L’utente può ripristinare un’attività
ibernata e riprenderla da dove l’aveva interrotta, riportandola in primo piano. L’at-
tività dalla quale si sta allontanando verrà ibernata e mandata in sottofondo al posto
di quella ripristinata.
Il cambio di attività può anche avvenire a causa di un evento esterno, come ad esem-
pio nel caso di una telefonata in arrivo: se il telefono squilla mentre si sta usando la
calcolatrice, quest’ultima sarà automaticamente ibernata e posta in background,
l’utente, conclusa la chiamata, potrà richiamare l’attività interrotta e riportarla in
vita, riprendendo i calcoli esattamente da dove li aveva interrotti (resumed).

Le attività ibernate non appesantiscono il microprocessore, in quanto non richiedono elabo-


razione. Pertanto il sistema operativo non mostra all’utente le attività ibernate. Le attività di
Android infatti non mettono a disposizione un pulsante di chiusura con cui terminarne l’esecu-
zione. L’utente può pertanto solo mandare un’attività in ibernazione.

La rimozione delle attività può avvenire spontaneamente, perché hanno terminato


i loro compiti, oppure da parte del sistema operativo che decide che non è più utile
oppure non ha più memoria a disposizione.
Vediamo quali sono i principali passaggi di stato di un’attività analizzando alcuni
metodi della classe Activity che possiamo rideinire per intercettare gli eventi di
nostro interesse: Activity
in esecuzione
L’activity
ritorna visibile Un’altra activity
viene avviata

L’activity
non è più visibile
L’utente avvia
l’activity

L’activity
torna visibile

4
Il sistema operativo Android · L1

Analizziamo i principali metodi della classe Activity in modo dettagliato:


protected void onCreate(android.os.Bundle savedInstanceState)
Viene richiamato alla creazione dell’attività, l’argomento savedInstanceState resti-
tuisce al metodo un eventuale stato dell’attività passato da un’altra istanza che è
stata terminata, l’argomento vale null qualora non vi sia alcuno stato precedente-
mente salvato.
protected void onRestart()
Viene richiamato per segnalare che l’attività è stata riavviata dopo essere stata pre-
cedentemente arrestata.
protected void onStart()
Viene richiamato per segnalare che l’attività viene resa visibile sullo schermo.
protected void onResume()
Viene richiamato per segnalare che l’attività inizia l’interazione con l’utente.
protected void onPause()
Viene richiamato per segnalare che l’attività termina l’interazione con l’utente.
protected void onStop()
Viene richiamato per segnalare che l’attività non è più visibile sullo schermo.
protected void onDestroy()
Viene richiamato per segnalare che l’applicazione è stata terminata.

Per poter modificare il codice di questi metodi dobbiamo eseguire un override del metodo del-
la classe madre, prestando attenzione a inserire nella prima riga di codice di ciascuno di questi
metodi il costruttore della classe base che stiamo ridefinendo attraverso l’operatore super.

5
L1 · IlScratch
sistemae BYOB:
operativo
ambienti
Android
visuali di programmazione

Scheda di autovalutazione
Conoscenze Scarso Medio Ottimo
Comprendere il concetto di applicazione (Apps)   
Conoscere il ciclo di vita di una activity   
Comprendere il ruolo del Sistema Operativo Android   
Distinguere gli elementi che rappresentano una activity   
Riconoscere gli elementi di una applicazione Android   

Competenze Scarso Medio Ottimo


Riconoscere il campo di applicazione di una activity   
Riconoscere il campo di applicazione di una Service   
Riconoscere il ruolo di una Broadcast Receiver   
Riconoscere il campo di applicazione di una Content Provider   
Comprendere la fase di ACTIVE e RUNNING di una activity   
Comprendere la fase di PAUSED di una activity   
Comprendere la fase di STOPPED di una activity   
Comprendere la fase di DESTROYED di una activity   

Potrebbero piacerti anche