SlideShare une entreprise Scribd logo
1  sur  35
Android Forte Alessandro – DotNetCampania Team
SPEAKER 			     Alessandro ForteProject Lead @ MerqurioPharma Contatti :  WebSite : http://www.alessandroforte.it/ E-Mail : informazioni@alessandroforte.it MSN : forte_alessandro@hotmail.com
AGENDA Agenda della giornata: ,[object Object]
Perché Android?
SDK e Tools
UI e Widgets
Resources e animazioni
Debugging e Packaging
Market
Demo Applicazione,[object Object]
PERCHE’ ANDROID Open-Source Costa 0 Libertà di sviluppo e nessun Dev-Cost-Startup Base solida: Linux kernel Framework basatosu Java Aumenta la produttività degli utenti Sostituzione delle CoreApps Notevole personalizzazione In fondo è realizzato da Google Non solo destinato agli smartphone
ARCHITETTURA
APPLICATION FRAMEWORK
FRAMEWORK JAVA Java: Tutto sommato una scelta ragionevole Mainstreamlanguage millionsofdevelopers Dalvik VM: Una VM veloce Architetturamodularedell’App Viste e servizi, non black-boxes monolitiche Looselycoupled Ogni applicazione lancia un processo Multitasking  e Background Processing
QUICKSTART Installare JDK 1.5 Installare Android SDK Installare eclipse Leggere la documentezione dell’SDK Guardaregliesempi e le demo Leggeresusitispecializzati per gli advanced stuff Testaresu un dispositivo G1 o un DevPhone Pubblicare l’app sul Market
SDK E TOOLS Tutte le piattaformesonosupportate: Linux, Windows e Mac Nessuna installazione, solo Unzip Pulito e Compatto 81.4MB - ver1.1 Ottima documentazione
EDITOR ECLIPSE IDE Java piùpopolare Tantissime features di base Estendibile con plugins Refactoring integrato Debugging integrato Documentazione integrata ADT: Android Development Tools plugin
EMULATORE Basatosul QEMU per iprocessori ARM Esegueilbootupdi un kernel linuxvero Permette di utilizzare la Camera Permette un semplice utilizzo della retenetworking Permette la registrazione audio  Cambia l’orientamento dello schermo con: CTRL+F12 Installa le apps tramite browser o adb quindi…SE POTETE USATE IL DEV-PHONE !!!
STRUMENTI DELL’SDK Tutti gli strumenti sono disponibile dalla cmdline Eclipse è raccomandato, ma non obbligatorio ADB - Android Debug Bridge adb push - transfer files from/to emulator adbinstall - installapp adblogcat - view debug log adb shell - linux shell access ddms - DalvikDebug Monitor Server aapt - Android Asset Packaging Tool Draw9patch  mksdcard hierarchyviewer sqlite
ADB SHELL
STRUMENTI DI 3° PARTI- SENSORI
UI Tutto bello ma la grafica ???
STRUMENTI DI 3° PARTI- UI BUILDER
ARCHITETTURA DI UN APP Activity View visualizzate Service Servizi in background Content Provider Condivisione dei dati tra le applicazioni Broadcast receivers Ricezione e reazione ad eventi broadcasted Intent Attivazione delle componenti
UI E WIDGETS Ricca API Java per la gestionedella UI layouts e widgets Programmazione dichiarativa – XML Customizzazionedelle features Ereditarietà e Override di un base widget Possibilità di combinare tra di loro widgets esistenti Totalmente personalizzabile nelle view - View::onDraw(Canvas canvas) Apertura del menu contestuale con un “long touch” OpenGL Allostatoattuale non batteiPhone, ma pone delleottimebasi per ilfuturo
UI E WIDGETS Layouts Container per i widgets “XML party” – Simile al XHTML del Web Riferimentodalcodiceai widgets tramite IDs RelativeLayout, siadatta a varischermi e risoluzioni AbsoluteLayout “discouraged”
WIDGETS – LIST VIEW Funzionalità : Scroll e Fling Fading a fine lista Scrollbar  automatica Ottimizzazione in cache Customizzabile graficamente
WIDGETS – WEBKIT Funzionalità : ,[object Object]
Contenuto locale o remoto
Supporto Javascript e AJAX
Ottimizzazione in cache
“Ponte” per la comunicazione Java/Javascript,[object Object]
Mappe built-in tramite MapView
Mappe basate sul servizio Google Maps,[object Object]
RESOURCES E ANIMAZIONI – 9PATCH BITMAPS Stretching delle immagini per i widgets Misurazione del paddingembedded

