Introduzione ad Android Studio
Android Studio e struttura di un progetto Android
Laboratorio 0
Programmazione di Sistemi Mobile – AA 2025/2026 1
Laboratorio
• Laboratorio 2.2: Parte Android
• Laboratorio 3.1: Parte iOS
Programmazione di Sistemi Mobile – AA 2025/2026 2
Qualche info su Android Studio
• Android studio è l’IDE (Integrated Development Environment) ufficiale per
sviluppare app Android
• È multi-piattaforma (ciò permette di sviluppare senza vincoli di sistema
operativo)
– Disponibile per sistemi operativi Windows, macOS e Linux
• È basato sull’IDE IntelliJ IDEA di JetBrains, che è lo standard di fatto per lo
sviluppo con Kotlin, ed arricchito con funzionalità specifiche per la creazione
di app Android
• Annunciato nel 2013, prima release nel luglio 2014, ha sostituito Eclipse come
IDE ufficiale
• L’ultima major version è Android Studio Meerkat | 2024.3.1
Programmazione di Sistemi Mobile – AA 2025/2026 3
Android Studio
• Mette a disposizione
– Un build system basato su Gradle
– Un emulatore veloce e ricco di funzionalità
– Un ambiente unificato in cui è possibile sviluppare per tutti i dispositivi Android
– Un sistema in grado di applicare modifiche al codice e alle risorse dell'app in esecuzione senza
doverla riavviare
– Funzionalità di templating per semplificare l’importazione di codice di esempio
– Integrazione con Git e GitHub per il controllo di versione
– Strumenti e framework per il testing
– Strumenti automatici per monitorare prestazioni, grado di usabilità, compatibilità delle versioni e
altri problemi
– Supporto a C ++ e NDK (Native Development Kit)
– Supporto integrato per Google Cloud Platform
– …
Programmazione di Sistemi Mobile – AA 2025/2026 4
Version name
• Ad ogni major version di Android Studio viene assegnato il
nome di un animale, in ordine alfabetico dalla A alla Z:
– Arctic Fox
– Bumblebee
– Chipmunk
– Dolphin
–…
– Otter
– Panda
Programmazione di Sistemi Mobile – AA 2025/2026 5
Nota sulla versione
• La versione che utilizzeremo in laboratorio è
Android Studio Otter 2 Feature Drop | 2025.2.2 Patch 1,
rilasciata a Dicembre 2025
• Tutte le novità sono descritte qui:
[Link]
• È appena uscita la stable di
Panda 1 | 2025.3.1 Android Studio
Viene migliorato ed
arricchito continuamente!
Programmazione di Sistemi Mobile – AA 2025/2026 6
Build your first app
1. Installare Android Studio
2. Creare un progetto Android 😀
3. E… basta! Android Studio si occuperà di installare tutto ciò
che serve, inclusa l’SDK e un emulatore per un Andoid Virtual
Device (in lab useremo un AVD con Android 16)
Programmazione di Sistemi Mobile – AA 2025/2026 7
SDK Platform release
[Link]
/releases/platforms
Programmazione di Sistemi Mobile – AA 2025/2026 8
Installazione
• Le slide e le esercitazioni di laboratorio si basano sulla versione
2025.2.2 Patch 1 di Android Studio
– La stessa attualmente installata nei PC di laboratorio
• Nel vostro portatile/PC personale, installate Android Studio e il
sistema si occuperà di scaricare tutto il necessario
– Download: [Link] –
preferibilmente la versione 2025.2.2 Patch 1
– Poi seguite il tutorial che trovate qui:
[Link] per tutti i sistemi operativi
supportati
MA è davvero molto semplice!
Programmazione di Sistemi Mobile – AA 2025/2026 9
Primo avvio (solo per i PC di laboratorio)
• Al primo avvio, Android Studio scarica una serie di componenti
necessari per lo sviluppo
• In laboratorio, la versione corretta di questi componenti è già
installata in C:\android-sdk
Programmazione di Sistemi Mobile – AA 2025/2026 10
Primo avvio (solo per i PC di laboratorio)
• È quindi consigliabile procedere come
segue:
– Nel setup wizard del primo avvio,
annullare eventuali download avviati da
Android Studio
– Arrivati alla schermata iniziale, fare click
su More actions -> SDK Manager
– Cambiare la location dell’SDK Android in
C:\android-sdk
– Fine! Android studio dovrebbe rilevare
che non è necessario installare alcun
componente aggiuntivo
Programmazione di Sistemi Mobile – AA 2025/2026 11
Primo avvio (solo per i PC di laboratorio)
• È quindi consigliabile procedere come
segue:
– Nel setup wizard del primo avvio,
annullare eventuali download avviati da
Android Studio
– Arrivati alla schermata iniziale, fare click
su More actions -> SDK Manager
– Cambiare la location dell’SDK Android in
C:\android-sdk
– Fine! Android studio dovrebbe rilevare
che non è necessario installare alcun
componente aggiuntivo
Programmazione di Sistemi Mobile – AA 2025/2026 12
Android Studio – Start a new Project
Programmazione di Sistemi Mobile – AA 2025/2026 13
Android Studio – Start a new Project
• A meno di casi particolari, è
sempre consigliabile partire da
una Empty Activity per avere
un maggiore controllo
sull’applicazione
Programmazione di Sistemi Mobile – AA 2025/2026 14
Android Studio – Start a new Project
Utilizzeremo Android 8
come SDK minima
Programmazione di Sistemi Mobile – AA 2025/2026 15
Android Studio – Start a new Project
Percenutale di device
compatibili in base alla
min SDK scelta
Programmazione di Sistemi Mobile – AA 2025/2026 16
Progetto Android Studio
• Un progetto Android Studio definisce il
workspace di un’app.
• Contiene tutto il codice sorgente, l’elenco
delle dipendenze, la configurazione della
build, e gli asset utilizzati dall’app.
• Con la creazione di un progetto, Android
Studio crea la struttura di file e cartelle
necessaria (visibile sulla finestra di sinistra
dell’IDE)
Programmazione di Sistemi Mobile – AA 2025/2026 17
Due parole su Gradle
• Android Studio utilizza Gradle come build system e gestore delle
dipendenze
– Con ulteriori funzionalità specifiche per Android fornite dal plug-in Android
per Gradle
• Questo build tool, benché controllabile da terminale, è integrato
direttamente nell’interfaccia di Android Studio
• Ma che cos’è? In due parole:
– è un sistema open source per l'automazione dello sviluppo, ispirato a
Apache Ant e Apache Maven, che permette di definire la configuarzione
del progetto tramite domain-specific language (DSL) dichiarativo basato su
Kotlin, al posto dei template XML usati da Apache Maven
Programmazione di Sistemi Mobile – AA 2025/2026 18
Processo di build di un’app
1. Il compilatore converte il codice sorgente in vari file DEX (Dalvik
EXecutable), che includono il bytecode da eseguire sui
dispositivi Android, e in risorse compilate.
2. L'APK Packager combina i file DEX e le risorse compilate in un
singolo file APK. Prima che l'applicazione possa essere
distribuita e installata su un dispositivo Android, tuttavia, l'APK
deve essere firmato.
3. L’APK Packager firma l'APK utilizzando il keystore di debug o di
release:
– Se l’app è una versione di debug, cioè un'applicazione da utilizzare
solo per i test, il packager la firma applicazione con il keystore di
debug. Android Studio configura automaticamente i nuovi progetti
con un keystore di debug.
– Se l’app è una versione di release che va pubblicata negli store, il
packager firma l'applicazione con il keystore di release.
4. Prima di generare l'APK finale, il packager ottimizza
l'applicazione in modo che utilizzi meno memoria quando viene
eseguita su un dispositivo.
5. Al termine del processo di build, si dispone di un APK di debug o
release della propria applicazione.
Programmazione di Sistemi Mobile – AA 2025/2026 19
Struttura di un progetto Gradle
• Un progetto Gradle può essere organizzato in vari moduli e viene
gestito principalmente attraverso due tipologie di file:
– [Link]: identifica una directory come root di un progetto
Gradle e permette di configurare aspetti comuni all’intero progetto, come
il nome e l’elenco delle repository da cui scaricare le dipendenze.
– [Link]: identifica una directory come root di un modulo e ne
configura aspetti come: l’elenco delle dipendenze, le opzioni in fase di
compilazione e, nel caso di progetti Android, l’SDK minima e target. È
inoltre possibile creare un file [Link] nella root del progetto
per raggruppare configurazioni comuni a tutti i moduli
Programmazione di Sistemi Mobile – AA 2025/2026 20
Struttura di un progetto Android
• Cartella app
– Modulo di default
• Cartella manifests
– Include in file [Link]
• Cartella java / kotlin+java
– Include tutto il codice Kotlin e/o Java
• Cartella res
– Include varie risorse come
immagini, colori, valori, perlopiù in formato XML
• Cartelle java / kotlin+java o res generated
– Contengono file autogenerati che NON
vanno modificati dallo sviluppatore
Programmazione di Sistemi Mobile – AA 2025/2026 21
View di Android Studio
• Attenzione! La struttura del progetto mostrata di default nella sidebar di
Android Studio non è quella effettiva salvata nel file system, ma una
versione semplificata chiamata Android view.
• È possibile visualizzare la struttura di file e cartelle tramite le view
Project o Project Files
Programmazione di Sistemi Mobile – AA 2025/2026 22
Moduli
• Sono un costrutto di Gradle che permette di
suddividere un progetto in vari blocchi
(moduli) autonomi, in modo da semplificarne
lo sviluppo e la manutenzione.
• Ogni modulo di un’app Android è configurabile
tramite un file [Link], e può
contenere codice sorgente, risorse, file
manifest e altro.
• Quando inizializza un nuovo progetto, Android
studio crea automaticamente un modulo
predefinito di nome app.
Programmazione di Sistemi Mobile – AA 2025/2026 23
Esempi di suddivisione in moduli
• Alcune tipologie di moduli in cui può essere suddiviso un
progetto Android:
– App, ad esempio: Phone & Tablet Module, Wear OS Module, Android
TV Module, Glass Module.
– Library: raggruppano codice riutilizzabile, che può essere usato come
dipendenza in altri moduli dell'app o importato in altri progetti.
– Google App Engine e Google Cloud: codice di Google Cloud che fa da
backend per le app del progetto.
Programmazione di Sistemi Mobile – AA 2025/2026 24
[Link] - location
Programmazione di Sistemi Mobile – AA 2025/2026 25
Manifest
Componente Activity
Intent filter
Programmazione di Sistemi Mobile – AA 2025/2026 26
Manifest
Gli attributi allowBackup,
dataExtractionRules e
fullBackupContent permettono di
impostare le regole per il backup
automatico dei dati dell’utente
dell’applicazione.
Programmazione di Sistemi Mobile – AA 2025/2026 27
Manifest
Gli attributi icon e label
permettono di associare una piccola
immagine e una label testuale al
componente. Se settato nell’app
(come in questo esempio),
diventano il default per tutti i
componenti activity.
Si possono associare icon e label
anche a <intent-filter> per
definire l’icona e il testo che verrà
presentato all’utente. Di default
questi valori sono ereditati
dall’elemento padre (che sia
<activity> se esplicitati, o
<application>)
Programmazione di Sistemi Mobile – AA 2025/2026 28
Manifest
Gli attributi supportsRtl, theme e
targetApi permettono
rispettivamente di specificare il
supporto per i layout right-to-left,
settare un tema specifico
all’applicazione e definire l’SDK
minima per far girare l’applicazione.
Programmazione di Sistemi Mobile – AA 2025/2026 29
Android Studio - Interfaccia
1 2
1 Toolbar: permette di eseguire diverse
azioni, incluso l’avvio dell’app.
2 Editor: contiene un tab per ogni file
aperto e permette di modificare il 3
codice.
3 Tool window bar: contiene i pulsanti
che consentono di espandere o
comprimere le singole tool windows.
4 Tool windows: consentono di 4
accedere ad attività specifiche come
la gestione dei progetti, la ricerca, il
controllo di versione e altro ancora.
5 Navigation e status bar: permette di
navigare il progetto e ne mostra lo
stato, con particolare focus sul file
attualmente selezionato nell’editor.
5
Programmazione di Sistemi Mobile – AA 2025/2026 30
Layout dell’editor
• Se si apre un file che contiene dei componenti, è possibile
scegliere come visualizzarlo all’interno dell’editor.
• Tre modalità: 1. Code 2. Design 3. Entrambe
Programmazione di Sistemi Mobile – AA 2025/2026 31
Resource Manager
1 2 3 4
• Permette di
1 Aggiungere una nuova risorsa al progetto. È possibile aggiungere
immagini raster o vettoriali, font, file, o importare drawable.
2 Filtrare le risorse in base a un modulo selezionato.
3 Cercare una risorsa in tutti i moduli del progetto. 5
4 Visualizzare le risorse in base al tipo.
5 Applicare filtri avanzati, come filtrare le risorse utilizzate dai moduli
locali, dalle librerie esterne e dal framework Android. 6
6 Visualizzare l'anteprima delle risorse. Facendo clic con il tasto destro
del mouse su una risorsa, si apre un menu in cui è possibile
rinominarla e cercare il punto dell’app in cui è utilizzata.
Programmazione di Sistemi Mobile – AA 2025/2026 32
Connect to Firebase
• Firebase è una piattaforma di Google per la
creazione di app, videogiochi e siti web, che aiuta a
velocizzare lo sviluppo e far crescere la user base.
• Fornisce varie funzionalità complementari, che si
possono abilitare in base alle necessità, come
autenticazione, database, storage di file e analitica.
• Per semplificarne ulteriormente l’adizione,
l’Assistant di Android Studio offre una finestra
dedicata a Firebase, tramite cui è possibile
integrarne le funzionalità all’interno di un progetto
Android.
[Link]
Programmazione di Sistemi Mobile – AA 2025/2026 33
Eseguire l’app
• Due possibilità
– Su un device fisico
• Con debugging USB o wireless abilitato
• Connesso al PC con un cavo o accoppiato tramite Wi-Fi
[Link]
– Sull’emulatore di Android studio
• Soluzione che useremo nei laboratori
• Richiede la creazione di un Android Virtual Device (AVD)
• Caldamente consigliato: AVD con l’immagine di sistema di Android 16 con Google
Play
• Consigliato: AVD che utilizza Pixel 9 come dispositivo
Programmazione di Sistemi Mobile – AA 2025/2026 34
Android Studio – Emulator
Programmazione di Sistemi Mobile – AA 2025/2026 35
Android Studio – Run app
- Basta fare click su Run!
- Android Studio avvia l’emulatore
configurato e vi installa l’app.
- Dopo “qualche” secondo, potrete
vedere il vostro “Hello, Android!”.
Programmazione di Sistemi Mobile – AA 2025/2026 36
Monitor the build process
Programmazione di Sistemi Mobile – AA 2025/2026 37
Monitor the log
Programmazione di Sistemi Mobile – AA 2025/2026 38
Domande?
Programmazione di Sistemi Mobile – AA 2025/2026 39
Riferimenti
• Documentazione Android Developers
[Link]
• Download di Android Studio
[Link]
• Guida all’installazione
[Link]
• Gradle
[Link]
• Firebase
[Link]
Programmazione di Sistemi Mobile – AA 2025/2026 40