lab 7: introduzione ad android - matteo...
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](https://reader036.vdocuments.net/reader036/viewer/2022071002/5fbf555ad1ebd6783d157950/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071002/5fbf555ad1ebd6783d157950/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071002/5fbf555ad1ebd6783d157950/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071002/5fbf555ad1ebd6783d157950/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071002/5fbf555ad1ebd6783d157950/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071002/5fbf555ad1ebd6783d157950/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071002/5fbf555ad1ebd6783d157950/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071002/5fbf555ad1ebd6783d157950/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071002/5fbf555ad1ebd6783d157950/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071002/5fbf555ad1ebd6783d157950/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071002/5fbf555ad1ebd6783d157950/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071002/5fbf555ad1ebd6783d157950/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071002/5fbf555ad1ebd6783d157950/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071002/5fbf555ad1ebd6783d157950/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071002/5fbf555ad1ebd6783d157950/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022071002/5fbf555ad1ebd6783d157950/html5/thumbnails/16.jpg)
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