Android OS An open platform for sofware development Ludovico Cellentani Director, Just Funny Games s.r.l. Portions of this page.

Slides:



Advertisements
Presentazioni simili
2007/05/04Una piattaforma DRM sperimentale per digital media 1 Una proposta di piattaforma DRM sperimentale per digital media F. Chiariglione (CEDEO.net),
Advertisements

Elaborazione di Franco Grivet Chin
MAPPE CONCETTUALI Sergio Capone ITP
DBMS (DataBase Management System)
Android A. Ferrari.
Database MySql.
Crea il tuo sito con Web Matrix e il Web Hosting su ASP.NET
Java Enterprise Edition (JEE)
Massa Laura Mela Enrica
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progetto e sviluppo di.
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Cluster openMosix Linux Day ’04 Caserta Ing. Diego Bovenzi.
Distributed Object Computing
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 1 Il package java.awt Gestione dellI/O orientato alla grafica: le finestre Sviluppo di interfacce.
Struttura dei sistemi operativi (panoramica)
Monitoraggio online con la mappa del tracker M.S. Mennea, G. Zito Università & INFN di Bari Riunione Consorzio – Bari 9 Settembre 2005.
I Thread.
2) Sistemi operativi Lab. Calc. AA2004/05 - cap.2.
Sistemi Operativi GESTIONE DEI PROCESSI.
Introduzione ad Android
Introduzione ad Android
Introduzione ad ASP.net
Architettura Java/J2EE
Intent e Intent Filters. Intents Un Intent può contenere dati che possono essere utilizzati dalla componente che riceve. Ad esempio, un'Activity chiama.
Argomenti della lezione
Corso di PHP.
Per costruire unapplicazione occorre compilare il file (o i file se più duno) che contengono il testo del programma (file sorgente) Il risultato sono uno.
Applicazioni mobile Better Software 2009 Massimiliano Zani Sms Italia.
Sistemi Informativi sul Web
Threads.
ASP – Active Server Pages Introduzione Pagine Web Statiche & Dinamiche(ASP)
Insegnamento “Tecniche audiovisive” Corso di Laurea in Ingegneria delle Comunicazioni Symbian Marco Teodori Assistente Ricercatore - Fondazione Ugo Bordoni.
Android Insegnamento “Tecniche audiovisive”
HTML I Form in HTML5.
RECON Acquisizione Parametri Monitoraggio Live da remoto
ASP.NET. …un po’ di ASP ASP (Active Server Pages) è una tecnologia Microsoft che consente di scrivere codice eseguibile (script) lato server, inserendo.
Laboratorio di Elaborazione e Trasmissione Video Marco Vernier – Niki Martinel Dipartimento di Matematica e Informatica Università degli studi di Udine.
Distributed System ( )7 TCP/IP four-layer model.
Vannucci Roberto (5BM), De Nardin Axel (5AM)
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
Il Sistema Operativo Il Sistema Operativo è costituito dall’insieme dei programmi necessari per far funzionare tutto l’hardware del calcolatore e per nascondere.
© 2012 Microsoft Corporation. Tutti i diritti sono riservati. Pianificare una riunione Lync È possibile pianificare una riunione Lync tramite il componente.
Programmazione ad oggetti
Sommario Cartelle Gestione delle risorse Manifest dell’applicazione
Insegnamento “Tecniche audiovisive” Corso di Laurea in Ingegneria delle Comunicazioni iOS Marco Teodori Assistente Ricercatore - Fondazione Ugo Bordoni.
Sviluppo per Pocket PC con SQL Server CE 2.0 Fabio Santini Silvano Coriani.NET Developer Evangelist Microsoft Corporation.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Support for Emulation of Services and Applications in Mobile Environments with Bluetooth Gruppo: Davide Bonomo Salvatore Baglieri Referente: Ing. Dario.
Progetto di Ingegneria del Web Anno Accademico 2007/2008 Stefano Pigiani Bruno Ricci Marco Ruzzon.
ANDROID FORENSICS.
Servizi Internet Claudia Raibulet
ProgettAzione Tecnologie in movimento V anno. Applicazioni per sistemi mobili.
Easy Studio Realizzazione di un applicazione Android utile all'apprendimento Filippo Druda Istituto Tecnico Industriale Don Orione Fano Esame di Stato.
ISIA Duca degli Abruzzi a.s. 2010/2011 prof. Antonella Schiavon
Project Review Novembrer 17th, Project Review Agenda: Project goals User stories – use cases – scenarios Project plan summary Status as of November.
Dispositivi Mobili per Sentiment Analysis
Presenta – #wpc15it1 BI005 - Real Power BI Franco Perduca Factory Software srl
Mobile Apps e Android Tecniche Audiovisive Ing. Andrea Proietti Dip. DIET, Laboratorio di Multimedialità, I piano, stanza 111, Via Eudossiana 18,
Corso di programmazione di sistemi mobile 1 ANDROID Mobile Web Design.
Corso di programmazione di sistemi mobile 1 1 Android Architettura, ambiente di sviluppo e struttura di un progetto.
Programmazione orientata agli Oggetti Introduzione a Java.
Open City Platform è un progetto finanziato da Application Store Tutorial 30/09/2015.
Insegnamento “Tecniche audiovisive” Corso di Laurea in Ingegneria delle Comunicazioni Yahoo! Widget TV Marco Teodori Assistente Ricercatore - Fondazione.
OpenShift Origin – Cosa è
Enea Topi 1 ^B AS. 2014/2015. LA STORIA DI INTERNET Internet non è mai stata una rete militare, ma i militari sono alla radice della tecnologia su cui.
* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT P ERSISTENZA.
Transcript della presentazione:

