lab 7: introduzione ad android - matteo...

16
1 Dept. of Computer Science Matteo Camilli [email protected] http://camilli.di.unimi.it Progettazione del Software a.a. 2014/15 Lab 7: Introduzione ad Android

Upload: others

Post on 17-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lab 7: Introduzione ad Android - Matteo Camillicamilli.di.unimi.it/main/teaching_files/lab7-2015.pdf · and growing fast. 2 Android growth in device activations Open marketplace for

1

Dept. of Computer Science

Matteo Camilli

[email protected]://camilli.di.unimi.it

Progettazione del Software a.a. 2014/15

Lab 7: Introduzione ad Android

Page 2: Lab 7: Introduzione ad Android - Matteo Camillicamilli.di.unimi.it/main/teaching_files/lab7-2015.pdf · and growing fast. 2 Android growth in device activations Open marketplace for

The world's most popular mobile platform

• Operating system for mobile devices.• Android powers hundreds of millions of mobile devices in more than 190

countries around the world. It's the largest installed base of any mobile platform and growing fast.

2

Android growth in device activations

Open marketplace for distributing your apps

1.5 billion downloads a month and growing. Get your apps in front of millions of users at Google's scale.

Powerful development framework

Android gives you everything you need to build apps. Easily optimize a single binary for phones, tablets, and other devices.

Powerful API

Android API lets you take advantage of the hardware capabilities available on each device.

You write Apps with Java code!

Page 3: Lab 7: Introduzione ad Android - Matteo Camillicamilli.di.unimi.it/main/teaching_files/lab7-2015.pdf · and growing fast. 2 Android growth in device activations Open marketplace for

Download Eclipse + ADT plugin

• Scaricare versione di Eclipse contenente il plugin “Android Development tool” (ADT) adatto al vostro sistema:http://homes.di.unimi.it/bellettini/ADT/• Consiglio: se lavorate sui pc del lab scaricare il tutto e lavorare in /tmp, al

termine se volete tenere ciò che avete creato copiare nella vostra home.

• Ulteriori informazioni per tool e installazione:http://developer.android.com/sdk/index.html

• Ulteriori informazioni sviluppo App (Training)

3

Page 4: Lab 7: Introduzione ad Android - Matteo Camillicamilli.di.unimi.it/main/teaching_files/lab7-2015.pdf · and growing fast. 2 Android growth in device activations Open marketplace for

Configurazione proxy

• Solo su macchine del lab immettere le seguenti impostazioni nell’SDK manager:

4

Page 5: Lab 7: Introduzione ad Android - Matteo Camillicamilli.di.unimi.it/main/teaching_files/lab7-2015.pdf · and growing fast. 2 Android growth in device activations Open marketplace for

Esecuzione su emulatore/dispositivo

1) Creare un device virtuale tramite AVD manager• CONSIGLIO: non scegliere una risoluzione elevata.

2) Eseguire l’App selezionando il dispositivo creato oppure un device reale collegato via USB.• Per eseguire su un dispositivo reale, dovete abilitare la modalità “Debug USB” nel device.

5

1) 2)

Page 6: Lab 7: Introduzione ad Android - Matteo Camillicamilli.di.unimi.it/main/teaching_files/lab7-2015.pdf · and growing fast. 2 Android growth in device activations Open marketplace for

Rendere emulatore più reattivo

• Seguire istruzioni riportate qui sotto in base al vostro sistema operativo:http://developer.android.com/tools/devices/emulator.html#acceleration

• Potete installare Genymotion (non dai pc del lab)http://www.genymotion.com/ Richiede Oracle Virtual boxhttps://www.virtualbox.org/wiki/Downloads

6

Page 7: Lab 7: Introduzione ad Android - Matteo Camillicamilli.di.unimi.it/main/teaching_files/lab7-2015.pdf · and growing fast. 2 Android growth in device activations Open marketplace for

Hands On

1) Creare un progetto Android2) Introduzione alla struttura del progettohttp://developer.android.com/training/basics/firstapp/index.html

7

Page 8: Lab 7: Introduzione ad Android - Matteo Camillicamilli.di.unimi.it/main/teaching_files/lab7-2015.pdf · and growing fast. 2 Android growth in device activations Open marketplace for

Principali componenti di un App

• Un’applicazione Android è impacchettata in un file .apk contenente: 1) I sorgenti Java dei componenti (directory src)2) I file delle risorse e dei layout (directory res)3) Il file AndroidManifest.xml che descrive l’intera applicazione. Questo

