CORSO PROGRAMMAZIONE ANDROID - I.I.S. ''G. COSSALI'' - ORZINUOVI - Marzo - Maggio 2019 Prof. Dario Tomasoni - Altervista

Pagina creata da Anna Poli
 
CONTINUA A LEGGERE
CORSO PROGRAMMAZIONE ANDROID - I.I.S. ''G. COSSALI'' - ORZINUOVI - Marzo - Maggio 2019 Prof. Dario Tomasoni - Altervista
I.I.S. ‘’G. COSSALI’’ - ORZINUOVI

      CORSO
 PROGRAMMAZIONE
     ANDROID
 Marzo – Maggio 2019
 Prof. Dario Tomasoni
                                    1
CORSO PROGRAMMAZIONE ANDROID - I.I.S. ''G. COSSALI'' - ORZINUOVI - Marzo - Maggio 2019 Prof. Dario Tomasoni - Altervista
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