Android OS An open platform for sofware development Ludovico Cellentani Director, Just Funny Games s.r.l. Portions of this page are reproduced from work created and shared by Google and used according to terms described in the Creative Commons 2.5 Attribution License.

“I have always wished that my computer would be as easy to use as my telephone. My wish has come true. I no longer know how to use my telephone.” -- Bjarne Stroupstrup

Che cos’Android OS? Sistema Operativo basato su versione modificata del kernel Linux Inizialmente sviluppato da Android Inc. società acquisita da Google e poi successivamente ceduta alla Open Handset Alliance (un consorzio di produttori di hardware, software e società operanti nelle telecomunicazioni) Presentato alla comunità il 5 Novembre 2007 Molto del software del sistema operativo è distribuito con licenza Apache, una licenza open source Nel corso dei 3 anni il firmware ha già registrato una consistente evoluzione arrivando alla versione 2.1

Android è Linux? Android OS è costruito sul kernel di Linux, ma non è GNU/Linux nessun sistema di GUI nativo (vedi Linux Qt package) no GNU C Library nessuna utility GNU/Linux ANDROID NON E’ LINUX!

Android è Java? Android non è un’implementazione della piattaforma Sun Java utilizza Java come linguaggio di programmazione fornisce un’implementazione parziale del framework Java5 SE il codice prodotto viene eseguito su una Virtual Machine Dalvik e non su una Java Virtual Machine ANDROID NON E’ JAVA!

Dalvik VM, che cos’è? VM ad architettura register-based differentementa da JVM che sono VM con architettura stack-machine Codice sorgente è convertito file Dalvik Executable (.dex), formato compatto specificatamente disegnato per l’esecuzione su dispositivi con forti vincoli di memoria e potenza della CPU NO JIT compilation (Android 2.0 ha introdotto una versione sperimentale di compilazione JIT, disabilitata di default) Definisce e usa un proprio formato di bytecode (NO standard Java bytecode) Class library set basato su Apache Harmony Java Implementation

Android OS kernel (1/2) Basato su kernel Linux 2.6 di cui eredita le seguenti caratteristiche: Sicurezza Memory Management Processes and Threads Management Classico Network Stack OSI Driver Model Abstraction Layer

Android OS kernel (2/2) A tutte le features ereditate dal kernel Linux, Android OS kernel aggiunge le seguenti caratteristiche: Alarm support Linux Ashmem driver support (memory file system) Binder mechanism (remote procedure call system) Power Management support Low Memory Killer system (no swap space support) Logger system support

