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 1
CHI • Dario Tomasoni; • Docente di Informatica; • 1984; • Ing. Delle Telecomunicazioni; • Altro, curiosità? 2
PERCHÈ 3
PERCHÈ • 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/ 4
CALENDARIO 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 5
ORARIO 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; 6
MAIL E REPOSITORY • MailingList per comunicazioni? • Sito per condivisione materiale? • Spazio cloud per condivisione materiale? • dario.tomasoni@gmail.com • http://dariotomasoni.altervista.org 7
COSA 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); 8
SUPPORTO • 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 … 9
ORGANIZZAZIONE 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 10
ORGANIZZAZIONE 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!??!!? 11
DOMANDE? Domande? • Quanti hanno partecipato a un corso simile? • Quanti hanno esperienza di programmazione "extra-scolastica"? 12
ANDROID • 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à. 13
ANDROID 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. 14
ANDROID ARCHITETTURA 15
ANDROID 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. 16
ANDROID 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. 17
ANDROID LIBRARIES JAVA CORE LIBRARIES LIBRARIES ART 18
ANDROID 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; 19
ANDROID 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. 20
ANDROID 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 21
ANDROID 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. 22
ANDROID 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). 23
ANDROID 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. 24
ANDROID 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. 25
ANDROID 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. 26
ANDROID 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 27
RIASSUMENDO • 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; 28
COMPONENTI PRINCIPALI • Una applicazione sarà costituita da uno o più dei seguenti componenti: – Activity; – Intent e IntentFilter; – Broadcast Intent Receiver; – Service; – ContentProvider; 29
ACTIVITY • 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; 30
INTENT 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 31
BROADCAST 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. 32
SERVICE • 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. 33
SERVICE • 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. 34
CONTENTPROVIDER • 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. 35
Puoi anche leggere