Contenu connexe

Similaire à Alessandro Forte - Piattaforma Android

WhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessiWhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessiMarco Gasparetto
 
Flash Platform su dispositivi mobili
Flash Platform su dispositivi mobiliFlash Platform su dispositivi mobili
Flash Platform su dispositivi mobililuca mezzalira
 
Introduzione al sistema operativo mobile Android
Introduzione al sistema operativo mobile AndroidIntroduzione al sistema operativo mobile Android
Introduzione al sistema operativo mobile AndroidOpen Makers Italy
 
01 Android - Introduction
01   Android - Introduction01   Android - Introduction
01 Android - Introductionspawn150
 
Xamarin & Cognitive Services Slides
Xamarin & Cognitive Services SlidesXamarin & Cognitive Services Slides
Xamarin & Cognitive Services SlidesFrancesco Bonacci
 
Google Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoogle Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoWireless
 
Dal cloud al mobile con tecnologie Google
Dal cloud al mobile con tecnologie GoogleDal cloud al mobile con tecnologie Google
Dal cloud al mobile con tecnologie GoogleDiego Giorgini
 
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzaAndroid: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzajekil
 
Mobile platforms development overview
Mobile platforms development overviewMobile platforms development overview
Mobile platforms development overviewAlfredo Morresi
 
Android programming (ita)
Android programming (ita)Android programming (ita)
Android programming (ita)Vinu Iaconissi
 
Flutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaformaFlutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaformaCommit University
 
Android base day1
Android base day1Android base day1
Android base day1Andrea Zaza
 
Webinar porting e ottimizzazione per x86
Webinar   porting e ottimizzazione per x86Webinar   porting e ottimizzazione per x86
Webinar porting e ottimizzazione per x86Massimiliano Torregiani
 
Ubuntu Phone: the community smartphone
Ubuntu Phone: the community smartphoneUbuntu Phone: the community smartphone
Ubuntu Phone: the community smartphoneGiulio Collura
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...Codemotion
 

Similaire à Alessandro Forte - Piattaforma Android (20)

WhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessiWhyMCA12 - Android Tools e la gestione di progetti complessi
WhyMCA12 - Android Tools e la gestione di progetti complessi
 
Android
AndroidAndroid
Android
 
Flash Platform su dispositivi mobili
Flash Platform su dispositivi mobiliFlash Platform su dispositivi mobili
Flash Platform su dispositivi mobili
 
Introduzione al sistema operativo mobile Android
Introduzione al sistema operativo mobile AndroidIntroduzione al sistema operativo mobile Android
Introduzione al sistema operativo mobile Android
 
01 Android - Introduction
01   Android - Introduction01   Android - Introduction
01 Android - Introduction
 
Xamarin & Cognitive Services Slides
Xamarin & Cognitive Services SlidesXamarin & Cognitive Services Slides
Xamarin & Cognitive Services Slides
 
Google Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobiliGoogle Android: una nuova piattaforma Open Source per dispositivi mobili
Google Android: una nuova piattaforma Open Source per dispositivi mobili
 
Dal cloud al mobile con tecnologie Google
Dal cloud al mobile con tecnologie GoogleDal cloud al mobile con tecnologie Google
Dal cloud al mobile con tecnologie Google
 
Io, Android
Io, AndroidIo, Android
Io, Android
 
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezzaAndroid: Introduzione all'architettura, alla programmazione e alla sicurezza
Android: Introduzione all'architettura, alla programmazione e alla sicurezza
 
Mobile platforms development overview
Mobile platforms development overviewMobile platforms development overview
Mobile platforms development overview
 
Whymca Dive into Android [ITA]
Whymca Dive into Android [ITA]Whymca Dive into Android [ITA]
Whymca Dive into Android [ITA]
 
Android programming (ita)
Android programming (ita)Android programming (ita)
Android programming (ita)
 
Flutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaformaFlutter: Google alla conquista del mobile multi piattaforma
Flutter: Google alla conquista del mobile multi piattaforma
 
Android base day1
Android base day1Android base day1
Android base day1
 
Presentazione CERT-CHECK
Presentazione CERT-CHECKPresentazione CERT-CHECK
Presentazione CERT-CHECK
 
Webinar porting e ottimizzazione per x86
Webinar   porting e ottimizzazione per x86Webinar   porting e ottimizzazione per x86
Webinar porting e ottimizzazione per x86
 
