Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Android
1
12/10/15
Release
Android
Aprile
2009 Settembre
2009 Ottobre
2009 Maggio
2010 Dicembre
2010
Febbraio 2011 Ottobre 2011 Luglio 2012 Ottobre 2013 Novembre 2014
Ottobre
2015
3
Personalizzazione
Release
Android
della
schermata
di
Home
Digitazione
vocale
e
controllo
vocale
Aprile 2009 Settembre 2009 Ottobre 2009 Maggio 2010 Dicembre 2010
Introduzione
del
sistema
ART
Versione
ottimizzata
Febbraio
2011 Ottobre
2011 Luglio
2012 Ottobre
2013
(Android
RunTime) Novembre
2014
per
i
tablet
2
12/10/15
Vantaggi
È ampiamente diffuso
Progettato per smartphone e tablet, ma utilizzabile
anche su altri dispositivi (wearable, auto, tv, ecc.)
Permette di modificare e distribuire il software
liberamente
Dispone di un SDK per facilitare lo sviluppatore
Sfrutta un linguaggio noto: Java
Fornisce una ricca documentazione reperibile on-‐line
Dispone di una vasta comunità di sviluppatori con cui
confrontarsi
Architettura
3
12/10/15
Eclipse
4
12/10/15
Android Studio
5
12/10/15
11
12
6
12/10/15
13
Testare
un’App
In
fase
di
sviluppo,
esistono
due
m odi
per
eseguire
e
testare
la
propria
app:
◦ Usando
l’AVD:
Permette
di
simulare
il
funzionamento
su
differenti
dispositivi
È
oneroso
dal
punto
di
vista
computazionale
◦ Usando
il
proprio
dispositivo
Android
Non
è
necessario
possedere
un
computer
potente
Permette
di
verificare
il
funzionamento
solo
sul
dispositivo
scelto
In
Windows
necessita
l’installazione
dei
driver
del
dispositivo
14
7
12/10/15
15
8
12/10/15
Android
RunTime
Sostituisce Dalvik a partire dalla versione 5.0 Lollipop
È stato introdotto in anteprima in Android 4.4 KitKat
Dalvik è basata sulla tecnologia JIT (just-‐in-‐t ime): compilazione
in tempo reale
ART è basata sulla tecnologia AOT (ahead-‐of-‐t ime):
compilazione al momento dell’istallazione
◦ Vantaggi: increme nto di pres tazioni e gestione delle risorse
in fase di esecuzione
◦ Svantaggi: aumentano i tempi di installazione
17
18
9
12/10/15
Broadcast Receiver:
◦ Utilizzato quando si intende inte rcettare un particola re
evento
◦ Ad esempio lo si può utilizzare se si vuole compie re
un’azione quando si scatta una foto o quando parte la
segnalazione di batteria scarica
◦ Estende la classe android. Content. BroadcastReceiver
Content Provider:
◦ Utilizzato per accedere a dati e informazioni
◦ costituisce un canale di comunicazione tra le differenti
applicazioni installate nel sistema
◦ Estende la classe astratta android.content.ContentProvider.
20
10
12/10/15
Hello,
World!
Android Studio: creiamo la nostra prima Activity!
Dalla toolbar : New > New Project
Impostiamo il nome, il dominio dell’azienda e la posizione del
progetto
21
Hello,
World!
Selezioniamo la piattaforma di inte resse (Smartphone/Tablet,
Wear, TV, Auto o Glass)
Scegliamo la versione di A ndroid m inima per utilizzare la nostra
App
22
11
12/10/15
Hello,
World!
Selezioniamo fra i vari template disponibili quello di interesse
(in questo caso Blank Activity) e impos tiamo il nome
dell’activity principale
23
Hello,
World!
Android Studio crea in maniera automatica l’applicazione
“Hello, World!”
24
12
12/10/15
Struttura
del
progetto
25
Classi
e
file
aperti
26
13
12/10/15
28
14
12/10/15
29
Il file Manifest
30
15
12/10/15
Il
file
Manifest
Ad esempio:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.appwidgethome">
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.INTERNET"/>
<application android:allowBackup="true" android:label="@string/app_name"
android:icon="@mipmap/ic_launcher" android:theme="@style/AppTheme">
<receiver
android:icon="@drawable/icon"
android:label="Example Widget"
android:name="MyWidgetProvider" >
<intent-filter >
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_info" />
</receiver>
<receiver android:name=".AlarmManagerBroadcastReceiver"/>
</application>
</manifest>
31
L’interfaccia
utente
Usa una gerarchia di oggetti delle classi View e
ViewGroup
◦ View: UI widget come bottoni o aree di testo
◦ ViewGroup: contenitori invisibili che definiscono come gli
elementi figli devono essere posizionati
32
16
12/10/15
L’interfaccia
utente
Elementi derivati dalla classe ViewGroup: i layout
LinearLayout RelativeLayout WebView
Button RadioButton
CheckBox NumberPicker
33
Il layout
34
17
12/10/15
Il
layout
STATICAMENTE:
Dichiarare
gli
elementi
grafici
nel
file
. xml
Selettore
del
dispositivo
e
della
risoluzione
dello
schermo
35
Il
layout
STATICAMENTE:
Dichiarare
gli
elementi
grafici
nel
file
. xml
Selettore
dell’orientazione
dello
s chermo
36
18
12/10/15
Il
layout
STATICAMENTE:
Dichiarare
gli
elementi
grafici
nel
file
. xml
37
Il
layout
STATICAMENTE:
Dichiarare
gli
elementi
grafici
nel
file
. xml
Struttura
gerarchica
di
layout
e d
elementi
38
19
12/10/15
Il
layout
STATICAMENTE:
Dichiarare
gli
elementi
grafici
nel
file
. xml
39
Il
layout
STATICAMENTE:
Dichiarare
gli
elementi
grafici
nel
file
. xml
40
20
12/10/15
I
pacchetti
APK
Le
applicazioni
Android
sono
distribuite
sotto
forma
di
file
APK
( Android
Package)
Contengono:
eseguibili
in
f ormato
DEX,
eventuali
risorse
associate
e
i
descrittori
che
definiscono
il
contenuto
del
pacchetto
Per
poter
essere
distribuita
è
necessario
apporre
una
firma
digitale
Non
è
necessario
che
una
certification
authority
riconosca
la
firma:
è
possibile
usare
un
certificato
“fatto
in
casa”
41
42
21
12/10/15
Android
Wear
L’uso
di
Android
negli
ultimi
anni
si
è
esteso
anche
ad
altri
tipi
di
dispositivi
Android
Wear
Ambiente
di
sviluppo
per
Android
Wear:
Eclipse o
Android
Studio
(Google
consiglia
Android
Studio)
Sfrutta
le
API
di
Livello
20
(4.4
KitKat Wear)
Per
creare
un
nuovo
progetto
Wear
in
Android
Studio:
File
-‐>
New
Project
44
22
12/10/15
Android
Wear
Le
applicazioni
Wear
non
possono
essere
impacchettate
separatamente e
messe
in
Google
Play
store
È
necessario
impacchettare
l’applicazione
mobile
e
quella
Wear
nello
stesso
APK.
Quando
l’utente
istalla
l’App
sullo
smartphone,
essa
v iene
automaticamente
istallata
sul
dispositivo
associato
45
Android TV
23
12/10/15
Android
TV
Nella
progettazione
o
nell’adattamento
di
applicazioni
per
Android
TV
è
necessario
tenere
in
considerazione
alcuni
fattori:
47
Android
TV
Per
creare
un
nuovo
progetto
in
Android
Studio:
File
-‐>
New
Project
Nella
seconda
schermata
del
wizard,
selezionare
il
modulo
Android
TV
48
24
12/10/15
Android
TV
Una
volta
creato
il
progetto,
è
necessario
apportare
delle
modifiche
al
file
Manifest.xml
◦ Specificare
che
non
è
richiesto
il
supporto
touchscreen
<uses-feature android:name="android.hardware.touchscreen"
android:required="false" />
◦ Dichiarare
l’uso
della
libreria
Leanback (evita
la
visualizzazione
di
s pazi
b ianchi
attorno
ai
bordi
dello
schermo)
<uses-feature android:name="android.software.leanback"
"android:required="true" />
49
Android Auto
25
12/10/15
Android
Auto
Sfrutta
le
API
di
livello
21
o
superiori
Necessita
della
libreria
di
supporto
v4
support library,
che
contiene
la
classe
NotificationCompat.CarExtender
È
necessario
aggiungere
delle
righe
di
codice
nel
file
Minefest.xml
<applic ation>
...
<me ta-dat a and roid: name=" com.g oogle .andro id.gm s
.car.ap plicat ion"
an droid: resou rce=" @xml/a utomo tive_ app_de sc"/>
52
26
12/10/15
27
12/10/15
UpTech Home
UpTech RSA
28
12/10/15
Riconoscimento facciale
29
12/10/15
Elaborazione
Colore
dell’immagine
Testo B 2 52
NOME
D EL
MEDICINALE
60
30