Android OS: l’evoluzione (1/4) 1.5 (Cupcake) Based on Linux Kernel On 30 April 2009, the official 1.5 (Cupcake) update for Android was released. There are several new features and UI updates included in the 1.5 update: Ability to record and watch videos with the camcorder mode Uploading videos to YouTube and pictures to Picasa directly from the phone A new soft keyboard with an "Autocomplete" feature Bluetooth A2DP support (which in turn broke Bluetooth connectivity with many popular cars and headsets. This has yet to be fixed as of December 2009) Ability to automatically connect to a Bluetooth headset within a certain distance New widgets and folders that can populate the Home screens Animations between screens Expanded ability of Copy & Paste to include web pages

Android OS: l’evoluzione (2/4) 1.6 (Donut) Based on Linux Kernel On 15 September 2009, the 1.6 (Donut) SDK was released. Included in the update are: An improved Android Market experience. An integrated camera, camcorder, and gallery interface. Gallery now enables users to select multiple photos for deletion. Updated Voice Search, with faster response and deeper integration with native applications, including the ability to dial contacts. Updated search experience to allow searching bookmarks, history, contacts, and the web from the home screen. Updated Technology support for CDMA/EVDO, 802.1x, VPN, Gestures, and a Text-to-speech engine. Support for WVGA resolutions. Speed improvements for searching & the camera.

Android OS: l’evoluzione (3/4) 2.0/2.1 (Eclair) Based on Linux Kernel On 26 October 2009 the 2.0 (Eclair) SDK was released. Among the changes are: Optimized hardware speed Support for more screen sizes and resolutions Revamped UI adding a new contact lists New browser UI and HTML5 support Better white/black ratio for backgrounds Improved Google Maps Microsoft Exchange support Built in flash support for Camera and Digital Zoom MotionEvent class enhanced to track multi-touch events[41] Improved virtual keyboard Bluetooth 2.1 Live Wallpapers

Android OS: l’evoluzione (4/4) 2.2 (FroYo) Based on Linux Kernel Confirmed new features: Support of Application Installation to Memory Card Integrated Adobe Flash support

Android OS: building blocks AndroidManifest.xml ActivitiesViewsIntents ServicesNotifications (broadcast receivers) ContentProviders

AndroidManifest.xml Ogni applicazione deve presentare un file AndroidManifest.xml nella propria root per consentire al sistema di stabilire i parametri di esecuzione Tale file permette all’applicazione di: specificare il proprio identificativo univico all’interno del sistema descrivere i componenti: le Activities, gli Intents compatibili e i ContentProviders di cui l’applicazione e’ composta specifica i permessi necessari per interagire con i componenti dell’applicazione stabilisce la versione minima delle API Android richieste dall’applicazione la lista di libreria con cui l’applicazione necessita di essere linkata a runtime riporta le classi Instrumentation che forniscono profiling e altre informazioni di misura sull’esecuzione dell’applicazione

......

Activities Oggetto adibito alla presentazione e gestione di una determinata necessità. Ogni Activity è implementata come sottoclasse di Activity dell’API Android. Un’applicazione può essere costituita da 1…N Activities. In un dato momento solo una Activity è visibile. In un dato momento solo una Activity è attiva; “il muoversi” tra Activities viene fatto facendo si che ciascuna Activity attivi la successiva e ogni nuova Activity è posizionata sopra la precedente. Presenta una Window di default che normalmente riempe tutto lo schermo (ma è consentito avere Window di dimensione qualunque). Il contenuto della Window di default è presentato come un’organizzazione gerarchica di oggetti Views (oggetti che hanno come classe base View).

Stati di una Activity  ACTIVE posizionata sopra tutte le altre  PAUSED non in focus ma visibile può essere “uccisa” da servizio LMK  STOPPED dietro altre Activities  DROPPED “uccisa” da servizio LMK per recuperare memoria

Views Building block nella costruzione di interfaccie utenti per Android OS. Ogni classe derivante dalla classe View è responsabile di disegnare se stessa. Ogni classe derivante dalla classe View è chiamata a rispondere agli eventi. Nella costruzione dell’interfaccia utente di una applicazione Android, oggetti di classe View possono essere organizzati in gerarchia più o meno complessa. Ogni classe derivante dalla classe View definisce un Layout per stabilire i proprio parametri di disegno. Il Layout può essere specificato anche tramite file XML