Ubuntu Phone: the community smartphone
Ubuntu Phone: the community smartphoneUbuntu Phone: the community smartphone
Ubuntu Phone: the community smartphone
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
 

Plus de Alessandro Forte

Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte
 
Alessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.NetAlessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.NetAlessandro Forte
 
Alessandro Forte - ASP.NET per il client Web
Alessandro Forte - ASP.NET per il client WebAlessandro Forte - ASP.NET per il client Web
Alessandro Forte - ASP.NET per il client WebAlessandro Forte
 
Alessandro Forte - Windows Vista 4 Dev - Parte 1
Alessandro Forte - Windows Vista 4 Dev - Parte 1Alessandro Forte - Windows Vista 4 Dev - Parte 1
Alessandro Forte - Windows Vista 4 Dev - Parte 1Alessandro Forte
 
Alessandro Forte - Windows Vista 4 Dev - Parte 2
Alessandro Forte - Windows Vista 4 Dev - Parte 2Alessandro Forte - Windows Vista 4 Dev - Parte 2
Alessandro Forte - Windows Vista 4 Dev - Parte 2Alessandro Forte
 
Alessandro Forte - MVP vs MVC
Alessandro Forte - MVP vs MVCAlessandro Forte - MVP vs MVC
Alessandro Forte - MVP vs MVCAlessandro Forte
 
Alessandro Forte - Model View Presenter
Alessandro Forte - Model View PresenterAlessandro Forte - Model View Presenter
Alessandro Forte - Model View PresenterAlessandro Forte
 

Plus de Alessandro Forte (8)

ORM - Introduzione
ORM - IntroduzioneORM - Introduzione
ORM - Introduzione
 
Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0Alessandro Forte - ASP.Net 4.0
Alessandro Forte - ASP.Net 4.0
 
Alessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.NetAlessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.Net
 
Alessandro Forte - ASP.NET per il client Web
Alessandro Forte - ASP.NET per il client WebAlessandro Forte - ASP.NET per il client Web
Alessandro Forte - ASP.NET per il client Web
 
Alessandro Forte - Windows Vista 4 Dev - Parte 1
Alessandro Forte - Windows Vista 4 Dev - Parte 1Alessandro Forte - Windows Vista 4 Dev - Parte 1
Alessandro Forte - Windows Vista 4 Dev - Parte 1
 
Alessandro Forte - Windows Vista 4 Dev - Parte 2
Alessandro Forte - Windows Vista 4 Dev - Parte 2Alessandro Forte - Windows Vista 4 Dev - Parte 2
Alessandro Forte - Windows Vista 4 Dev - Parte 2
 
Alessandro Forte - MVP vs MVC
Alessandro Forte - MVP vs MVCAlessandro Forte - MVP vs MVC
Alessandro Forte - MVP vs MVC
 
Alessandro Forte - Model View Presenter
Alessandro Forte - Model View PresenterAlessandro Forte - Model View Presenter
Alessandro Forte - Model View Presenter
 

Dernier

Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIinfogdgmi
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 

Dernier (6)

Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AI
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 

