CORSO PROGRAMMAZIONE ANDROID - I.I.S. ''G. COSSALI'' - ORZINUOVI - Marzo - Maggio 2019 Prof. Dario Tomasoni - Altervista
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
I.I.S. ‘’G. COSSALI’’ - ORZINUOVI
CORSO
PROGRAMMAZIONE
ANDROID
Marzo – Maggio 2019
Prof. Dario Tomasoni
1CHI
• Dario Tomasoni;
• Docente di Informatica;
• 1984;
• Ing. Delle Telecomunicazioni;
• Altro, curiosità?
2PERCHÈ
3PERCHÈ
• http://www.pcprofessionale.it/blog/mercato-app/
• http://www.fastweb.it/smartphone-e-gadget/il-mercato-
delle-app-nel-2016/
• https://www.ilsoftware.it/articoli.asp?tag=Alla-ricerca-di-
mobile-developers-sei-uno-sviluppatore-Candidati_15064
• http:/ /www.androidworld.it/2017/02/09/android-things-
developer-preview-2-456680/
4CALENDARIO
DATA ORARI DURATA DATA ORARI DURATA
06/03 14:20-16:50 2,5 17/04 14:20-16:50 2,5
13/03 14:20-16:50 2,5 03/05 14:20-16:50 2,5
18/03 14:20-16:50 2,5 06/05 14:20-16:50 2,5
20/03 14:20-16:50 2,5 08/05 14:20-16:50 2,5
22/03 14:20-16:50 2,5 09/05 14:20-16:50 2,5
25/03 14:20-16:50 2,5 10/05 14:20-16:50 2,5
27/03 14:20-16:50 2,5 13/05 14:20-16:50 2,5
01/04 14:20-16:50 2,5 15/05 14:20-16:50 2,5
03/04 14:20-16:50 2,5 16/05 14:20-16:50 2,5
15/04 14:20-16:50 2,5 17/05 14:20-16:50 2,5
5ORARIO
14:20 – 16:50
• Variazioni saranno comunicate per tempo;
• Arrivate in orario e uscite in orario. Ogni
ritardo o uscita anticipata deve essere
annotata (anche di 1 minuto);
• Pausa di qualche minuto ogni oretta;
6MAIL E REPOSITORY
• MailingList per comunicazioni?
• Sito per condivisione materiale?
• Spazio cloud per condivisione materiale?
• dario.tomasoni@gmail.com
• http://dariotomasoni.altervista.org
7COSA SERVE
• Testa accesa;
• Interesse e curiosità;
• Un browser;
• Uno smartphone Android;
Più avanti:
• Java;
• Android Studio;
• Aggiornamenti Android SDK;
• Proprio PC (o in alternativa quello della scuola);
8SUPPORTO
• Materiale online di tutte le salse, ufficiali
e non;
• Video tutorial ufficiali e non su Youtube;
• Libri ( ~ 230 €);
... cercherò di prepararvi del materiale per
ogni lezione e di rendervelo disponibile per
tempo …
9ORGANIZZAZIONE CORSO
• Il corso sarà suddiviso in 4 macroparti:
1. Introduzione e panoramica sul linguaggio e sugli
strumenti;
2. AppInventor e Thunkable
3. Android Studio
4. Progettino
10ORGANIZZAZIONE LEZIONI
• Le lezioni saranno suddivise in 3 momenti:
1. Introduzione "teorica" dell’argomento;
2. Espletamento ed esecuzione guidata di un
esempio ‘’pratico’’
3. Pause di recupero e/o approfondimento;
… non ci rincorre nessuno!??!!?
11DOMANDE?
Domande?
• Quanti hanno partecipato a un corso simile?
• Quanti hanno esperienza di programmazione "extra-scolastica"?
12ANDROID
• Android è un sistema operativo per dispositivi mobili
sviluppato inizialmente da Android Inc. e acquisito da
Google nel 2005.
• Android è stato sviluppato basandosi su diverse
versioni del Kernel Linux; ciò rende questo sistema
operativo diverso dagli altri per la sua natura open
sourcee per la sua versatilità.
13ANDROID ARCHITETTURA
• L’architettura del sistema operativo Android è
costituita da uno stack software su quattro livelli
ovvero un set di sottosistemi software organizzato a
strati che include:
- Kernel Linux,
- Librerie,
- Framework,
- Applicazioni.
• Ogni strato dell’architettura fornisce diversi servizi
allo strato superiore.
14ANDROID ARCHITETTURA
15ANDROID KERNEL
• Lo strato di base è il KernelLinux.
• L’intero sistema operativo Android è costruito sopra il Kernel
Linux 2.6 o superiori (ver 4.4.23?) con alcune modifiche
architettoniche apportate daGoogle.
• Il suo compito è quello di interagire con l’hardware, contiene
tutti i driver hardware (sono programmi che controllano e
comunicano con l’hardware) necessari allo scopo.
• Android utilizza Linux per TUTTE le sue funzionalità di base
come la gestione della memoria e dei processi, il networking,
il bluetooth, la batteria, le impostazioni di sicurezza e così via.
16ANDROID LIBRARIES
• Il secondo livello è costituitodalle librerie native di Android.
• Consente al dispositivo di gestire i diversi tipi di dati.
• Le librerie sono scritte nel linguaggio C/C++ e sono specifiche
per un particolare hardware.
• Alcune delle principali librerie nativesono:
Surface Manager; Media Framework; SQLite; WebKit; SGL
(Scalable Graphics Library); OpenGL|ES; SSL/TLS(Secure Socket
Layer/Transport Layer Security); libc
• Le Core Libraries rappresentano tutte le librerie che
sfrutteremo programmando in Java e che si appoggeranno sul
resto delle librerie nativeed eseguite dalla ART.
17ANDROID LIBRARIES
JAVA
CORE
LIBRARIES
LIBRARIES
ART
18ANDROID LIBRARIES
• Surface Manager: utilizzata per la composizione delle
finestre;
• Media Framework: utilizzata per la riproduzione di formati
multimediali;
• SQLite: DBMS utilizzato per scopi di archiviazionedati;
• WebKit: utilizzata per la visualizzazione dei contenutihtml;
• SGL (Scalable Graphics Library): utilizzata per la gestione
grafica 2D;
• OpenGL|ES: utilizzata per la gestione grafica3D;
• SSL: utilizzata per la comunicazioneTCP/IP;
• Libc: utilizzata per la gestione processi e memoria;
19ANDROID APPLICATION FRAMEWORK
• Tutte le librerie viste finora vengono poi utilizzate
da un insieme di componenti di più alto livello
(terzo strato) che costituiscono l’Application
Framework (AF).
• Si tratta di un insieme di API e componenti per
l’esecuzione di funzionalità specifiche e di
fondamentale importanza in ciascuna App
Android.
• Sono i mattoni principali di tuttele applicazioni.
20ANDROID APPLICATION FRAMEWORK
• Le componenti dell’Application Framework sono:
Activity Manager
Package Manager
Window Manager
Telephony Manager
Content Provider
Resource Manager
View System
Location Manager
Notification Manager
XMPP Service
21ANDROID APPLICATION FRAMEWORK
• L’Activity Manager è lo strumento attraverso cui
l’utente interagisce con l’applicazione (una
interfaccia).
• A ogni activity è associata una schermata che
permette:
- la visualizzazione e la raccolta di informazioni,
- l’interazione con l’utente.
• Organizza le varie schermate di un’App a
seconda dell’ordine di visualizzazione delle stesse
sullo schermo dei dispositivi.
22ANDROID APPLICATION FRAMEWORK
• Il Package Manager gestisce il ciclo di vita delle App.
• Ciascuna applicazione deve fornire al dispositivo un
determinato insieme di informazioni che sono descritte
attraverso un apposito file XML di configurazione; tale file va
sotto il nome di AndroidManifest
• Window Manager è la componente che permette di gestire
le finestre delle diverse applicazioni in esecuzione in processi
diversi, sullo schermo del dispositivo.
• Può essere considerato come un’astrazione dei servizi nativi
del Surface Manager (livelloLibraries).
23ANDROID APPLICATION FRAMEWORK
• Il Telephony Manager permette una maggiore
interazione con le funzionalità caratteristiche di un
telefono come la semplice possibilità di effettuare
una chiamata o di verificare l’attuale stato della
chiamata stessa.
• Content Provider è una componente fondamentale
nella realizzazione di applicazioniAndroid.
• Ha la responsabilità di gestire la condivisione di
informazioni tra i vari processi.
24ANDROID APPLICATION FRAMEWORK
• Il Resource Manager mette a disposizione una
serie di API di semplice utilizzo per la gestione di
informazioni diverse dal codice.
• Un’applicazione Android è composta:
- da codice,
- da un insieme di file di tipo diverso (immagini, file di
configurazione, file di definizione del layout ecc.).
• Il Resource Manager è una componente che
ottimizza le risorse.
25ANDROID APPLICATION FRAMEWORK
• View System è una componente che gestisce il rendering delle
componenti e degli eventi associati.
• L’interfaccia grafica di un’applicazione Android è composta da
specializzazioni della classe View, ciascuna caratterizzata da
una particolare forma e da un diverso modo di interagire con
essa attraverso un’accurata gestione degli eventi associati.
• Il Location Manager mette a disposizione le API per creare
App che gestiscono le informazioni relative alla localizzazione:
Location BasedApplication (LBA).
• Quindi tra le varie applicazioni Android che è possibile creare,
ci sono quelle relative alla gestione dellemappe.
26ANDROID APPLICATION FRAMEWORK
• Il Notification Manager mette a disposizione un insieme di
strumenti che l’App può utilizzare per inviare una particolare
notifica al dispositivo, questi la dovrà poi presentare
all’utente con i meccanismi che conosce (una vibrazione,
lampeggiare i led, visualizzare un’icona e altro ancora).
• XMPP Service è un insieme di protocolli aperti di
messaggistica istantanea e presenza basato su XML.
• Il software basato su XMPP è diffuso su migliaia di Server
disseminati su Internet ed è usato da oltre dieci milioni di
persone in tutto ilmondo
27RIASSUMENDO
• Ciascuna App Android sarà costituita da un insieme
di componenti;
• Questi componenti saranno "manipolabili" con il
linguaggio Java;
• Nel listato Java sarà necessario includere le librerie
relative agli oggetti che si voglionousare;
• Il codice compilato sarà eseguito da una macchina
virtuale ad-hoc;
28COMPONENTI PRINCIPALI
• Una applicazione sarà costituita da uno o più
dei seguenti componenti:
– Activity;
– Intent e IntentFilter;
– Broadcast Intent Receiver;
– Service;
– ContentProvider;
29ACTIVITY
• Ogni applicazione è formata da diverse schermate
(l’applicazione Gmail ha la schermata della posta
ricevuta, della posta inviata, delle opzioni,ecc)
• Ogni schermata sarà composta da:
– Elementi grafici;
– Modalità di interazione tra elementi;
• Ogni programmatore dovrà realizzare delle Activity in
base alle esigenze grafiche e alle esigenze di
interazione tra oggettigrafici;
30INTENT E INTENTFILTER
• Ogni Intent corrisponde a una "intenzione", una esigenza
comune che una applicazione può avere con altre
applicazioni (scegliere un contatto dalla rubrica, scegliere
il meccanismo di condivisione,ecc);
• Ogni applicazione "lancerà" l’Intent specifico riutilizzando
il codice fornito dai componenti del framework di
Android;
• Nel caso in cui si vogliano customizzare le intenzioni
bisogna creare un IntentFilter;
• Sono dei "messaggi" per far comunicare tra loro delle
Activity
31BROADCAST INTENT RECEIVER
• Esistono eventi di sistema o eventi non scatenati
dall’utente (ricezione messaggio, livello batteria,
ricezione mail, ecc) che devono poter essere
associati ad alcune azioni.
• Questi eventi per attivare delle azioni devono essere
associati a particolari intent detti "broadcast".
• Questi intent servono per attivare operazioni
complesse come la visualizzazione di una notifica o il
lancio di una applicazione.
32SERVICE
• Sono un insieme di componenti che permettono di
garantire l’esecuzione di processi in background.
• In questo modo si rende indipendente ciò che è
eventualmente visualizzato sul display da ciò che in
esecuzione.
• La logica è quella della gestione separata di
processi/thread.
33SERVICE
• Sono un insieme di componenti che permettono di
garantire l’esecuzione di processi in background.
• In questo modo si rende indipendente ciò che è
eventualmente visualizzato sul display da ciò che in
esecuzione.
• La logica è quella della gestione separata di
processi/thread.
34CONTENTPROVIDER
• Un aspetto fondamentale di ciascuna applicazione è
rappresentato dalla gestione dei dati.
• Il ContentProvider è un oggetto che offre un
interfaccia sicura per la creazione, modifica e
cancellazione di dati che siano essi su base di dati, su
file system o in cloud.
35Puoi anche leggere