Android base day1
-
Upload
andrea-zaza -
Category
Technology
-
view
210 -
download
0
description
Transcript of Android base day1
![Page 1: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/1.jpg)
Corso Android base
Bolzano, 10/11 Febbraio 2014PhD Andrea Zanda
![Page 2: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/2.jpg)
Corso Android base Slide
• 2007 Laurea Informatica in Pisa
• 2007-2012 Reaserch- Fraunhofer Institut (Bonn - DE)
- UPM (Madrid - ES)
- Machine learning (~10 pubblicazioni)
• 2012 - Oggi- www.eventa.cc (founder)
- www.guidemeright.com (co-founder)
2
Chi sono?
![Page 3: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/3.jpg)
Corso Android base Slide 3
Chi siete?
• Cosa sapete fare?- Programmazione? JAVA?
- Mobile Apps? ANDROID?
• Cosa vi aspettate dal corso?
• Cosa vorreste che trattassimo?
![Page 4: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/4.jpg)
Corso Android base Slide 4
Summary
• Mobile Apps
• Android- Storia
- Cosa è?
- Architettura
- Monetizzare Apps
![Page 5: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/5.jpg)
Corso Android base Slide 5
Summary (2)• Android(2)
- Installazione Android Studio + SDK
- Hello world
- Concetti Java
- Componenti architettura
‣ Teoria + pratica
• Progetto- Analisi requisiti funzionalità
- Analisi requisiti UI
![Page 6: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/6.jpg)
Corso Android base Slide
Mobile Apps
Come sviluppare?
6
Native
Web App -> Web View
Cross Platform(Phonegap - Titanium)
Hybrid
• Tempo• Costo• Conoscenza ambiente• Funzionalità• Qualità
![Page 7: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/7.jpg)
Corso Android base Slide 7
Summary
• Mobile Apps
• Android- Storia
- Cosa è?
- Architettura
- Monetizzare Apps
![Page 8: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/8.jpg)
Corso Android base Slide 8
Storia
• Giugno 2005. Google compra Android inc. Compagnia che si dedica allo sviluppo di mobile apps.
• 5 Nov. 2007. grazie alla Open Handset Alliance (OHA), Android diventa open-source.
• 17 Nov. 2007. Applicazioni sviluppate in Java (JVM) con Android Development Kit.
• 2003, Andy Rubin interview.
"Rubin said there was tremendous potential in developing smarter mobile devices that are more aware of its owner's location and preferences.
'If people are smart, that information starts getting aggregated into consumer products,' said Rubin"
![Page 9: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/9.jpg)
Corso Android base Slide 9
Storia(2)
2013 -Downloaded 48B Apps
• 23 Set. 2008. esce l’ HTC Dream• Integrazione di Android Market (Google play)• Q4 2010. vince Best-selling platform per smartphone.• Oggi. 900M smartphone con Android. (11K modelli)
![Page 10: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/10.jpg)
Corso Android base Slide 10
Storia (3)
• Android Vs IOS
![Page 11: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/11.jpg)
Corso Android base Slide 11
Storia (4)
• Android Vs IOS
![Page 12: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/12.jpg)
Corso Android base Slide 12
Storia (5)
• Android Vs IOS
![Page 13: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/13.jpg)
Corso Android base Slide 13
Storia (6)
• Android Vs IOS
![Page 14: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/14.jpg)
Corso Android base Slide 14
Storia (7)
• Android Vs IOS
• Mobile Future
https://class.coursera.org/startup-001/lecture/201
https://class.coursera.org/startup-001/lecture/253
![Page 15: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/15.jpg)
Corso Android base Slide 15
Summary
• Tecnologia in azienda
• Mobile Apps
• Android- Storia
- Cosa è?
- Architettura
- Monetizzare Apps
![Page 16: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/16.jpg)
Corso Android base Slide 16
Cosa è Android?
•Obiettivo: astrarre l’ HW per facilitare lo sviluppo di applicazioni.•Insieme di software che include: i) SO ii)
middleware iii) Applicazioni.•Open:• il kernel di Linux nella versione 3.x. • API sviluppo Android = sviluppo App• Open Source Apache License 2.0
![Page 17: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/17.jpg)
Corso Android base Slide 17
Cosa è Android?(2)
•Obiettivo: astrarre l’ HW per facilitare lo sviluppo di applicazioni.•Insieme di software che include: i) SO ii)
middleware iii) Applicazioni.•Open:• il kernel di Linux nella versione 3.x. • API sviluppo Android = sviluppo App• Open Source Apache License 2.0
![Page 18: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/18.jpg)
Corso Android base Slide
Cosa è Android?(3)
18
•Linguaggio:• JAVA• Scripting Layer for Android ( https://code.google.com/p/android-scripting/)• Android NDK - C/C++ (http://developer.android.com/tools/sdk/ndk/index.htm l)
•Dalvik virtual machine• JVM royalties• Ottimizzazione per mobile
![Page 19: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/19.jpg)
Corso Android base Slide 19
Cosa è Android?(4)
• File .dex (50% meno spazio rispetto a war)
• No tuning (Garbage Collector)
• Istruzioni a registo (No stack) - 30% + runtime performance
Dalvik Virtual Machine
![Page 20: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/20.jpg)
Corso Android base Slide 20
Cosa è Android?(5)
Caratteristiche:•Navigatore integrato•SQLite per integrazione DB•Supporto Multimediale•Supporto telefonia•Conessione: Bluetooth, EDGE, 3G, WI-FI•Sensori: accelerometro, bussola, fotocamera, etc.•Ambiente di sviluppo: emulatore, debugger, profiling
![Page 21: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/21.jpg)
Corso Android base Slide 21
Summary
• Tecnologia in azienda
• Mobile Apps
• Android- Storia
- Cosa è?
- Architettura
- Monetizzare Apps
![Page 22: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/22.jpg)
Corso Android base Slide 22
Architettura• Android 1.5: Cupcake
• Android 1.6: Donut
• Android 2.0 e Android 2.1: Éclair
• Android 2.2: Froyo
• Android 2.3: Gingerbread
• Android 3.0: Honeycomb
• Android 4.0: Ice Cream Sandwich
• Android 4.1: Jelly Bean
• Android 4.4: KitKat
• Android 5.0: Key Lime pie
![Page 23: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/23.jpg)
Corso Android base Slide 23
Architettura(1)
http://www.youtube.com/watch?v=Mm6Ju0xhUW8
![Page 24: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/24.jpg)
Corso Android base Slide 24
Architettura (2)• Linux Kernel• interfacciare HW e librerie• sicurezza, gestione memoria, gestione processi, drivers• IPC - comunicare vari componenti (1 app = 1 processo)
“SO che fornisse tutte le feature di sicurezza,gestione della memoria, gestione dei processi, power management e che fosse affidabile e testato.”
![Page 25: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/25.jpg)
Corso Android base Slide 25
Architettura(3)• Librerie:• forniscono funzionalità CORE di Android• Riferimento a progetti Open Source• scritte in C/C++
![Page 26: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/26.jpg)
Corso Android base Slide 26
Architettura(4)• Surface Manager:• Gestire view• Coordinare varie finestre• Disegnare su buffer e visualizzare ( tecnica double
buffering)• 2D + 3D
![Page 27: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/27.jpg)
Corso Android base Slide 27
Architettura(5)• OpenGL | ES• permette accedere a acceleratore grafico• versione mobile di OpenGL 1.3• bassa memoria 1-64Mb
![Page 28: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/28.jpg)
Corso Android base Slide 28
Architettura(6)• SGL• Versione mobile render grafica 2D• Usata da Surface Manager e Window Manager
![Page 29: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/29.jpg)
Corso Android base Slide 29
Architettura(7)• Media Framework• Gestire CODEC per acquisizione e riproduzione audio e
video basato sulla libreria open source OpenCore di PacketVideo
• MPEG4, H.264, MP3, AAC, AMR,JPG e PNG
![Page 30: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/30.jpg)
Corso Android base Slide 30
Architettura(8)• FreeType• Gestione dei Font• (http://freetype.sourceforge.net)piccole dimensioni, molto efficiente, altamente customizzabile
e portabile.
![Page 31: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/31.jpg)
Corso Android base Slide 31
Architettura(10)• SSLGestione Secure Socket Layer / Connessioni sicure
![Page 32: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/32.jpg)
Corso Android base Slide 32
Architettura(11)• SQLite• Gestione persistenzaDBMS relazionale, compatto (C), in-process, senza
configurazione e transazionale.
![Page 33: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/33.jpg)
Corso Android base Slide 33
Architettura(12)• WebKit• Browser integrato (http://webkit.org)Utilizzato da Safari e
ChromePersonalizzato per mobile
![Page 34: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/34.jpg)
Corso Android base Slide 34
Architettura(13)• libc
• libreria standard C libc ottimizzata per i dispositivi basati su Linux
![Page 35: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/35.jpg)
Corso Android base Slide 35
Architettura(14)
• Android Runtime- funzionalità delle librerie base di JAVA (Core Libraries)
- ogni applicazione ha il suo processo con instanziazione della DVM
![Page 36: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/36.jpg)
Corso Android base Slide 36
Architettura(15)• Application Framework• fornisce l’accesso alle librerie attraverso API• Scritto in JAVA• Views (liste, text box, bottoni), Content providers (Apps data),
Resource Manager (immagini, localized strings), Notification Manager (barra di stato), Activity Manager (navigazione app)
![Page 37: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/37.jpg)
Corso Android base Slide 37
Architettura(16)
• Activity Manager• non solo visualizzazione schermata, ma lo strumento
attraverso il quale l’utente interagisce con l’applicazionel’organizzazione in uno stack a seconda dell’ordine
![Page 38: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/38.jpg)
Corso Android base Slide 38
Architettura(16)
• Package Manager• gestire il ciclo di vita delle applicazioni nel dispositivo• XML di configurazione (AndroidManifest).• informazioni sul layout o su aspetti di sicurezza...
![Page 39: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/39.jpg)
Corso Android base Slide 39
Architettura(17)
• Window Manager• gestire le finestre delle diverse applicazioni gestite da
processi diversi• Astrazione Surface Manager
![Page 40: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/40.jpg)
Corso Android base Slide 40
Architettura(18)
• Telephony Manager• gestire funzionalità di un telefono come• es. iniziare una chiamata, o di verificare lo stato della
chiamata stessa.
![Page 41: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/41.jpg)
Corso Android base Slide 41
Architettura(19)
• Content Providers• gestire la condivisione di informazioni tra i vari
processi.repository condiviso con cui le diverse applicazioni possono interagire inserendo o leggendo informazioni.
![Page 42: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/42.jpg)
Corso Android base Slide 42
Architettura(20)
• Resource manager• gestire immagini, file di configurazione o di properties per
la internazionalizzazione• trasformazione file in contenuti binari ottimizzati per un
dispositivo.
![Page 43: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/43.jpg)
Corso Android base Slide 43
Architettura(21)
• View System• grafica di un’applicazione per Android è composta da quelle che
saranno specializzazioni della classe View• renderizzazione dei componenti nonché gestione degli eventi associati
![Page 44: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/44.jpg)
Corso Android base Slide 44
Architettura(22)
• Location Manager• gestione delle mappe• consente la realizzazione di Location Based
Application (LBA)
![Page 45: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/45.jpg)
Corso Android base Slide 45
Architettura(23)
• Notification Manager• gestione insieme di strumenti che l’applicazione può
utilizzare per inviare una notifica al dispositivo• es. vibrazione, lampeggiare i LED, visualizzare un’icona
![Page 46: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/46.jpg)
Corso Android base Slide 46
Architettura(24)
• Applications• applicazione base di Android: email, contacts,
browser, maps, calendar• Scritte in java• Nostre App!
![Page 47: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/47.jpg)
Corso Android base Slide 47
Summary
• Tecnologia in azienda
• Mobile Apps
• Android- Storia
- Cosa è?
- Architettura
- Monetizzare Apps
![Page 48: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/48.jpg)
Corso Android base Slide
• Android market primo store di app gratuite
• Apple Store primo per app a pagamento
• Design e UI molto importanti (semplicità e velocità)
• Nome e icona
• Attenzione alla versione di Android (2.2 e 2.3.3 -2014 -> 80%)
Monetizzare
48
![Page 49: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/49.jpg)
Corso Android base Slide
Monetizzare
• Lancio molto importante (classifiche)
• Affiancare strategie di marketing
49
![Page 50: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/50.jpg)
Corso Android base Slide
Monetizzare
• Monetizzazione:- App a pagamento
- affiancare versione light
- Banner pubblicitari: AdMob
- Nel caso possa essere scalabile, il numero di utenti registrati può essere monetizzato.
• Caso Instagram: 30M+ in 2 anni, 1 miliardo di dollari
50
![Page 51: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/51.jpg)
Corso Android base Slide
Monetizzare
• Monetizzazione:- App a pagamento
- affiancare versione light
- Banner pubblicitari: AdMob
- Nel caso possa essere scalabile, il numero di
- utenti registrati può essere monetizzato.
51
![Page 52: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/52.jpg)
Corso Android base Slide
Monetizzare
52
Caso Instagram: 30M+ in 2 anni, 1 miliardo di dollari
Ulteriori info sulla commercializzazione di App
• http://www.youtube.com/watch?v=2SzulLAy0P0
![Page 53: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/53.jpg)
Corso Android base Slide 56
Android.jar
• Activity
• Intent
• Broadcast Receivers
• Service
• Content Providers
![Page 54: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/54.jpg)
Corso Android base Slide 57
Activity• Android.app.activity
• Schermata (concettualmente)
• Stack con cima attiva- Altre in pausa
- Meglio eliminarle?
- Android GC
• Sviluppatore -> gestire stati (OnCreate)
![Page 55: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/55.jpg)
Corso Android base Slide 58
Intent• Gestire comunicazione tra componenti
- Riutilizzo codice (activity per esempio o componenti)
• Android.content.intent
String uri = "content://contacts/123";
Intent intent = new Intent(Intent.ACTION_GET_CONTENT,uri);
![Page 56: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/56.jpg)
Corso Android base Slide 60
Broadcast Receivers
• Android.content.broadcastreceiver
• Handler eventi esterni- Chiamata
- SMS
• Necessario registrare evento in manifest xml
![Page 57: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/57.jpg)
Corso Android base Slide 61
Service
• Android.app.service
• Gestire app senza interfaccia
• GPS module - getLocation()
• Music Player- Play()
![Page 58: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/58.jpg)
Corso Android base Slide 62
Content provider
• Android.content.contentProvider
• Gestione dati condivisi App- No SQLITE
- Dati rubrica
• Legame con intent- Specificare uri dato
![Page 59: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/59.jpg)
Corso Android base Slide 63
Architettura App
• Fase creazione:
• Definizione GUI
• Base di dati
• Operazioni background
• notifiche
![Page 60: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/60.jpg)
Corso Android base Slide 64
Architettura App(2)
• Come sviluppare? Gestire 3 parti:
- Codice Java
- Risorse
- Manifest xml
![Page 61: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/61.jpg)
Corso Android base Slide 69
Risorse
• Gestione risorse da usare in App
• Si usa programmazione dichiarativa- Definizione variabile in XML da usare nel codice JAVA
• Oggetti in cartella Res- Mappati in classe R
![Page 62: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/62.jpg)
Corso Android base Slide
Risorse(2)
• Vari tipi di risorse- String
- Immagini
- Layout
• Cartella definisce tipo- Res/layout -> layout resource
70
![Page 63: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/63.jpg)
Corso Android base Slide
Risorse(3)
71
![Page 64: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/64.jpg)
Corso Android base Slide
Risorse(4)
72
![Page 65: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/65.jpg)
Corso Android base Slide
Risorse(5)
73
![Page 66: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/66.jpg)
Corso Android base Slide
Risorse(6)
Riferimento a risorsa R.
74
![Page 67: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/67.jpg)
Corso Android base Slide
Risorse elementari
• Per recuperare nel codice risorse si usa:- getResources().get[Primitive]()
77
![Page 68: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/68.jpg)
Corso Android base Slide
Risorse elementari(2)
• Definibili via tool di Android Studio- New AndroidResource
- Esempio
• Tipi:- String, String Array , Int Array, Color, Dimension
78
![Page 69: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/69.jpg)
Corso Android base Slide
Risorse elementari(3)
• Dimension: permette di specificare dimensioni da richiamare come variabili
• Attributo <dimen>
• Unità di misura:
79
![Page 70: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/70.jpg)
Corso Android base Slide
Stili e temi (2)
82
![Page 71: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/71.jpg)
Corso Android base Slide
Risorse XML
• Si trovano nella cartella res/xml
• Di tipo pull -> SAX (Simple Api for XML)
• Accedere con:
85
![Page 72: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/72.jpg)
Corso Android base Slide
Risorse XML(2)
86
![Page 73: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/73.jpg)
Corso Android base Slide
Esercizio Risorse
• Creare interfaccia login con campi username, password e bottone submit.
• Il testo della interfaccia deve cambiare in base alla lingua utente
• Lo sfondo deve essere una immagine
• La dimensione delle view deve variare in base alla dimensione del display
• L'app ha una lista di username e password contenute in 2 array
• Al click sul “submit” si effettua un controllo sui dati inseriti.
•••
![Page 74: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/74.jpg)
Corso Android base Slide
String[] arrayString = new String[100];
for(int i = 0; i < arrayString.length; i++)
![Page 75: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/75.jpg)
Corso Android base Slide
Activity
• Gestiscono interazione utente con App (schermata)
• Contenere elementi visuali o interazioni
• Contengono View
• Creare una Activity significa creare figlio della classe Activity e riscrivere i metodi
90
![Page 76: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/76.jpg)
Corso Android base Slide
Ciclo di vita Activity
• Activity gestite con uno stack (FIFO)
- Cima attiva
- Altre sono in memoria? Forse!
- Esempio App che aggiunge contatto
91
![Page 77: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/77.jpg)
Corso Android base Slide
Ciclo di vita Activity(2)
• Stati di una activity
92
![Page 78: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/78.jpg)
Corso Android base Slide
Ciclo di vita Activity(3)
• Metodi callback (onCreate())
93
![Page 79: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/79.jpg)
Corso Android base Slide
Ciclo di vita Activity(4)
• Se sistema Cancella activity?
94
![Page 80: Android base day1](https://reader033.fdocuments.us/reader033/viewer/2022052909/5598bae61a28abbc4a8b4730/html5/thumbnails/80.jpg)
Corso Android base Slide
Ciclo di vita Activity(5)
• Esercizio: creazione di una app e implementazione dei vari stati (onCreate(), onStop...) con una stampa nel file di Log.
95