package è il veicolo di distribuzione e di istallazione dell’applicazione sui dispositivi. Ad esempio specifica:• Nome App, versione, versione di Android richiesta, descrizione Activity,

Services, Intent receiver, Permessi…

8

Page 9: Lab 7: Introduzione ad Android - Matteo Camillicamilli.di.unimi.it/main/teaching_files/lab7-2015.pdf · and growing fast. 2 Android growth in device activations Open marketplace for

Overview Architettura

9

Page 10: Lab 7: Introduzione ad Android - Matteo Camillicamilli.di.unimi.it/main/teaching_files/lab7-2015.pdf · and growing fast. 2 Android growth in device activations Open marketplace for

Application Components

10

• ACTIVITY • Componente UI, tipicamente corrisponde ad una schermata sul dispositivo

• INTENT RECEIVER • Permette di scrivere del codice che viene eseguito su particolari eventi.

L’applicazione viene risvegliata sugli eventi dichiarati:• Es: - “Network established”, “When the phone rings”, “on incon tap”, ...

• SERVICE • Task eseguito in background senza UI

• CONTENT PROVIDER • Consente di condividere dati tra applicazioni

Page 11: Lab 7: Introduzione ad Android - Matteo Camillicamilli.di.unimi.it/main/teaching_files/lab7-2015.pdf · and growing fast. 2 Android growth in device activations Open marketplace for

Replacing & Reusing Components

11

GMail

Contacts

SMS

Home

Gallery

Picasa

Dropbox

Client components make a request for

a specific action

Pick����������� ������������������  photo

System picks the components able to perform that action

Facebook Components can be replaced any time

New components can use existing

functionality

Intent

Page 12: Lab 7: Introduzione ad Android - Matteo Camillicamilli.di.unimi.it/main/teaching_files/lab7-2015.pdf · and growing fast. 2 Android growth in device activations Open marketplace for

Intents (examples)

12

Pick����������� ������������������  photo

go����������� ������������������  Home

Show����������� ������������������  Location

Edit����������� ������������������  Contacts

Send����������� ������������������  emailCall����������� ������������������  number Open����������� ������������������  

web����������� ������������������  page

Send����������� ������������������  SMS

......

Share

Page 13: Lab 7: Introduzione ad Android - Matteo Camillicamilli.di.unimi.it/main/teaching_files/lab7-2015.pdf · and growing fast. 2 Android growth in device activations Open marketplace for

User Interface

1) L’UI associata ad un’Activity è una gerarchia di oggetti View e ViewGroup inserita tramite il metodo activity.setContentView(...)

2) ViewGroup: Contiene e organizza il layout delle view sottostanti.3) View: Dette anche UI Widjet. Interagiscono direttamente con l’utente.

13

Button,textField,MenuItem,ecc.

Page 14: Lab 7: Introduzione ad Android - Matteo Camillicamilli.di.unimi.it/main/teaching_files/lab7-2015.pdf · and growing fast. 2 Android growth in device activations Open marketplace for

Hands On

1) Partire da progetto Hello world, creare un’altra Activity (DisplayMessageActivity). Premendo un bottone della prima activity deve apparire su UI l’Activity DisplayMessageActivity.

2) Modificare la prima Activity in modo che accetti un testo immesso dall’utente. Premendo sul pulsante il testo viene passato alla seconda Activity che lo mostra a video.http://developer.android.com/training/basics/activity-lifecycle/index.html

14

Page 15: Lab 7: Introduzione ad Android - Matteo Camillicamilli.di.unimi.it/main/teaching_files/lab7-2015.pdf · and growing fast. 2 Android growth in device activations Open marketplace for

Activity Lifecycle

15

Page 16: Lab 7: Introduzione ad Android - Matteo Camillicamilli.di.unimi.it/main/teaching_files/lab7-2015.pdf · and growing fast. 2 Android growth in device activations Open marketplace for

Hands On

1) Creare un’applicazione che visualizza una lista dei contatti. Al tap su un contatto l’applicazione esegue una chiamata telefonica al numero di quel contatto.

2) Verificare che l’app risulti aggiornata ogni volta che viene inserito/eliminato un nuovo contatto.

3) Inserire una nuova activity che permette di comporre un numero telefonico ed effettuare una chiamata.

4) Inserire un’Activity che mostra una lista delle ultime 10 chiamate telefoniche effettuate tramite l’applicazione.

5) Modificare la prima activity facendo in modo che al tap su un contatto mostri un popup che consenta di scegliere tra:1)Chiamata telefonica2)Invio SMS3)Invio mail

16