Views: esempio di Layout

Views e Viewgroups Oggetti Viewgroups sono speciali classi di oggetti View che possono contenere altri oggetti View. Building block nella definizione di Layout Android framework è responsabile di invocare i metodi di measuring, laying out e drawing quando è necessario aggiornare una gerarchia di View e Viewgroups. L’applicazione è responsabile di implementare i metodi mesure(), layout() e draw().

Intents Intents sono “messaggi” che consentono di controllare il flusso di attivazione di Activities, Services e Notifications. Meccanisco per la gestione del runtime late binding: ad esempio oggetti di tipo Intent possono venir impiegati per “muoversi” tra Activity. Attributi principali che descrivono un oggetto Intent AttributoDescrizione Componernt Name Il nome del componente incaricato di gestire l’Intent. A runtime consente di indirizzare l’Intent all’istanza di un oggetto specifico Action L’azione da eseguire, ad esempio ACTION_CALL (avviare una telefonata), ACTION_EDIT (presentare dati all’utente per l’editing), ACTION_MAIN (avviare il destinatario come Priamary Activity) Data Dati su cui operare associati all’Intent da passare all’oggetto destinatario, ad esempio un contatto della rubrica, un URI da aprire

Services Componente di applicazione che viene eseguito in background per un tempo indefinito e non interagisce con l’utente. Un Service permane nel suo stato di attività fino a quando: non viene interrotto da un’entità esterna non si auto-interrompe non ha alcuna connessione ad altri componenti attivi nel sistema Ogni oggetto Service deve avere un corrispondente tag nel file AndroidManifest.xml Oggetti Service sono eseguiti nel thread principale di applicazione

Notifications Oggetti con l’unico compito di informare l’utente riguardo eventi originati dal sistema o da altre applicazioni. Ad esempio l’evento “battery low” o “la lingua di sistema è cambiata”. Non hanno un’interfaccia utente, ma possono attivare una Activity per consentire all’utente di interagire oppure utilizzare l’oggetto NotificationManager per allertare l’utente di qualcosa. Notifications possono “comunicare” con l’utente in diversi modi: flashing della backlight vibrazione playback di un effetto sonoro icona persistente nella barra di stato del device

Content Providers Componente di un’applicazione che permette l’accesso da specifici dati ad altre applicazioni. I dati possono essere memorizzati in un file nel file system o in un database SQLite Ogni Content Provider è l’istanza di una classe derivante da ContentProvider. Oggetti Content Provider sono l’unico modo per condividere dati tra applicazioni. I dati di un Content Provider sono esposti pubblicamente tramite un URI univoco nel sistema: tutti gli URI iniziano con la stringa “content://”. Android OS mette a disposizione un set di Content Provider che contengono dati generici: audio, video, immagini, personal contact information, etc…

Content Providers: un esempio _IDNUMBERNUMBER_KEYLABEL NAME TYPE 13(425) Kirkland officeBully PulpitTYPE_WORK 44(212) NY apartmentAlan VainTYPE_HOME 45(212) Downtown office Alan VainTYPE_MOBILE Love NestRex CarsTYPE_HOME Content Providers espongo i dati come semplice tabella su un modello di dati simil- database, dove ciascuna riga rappresenta un record e ciascuna colonna un’informazione di un dato tipo e valore

Android Market Online software store creato da Google per i devices Android OS. Un’applicazione Market è pre-installata sui dispositivi Android e consente agli utenti di sfogliare e comprare online applicazioni create da terze parti. Annunciato il 28 Agosto del 2008 e disponibile agli utenti il 22 Ottobre Inizialmente lanciato come mercato di sole applicazioni gratuite, il supporto per le applicazioni a pagamento disponibile dal Febbraio Alla fine di Aprile 2010 l’Android Market contava circa 50,000 applicazioni. Le revenues collezionate dalle applicazioni a pagamento sono ripartite in: 70% allo sviluppatore, 30% tra operatore mobile e società di gestione del billing

Biografia Android Home ( Android Developer Home ( Android OS source code ( The Google App Market – An Analysis ( -google-app-market-an-analysis/) -google-app-market-an-analysis/