27

Introduzione ad Android

Embed Size (px)

Citation preview

Page 1: Introduzione ad Android
Page 2: Introduzione ad Android

Android

Introduzione al sistema operativo Android!

Valentina Pelliccia, Emanuel Di Nardo GDG Campania

Page 3: Introduzione ad Android

Introduzione

Page 4: Introduzione ad Android

● Introduzione al SO

● Architettura di sistema

● SDK e Strumenti di sviluppo

● Elementi principali

● Gestione della risorse

● Demo

Outline

Page 5: Introduzione ad Android

Un dispositivo mobile rispetto ad un dispositivo desktop:

● Limitatezza delle risorse

● Alimentazione a batteria

● Differenti protocolli di trasferimento dati

● Ridotte dimensioni del display

Piattaforme per dispositivi mobili

Nielsen : dati relativi alla diffusione e distribuzione dei principali sistemi operativi mobile e brand nel mercato Americano (2014).

1%3%2%

42%52%

ANDROID IOSBLACKBERRY WINDOWS PHONEOTHERS

Perché Android:

● Radici ben salde nel mondo dell’open - source

● Forte riscontro di pubblico

Page 6: Introduzione ad Android

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.

!!!● 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”

Che cos’è Android?

1.5 1.6 2.0/2.1 2.2 2.3 3.0/3.1 4.0 4.1 4.4 5 Lollipop … 3/11/2014

Page 7: Introduzione ad Android

Android OS

Page 8: Introduzione ad Android

● Application

● Application Framework

● Android Runtime

● Libraries

● Kernel Linux

Architettura di sistema

Page 9: Introduzione ad Android

Android dispone di base di un

insieme di applicazioni:

!● Client eMail

● Agenda

● Rubrica

● Mappe

● Browser Web

● ….

ApplicationAPI di alto livello

L’Application Framework fornisce

alle applicazioni i seguenti servizi: !● View

● Content Provider

● Resource Manager

● Notification Manager

● Activity Manager

● ….

Application FrameworkLibrerie in C/C++ che

rappresentano il core di Android

Le più importanti sono: !● Standard C Library

● Media Framework

● Surface Manager

● Webkit

● Librerie FreeType

● SQLITE

● SSL (Secure Socket

Layer)

Librerie Native

Page 10: Introduzione ad Android

● Linguaggio di programmazione JAVA

● Core Libraries

● Dalvik Virtual Machine

● Ottimizzata per dispositivi

Embedded

● Esegue un bytecode (Dalvik

executable .dex)

● Register Based

Android Runtime● Gestione dei driver HW

(videocamera, display, scheda

wireless…)

● Sicurezza

● Gestione della memoria

● Stack di rete

● Gestione dei processi

Il kernel funge da livello di astrazione tra

l’hardware e il resto dello stack

software.

Kernel Linux

ART

Page 11: Introduzione ad Android

Software Development Kit

● Completo

● Gratuito

● Versione per tutti i SO desktop

● Unico requisito: JDK

● Android Virtual Device

!!Download

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

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

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

Software Development Kit

Page 12: Introduzione ad Android

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. Pacchetti APK

!!!!!

Sviluppo di un’applicazioneGli elementi di base per lo sviluppo di un’App Andoid

1. Activity

2. Intent

3. Broadcast Receiver

4. Service

5. Content Provider

!!!!!

Page 13: Introduzione ad Android

Componenti di base

Page 14: Introduzione ad Android

L’Activity è una finestra che contiene l’interfaccia

dell’applicazione, il suo scopo è gestire

l’interazione tra l’utente e l’app.

● Interazione con l’utente

● Concetto di Schermata

● Interfaccia Utente composto da View

● Ciclo di vita di un’activity

● Acitivity stack

● Deriva dalla classe base android.app.Activity

!

Activity

Page 15: Introduzione ad Android

Simile al concetto di Activity, ma permette la

visualizzazione di elementi grafici totalmente differenti

● Hanno un proprio gestore

● Vengono inserite all’interno delle activity

● Fragment stack

● Possono essere presenti più fragment

contemporaneamente

● Possono essere etichettati per riutilizzi futuri

● Possono accede all’activity in cui risiedono

!!

Fragment

Page 16: Introduzione ad Android

Un Intent descrive un’azione all’interno dell’applicazione.

Rappresenta un messaggio in grado di attivare i tre componenti base di un’applicazione: Activity,

Service, Broadcast Receiver

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

Un intent può essere

● Esplicito

● Implicito

A ciascun intent è possibile associare informazioni che vengono trasportate al componente di

destinazione (metodi PUT e GET)

Intent

Page 17: Introduzione ad Android

Aiutano il sistema a scegliere la componente giusta da assegnare ad un’azione

(Intent).

Una componente viene scelta solo se supera la verifica delle componenti del filtro

!● Azione

● Categoria (non obbligatoria)

!!

Intent-Filter

Page 18: Introduzione ad Android

La classe BroadcastReceiver viene utilizzata quando si vuole intercettare e gestire

un messaggio inviato a tutta l’applicazione.

I messaggi vengono smistati attraverso gli intent-filter.

● I messaggi vengono smistati attraverso gli intent-filter

● I receiver devono essere registrati (e rimossi)

manualmente dalla componente che ne fa uso

● Non hanno interfaccia grafica

Broadcast Receiver

Page 19: Introduzione ad Android

Permettono di eseguire operazioni in background, anche quando l’utente non sta interagendo

direttamente con essa.

● Non hanno interfaccia grafica

● Elaborazione in background

● Ciclo di vita di un service

!!!

● Quando usare un service?

● Operazioni bloccanti o lunghi! (Aggiungere un thread)

● Task continui utilizzati da più componenti contemporaneamente

● Senza interazione utente

Service

Page 20: Introduzione ad Android

Un Content Provider è una classe che implementa un insieme di metodi che

permette all’applicazione di salvare e recuperare in modo permanente i dati.

!!!!!!Solitamente tali dati vengono memorizzati all’interno del file-system oppure in un

database SQLite.Inoltre, possono essere condivisi con le altre applicazioni.

Content Provider

Page 21: Introduzione ad Android

● Ambiente di sviluppo specifico per Android

● Basato su IntelliJ e sviluppato da Jetbrains

● Include tool grafici (UI Designer, Nine-Patch Editor, etc…)

● Adopera Gradle come sistema di building

● Si può utilizzare il maven central repository per aggiungere le librerie di

supporto.

Android Studio

Page 22: Introduzione ad Android

● 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

● java

● res

● Drawable

● Layout

● Menu

● Values

Gestione delle risorse

Page 23: Introduzione ad Android

● Contiene le informazioni relative all’intera

applicazione

● Tutte le risorse utilizzate devono essere inserite

nel manifest

● Include i permessi applicazione

!!!!!

AndroidManifest.xml

Page 24: Introduzione ad Android

● Contiene gli identificativi di ogni risorsa

dell’applicazione

● Viene generato e aggiornato automaticamente

dall’IDE

● NON DEVE ASSOLUTAMENTE ESSERE

MODIFICATO!!!

!!!

!

R file

Page 25: Introduzione ad Android

Demo

Page 26: Introduzione ad Android

<Thank You!>

email:

G+ plus.google.com/+EmanuelDiNardotwitter @bboymasa

website http://emanueldinardo.com

[email protected] [email protected]

@smartvalentina

plus.google.com/+ValentinaPelliccia

Page 27: Introduzione ad Android