Download - Introduzione al sistema operativo mobile Android

Transcript
Page 1: Introduzione al sistema operativo mobile Android

Introduzione al sistema operativo mobile

ANDROID

09/11/2013 Giffoni Open Makers Day 2013

Google Developers Group Campania Co-organizer Valentina Pelliccia

Page 2: Introduzione al sistema operativo mobile Android

OutLineIntroduzione al SO mobile Android Architettura di sistema SDK e Strumenti di Sviluppo Elementi principali di un APP Android Hello, Android !

Page 3: Introduzione al sistema operativo mobile Android

Piattaforme per dispositivi mobili

Un dispositivo mobile rispetto ad un dispositivo desktop:Limitatezza delle risorse risorse Alimentazione a batteria Differenti protocolli di trasferimento dati Ridotte dimensioni del display

5%2%7%

35%

51%

ANDROID IOSBLACKBERRY WINDOWS PHONEOTHERS

Page 4: Introduzione al sistema operativo mobile Android

Che cosa é Android?

2003 : L’azienda Android della Silicon Valley sviluppa il SO Android

2005 : L’azienda viene acquisita da Google

2007 : Google fonda il consorzio Open Handset Alliance OHA

2009 : Viene rilasciata la versione 1.5 denominata cupcake

Android è un sistema operativo open-source basato su kernel Linux e progettato per dispositivi mobili come smartphone e tablet.  Il progetto Open Source Android guidato da Google dispone di una vasta comunità di sviluppatori divenendo in pochi anni uno dei leader nel mercato mobile.

1.5 1.6 2.0/2.1 2.2 2.3 3.0/3.1 4.0 4.1 4.4

Page 5: Introduzione al sistema operativo mobile Android

Architettura di sistema

Application

Application Framework

Android Runtime

Libraries

Kernel Linux

Page 6: Introduzione al sistema operativo mobile Android

Application

Client eMail Agenda Rubrica Mappe Browser Web .....

Android dispone di base di un insieme di applicazioni:

Application Framework

API di alto livello L' Application Framework fornisce alle applicazioni i seguenti servizi:

View Content Provider Resource Manager Notification Manager Activity Manager .....

Librerie Native

Sono librerie scritte in C/C++ che rappresentano il core di Android Librerie piú importanti sono:

Standard C Library Media Framework Surface Manager Webkit Librerie 3D FreeType SQLITE SSL (Secure Socket Layer)

Page 7: Introduzione al sistema operativo mobile Android

Android RuntimeCore Libraries

Dalvik Virtual Machine

Ottimizzata per disp Embedded

Esegue un bytecode (Dalvik Executable .dex)

Register-based

Kernel Linux

il kernel funge da livello di astrazione tra l'hardware e il resto dello stack software.

Gestione dei driver HW (videocamera, display, scheda wireless..)

Sicurezza

Gestione della memoria

Stack di rete

Gestione dei processi

Page 8: Introduzione al sistema operativo mobile Android

Software Development KitSoftware Development Kit

SDK : http://developer.android.com/sdk/index.html

Android Developer Tools : http://developer.android.com/tools/help/adt.html

Android Studio : http://developer.android.com/sdk/installing/studio.html

Completo Gratuito Versione per tutti i SO desktop Unico requisito : JDK Android Virtual Device

Download

Page 9: Introduzione al sistema operativo mobile Android

Sviluppo di un applicazione Gli elementi di base per lo sviluppo di un’ app Android

1. Activity

2. Intent

3. Broadcast Receiver

4. Service

5. Content Provider

Le caratteristiche di un’ app Android

1. Ogni app gira in un proprio processo Linux

2. Ogni processo ha una propria VM

3. Ogni app puó utilizzare componenti di altre app

4. Non hanno un singolo entry point

5. Pacchetti APK

Page 10: Introduzione al sistema operativo mobile Android

Activity

Interazione con l’utente Concetto di Schermata Interfaccia Utente composta da View Activity stack Ciclo di vita di un activity Deriva dalla classe base android.app.Activity

Un’ activity è una finestra che contiene l’interfaccia dell’applicazione, il suo scopo è gestire l’interazione tra l’utente e l’app.

Page 11: Introduzione al sistema operativo mobile Android

Intent Broadcast ReceiverUn Intent descrive cosa una applicazione vuole che venga fatto

Rappresenta un messaggio in grado di attivare i tre componenti base di una applicazione: Activity, Service e Broadcast Rece

La struttura dati dell'Intent si compone dell'azione da effettuare e dei dati su cui agire. !

Un intent può essere !

!

A ciascun intent é possibile associare informazioni che vengono trasportate al componente di destinazione (metodi PUT e GET)

Esplicito Implicito

La classe BroadcastReceiver definita all'interno del package android.content. viene utilizzata quando si vuole che parte del codice della propria applicazione venga eseguito in risposta ad un evento esterno.

Non hanno interfaccia grafica

Utilizzano NotificationManager

Page 12: Introduzione al sistema operativo mobile Android

ServiceUn Service è uno strumento mediante cui l'applicazione vuol comunicare al sistema che una data operazione deve essere eseguita in background anche quando l'utente non sta interagendo direttamente con essa.

Senza interfaccia grafica Processo in esecuzione in BG Ciclo di un service

Content Provider

Un ContentProvider è una classe che implementa un insieme standard di metodi per permettere alle altre applicazioni di salvare e recuperare dati.

Solitamente le applicazioni memorizzano i loro dati all'interno del file-system oppure in un database SQLite, ma se i dati di una applicazione devono essere condivisi con le altre bisogna usare la classe ContentProvider.

cc

c

Page 13: Introduzione al sistema operativo mobile Android

Gestione delle risorse

AndroidManifest.xml

AndroidManifest.xml è il file di manifesto contenente le informazioni relative al progetto

Programmazione dichiarativa (in file di tipo XML)

Non ricompilazione del codice a valle di modifiche alle risorse

Rigorosa organizzazione della struttura del progetto (codice e file) in opportune cartelle

Page 14: Introduzione al sistema operativo mobile Android

Hello, Android!

Il metodo findByView() ricerca e restituisce un componente, contenuto in un layout, a partire dal suo id (definito in R).

Le view hanno un identificativo di tipo integer (id) associato.

MainActivity.java

activity_main.xml

Page 15: Introduzione al sistema operativo mobile Android

Hello, Android!activity_welcome.xml

welcome.java

Page 16: Introduzione al sistema operativo mobile Android

Q&A

Page 17: Introduzione al sistema operativo mobile Android

THANKS!