Alessandro Forte - Piattaforma Android

  • 1. Android Forte Alessandro – DotNetCampania Team
  • 2. SPEAKER Alessandro ForteProject Lead @ MerqurioPharma Contatti : WebSite : http://www.alessandroforte.it/ E-Mail : informazioni@alessandroforte.it MSN : forte_alessandro@hotmail.com
  • 3.
  • 10.
  • 11. PERCHE’ ANDROID Open-Source Costa 0 Libertà di sviluppo e nessun Dev-Cost-Startup Base solida: Linux kernel Framework basatosu Java Aumenta la produttività degli utenti Sostituzione delle CoreApps Notevole personalizzazione In fondo è realizzato da Google Non solo destinato agli smartphone
  • 14. FRAMEWORK JAVA Java: Tutto sommato una scelta ragionevole Mainstreamlanguage millionsofdevelopers Dalvik VM: Una VM veloce Architetturamodularedell’App Viste e servizi, non black-boxes monolitiche Looselycoupled Ogni applicazione lancia un processo Multitasking e Background Processing
  • 15. QUICKSTART Installare JDK 1.5 Installare Android SDK Installare eclipse Leggere la documentezione dell’SDK Guardaregliesempi e le demo Leggeresusitispecializzati per gli advanced stuff Testaresu un dispositivo G1 o un DevPhone Pubblicare l’app sul Market
  • 16. SDK E TOOLS Tutte le piattaformesonosupportate: Linux, Windows e Mac Nessuna installazione, solo Unzip Pulito e Compatto 81.4MB - ver1.1 Ottima documentazione
  • 17. EDITOR ECLIPSE IDE Java piùpopolare Tantissime features di base Estendibile con plugins Refactoring integrato Debugging integrato Documentazione integrata ADT: Android Development Tools plugin
  • 18. EMULATORE Basatosul QEMU per iprocessori ARM Esegueilbootupdi un kernel linuxvero Permette di utilizzare la Camera Permette un semplice utilizzo della retenetworking Permette la registrazione audio Cambia l’orientamento dello schermo con: CTRL+F12 Installa le apps tramite browser o adb quindi…SE POTETE USATE IL DEV-PHONE !!!
  • 19. STRUMENTI DELL’SDK Tutti gli strumenti sono disponibile dalla cmdline Eclipse è raccomandato, ma non obbligatorio ADB - Android Debug Bridge adb push - transfer files from/to emulator adbinstall - installapp adblogcat - view debug log adb shell - linux shell access ddms - DalvikDebug Monitor Server aapt - Android Asset Packaging Tool Draw9patch mksdcard hierarchyviewer sqlite
  • 21. STRUMENTI DI 3° PARTI- SENSORI
  • 22. UI Tutto bello ma la grafica ???
  • 23. STRUMENTI DI 3° PARTI- UI BUILDER
  • 24. ARCHITETTURA DI UN APP Activity View visualizzate Service Servizi in background Content Provider Condivisione dei dati tra le applicazioni Broadcast receivers Ricezione e reazione ad eventi broadcasted Intent Attivazione delle componenti
  • 25. UI E WIDGETS Ricca API Java per la gestionedella UI layouts e widgets Programmazione dichiarativa – XML Customizzazionedelle features Ereditarietà e Override di un base widget Possibilità di combinare tra di loro widgets esistenti Totalmente personalizzabile nelle view - View::onDraw(Canvas canvas) Apertura del menu contestuale con un “long touch” OpenGL Allostatoattuale non batteiPhone, ma pone delleottimebasi per ilfuturo
  • 26. UI E WIDGETS Layouts Container per i widgets “XML party” – Simile al XHTML del Web Riferimentodalcodiceai widgets tramite IDs RelativeLayout, siadatta a varischermi e risoluzioni AbsoluteLayout “discouraged”
  • 27. WIDGETS – LIST VIEW Funzionalità : Scroll e Fling Fading a fine lista Scrollbar automatica Ottimizzazione in cache Customizzabile graficamente
  • 28.
  • 32.
  • 34.
  • 35. RESOURCES E ANIMAZIONI – 9PATCH BITMAPS Stretching delle immagini per i widgets Misurazione del paddingembedded
  • 36. RESOURCES E ANIMAZIONI Framework per le animazioni built-in Tutte le view animabili semplicemente richiamando View.StartAnimation() Qualsiasitipodianimazionepossibile scale, alpha, transition, rotation Frame-by-Frame Lista sequenziale di immagini
  • 37. DATABASE Sandboxed file system adbpush adb pull adbdelete SQLite SDcardforbiggerfiles
  • 38. DEBUGGING e PACKAGING Eclipse & DDMS breakpoints e watches Debug su dispositivo via USB
  • 39. SICUREZZA Linux user account per App Sicurezza basata sulle AppPermissions Apps firmatedaunaChiavePrivata del Dev Nessuna Central Authority (come iPhone)
  • 40. DELIVERY APK Zip file XML-files compressi in forma binaria File di Manifest per le AppPermissions Signing con Dev Private Key Dev Public Key inclusa nel package Inclusione automatica degli Assets
  • 41. MARKET Fino ad Ottobre 2008 eranoammessesolo Apps Free Canone di circa 25$ per licenza dev Percentuale Dev del 70% sulla vendita “Price Range” da $0.99 - $200 Abilitazione alla vendita dai 13 anni in su Money-back in 24h Contenuti espliciti non ammessi Upgrade “logico” delle applicazioni gratuito Commenti e ratings degli utenti Percentuale di installazioni/disinstallazioni
  • 42.
  • 43. DEMO
  • 44. CONCLUSIONE FINEVisita www.alessandroforte.it per visualizzare il mio Portfolio