Top Banner
Gioachino Del Prete, Napoli
22
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Android

Gioachino Del Prete, Napoli

Page 2: Android

Che cos'è Android?Che cos'è Android?

Android è uno stack software per dispositivi mobili, che comprede:

Il sistema operativoMiddlewareKey applicationDistribuisce un SDK per

programmare le applicazioni in linguaggio Java

Page 3: Android

StoriaStoria Sviluppato inizialmente da Android Inc. una startup con

sede a Palo Alto, California, USA 2005, Google acquista Android Inc. Nel Novembre 2005, viene rilasciata la prima versione di

Android, e viene resa nota la formazione della Open Handset Alliance(OHA) Da ottobre 2008, Android è disponibile con licenza Apache Febbraio 2009, Android 1.5 (Cupcake) Based on Linux

Kernel 2.6.27 Settembre 2009, Android 1.6 (Donut) Based on Linux

Kernel 2.6.29 Ottobre 2009, Android 2.0 / 2.1 (Eclair) Based on Linux

Kernel 2.6.29 Maggio 2010, Android 2.2 (Froyo) Based on Linux Kernel

2.6.32

Page 4: Android

Open Handset AllianceOpen Handset Alliance Open Handset Alliance (OHA) è una formazione

commerciale composta da 78 imprese. Si occupa di sviluppare standard aperti per dispositivi

mobili. I membri, si contraddistinguono in 5 categorie:

Mobile operators Software companies Commercialization companies Semiconductor companies Handset manufactures

Page 5: Android

Android/LinuxAndroid/Linux

Android adotta la versione 2.6 di Linux - Gestione della sicurezza - Memory Management - Process Management - Network stack - Driver Model

Il kernel agisce anche da layer di astrazione fra l'hardware e il resto dello stack software.

Page 6: Android

ArchitetturaArchitettura

Page 7: Android

Architettura/Linux KernelArchitettura/Linux Kernel

Android adotta la versione 2.6 di Linux:

Gestione della sicurezzaMemory ManagementNetwork StackDriver Model

Abstract Layer tra hardware e software stack

Page 8: Android

Architettura/LibrariesArchitettura/Libraries

Android comprende un vasto set di librerie C/C++ :

System C library- derivate BSD ottimizzata per dispositivi mobili Linux-based

Media Libraries- basate su PacketVideo's OpenCORE

Surface Manager-accesso al sottosistema di visualizzazione

LibWebCore SGL-motore grafico 2D 3D libraries-derivate da OpenGL ES 1.0

APIs FreeType SQLite

Page 9: Android

Architettura/Android RuntimeArchitettura/Android Runtime

Android include un set di librerie di base che fornisce la maggior parte delle funzionalità disponibili nelle librerie di base del linguaggio di programmazione Java.

Ogni applicazione Android gira in un proprio processo, con la propria istanza della macchina virtuale Dalvik. La Virtual Machine Dalvik esegue file Dalvik Executable (.dex), ottimizzata per dispositivi con memoria ridotta.

La VM Dalvik si basa sul kernel Linux per le funzionalità di base offerte da quest'ultimo, come il threading e di memoria a basso livello di gestione.

Page 10: Android

Architettura/Application Framework 1/2Architettura/Application Framework 1/2

Android offre una piattaforma di programmazione che permette agli sviluppatori di creare ricche e innovative applicazioni.

Gli sviluppatori possono utilizzare per le loro applicazioni tutto l'hardware del device:

Possono accedere alle informazioni di posizione Eseguire applicazioni in background Impostare allarmi

Gli sviluppatori hanno pieno accesso alle APIs usate per le applicazioni core.

Qualsiasi applicazioni può pubblicare le sue “capacità” e tutte le altre possono utilizzarle: architettura molto orientata al riuso.

Page 11: Android

Architettura/Application Framework 2/2Architettura/Application Framework 2/2

Alla base delle applicazioni c'è un ricco insieme di servizi e sistemi, che includono:

Un ricco ed estendibile insieme di View: elenchi, griglie, caselle di testo, pulsanti e persino un browser web embeddable Content Providers, che permette di accedere i dati di altre

applicazioni e di condividere i propri Resource Manager, che provvede all'accesso alle risorse “non-code”

come: localized strings, graphics, e layout files Notification Manager che permette alle applicazioni di attivare avvisi

nella status bar Activity Manager che gestisce il ciclo di vita delle applicazioni

Page 12: Android

Android Features 1/5Android Features 1/5 Set di Layout - VGA - 2D Graphics - 3D Graphics basate sulle specifiche OpenGL ES 2.0 - Layout tradizionali per smartphone

Storage - SQLite

Connectivity - GSM/EDGE - IDEN - CDMA - EV-DO - UMTS - Bluetooth - Wi-Fi - LTE - WiMAX

Page 13: Android

Android Features 2/5Android Features 2/5 Messaging - SMS - MMS

Web browser - Utilizza WebKit come motore di rendering e V8 Chrome per il

motore Javascript

Java support - Possiamo scrivere le nostre applicazioni in Java, ma Android non

ha una Java Virtual Machine e quindi il bytecode non sarà interpretato, e quindi eseguito. E' necessario ricompilare il bytecode Java in un eseguibile Dalvik, che sarà eseguito dall'apposita virtual machine. Dalvik è una virtual machine progettata per Android ed ottimizzata per sistemi alimentati a batteria con limitata memoria e CPU. Il supporto a J2ME è offerto grazie a terze parti come J2ME MIDP Runner.

Page 14: Android

Android Features 3/5Android Features 3/5 Media support - H.263, H.264 - MPEG-4 SP - AMR, AMR-WB - AAC, HE-AAC - MP3 - MIDI - Ogg Vorbis - WAV - JPEG,PNG,GIF,BMP

Streaming media support - RTP/RTSP streaming (3GPP PSS, ISMA) - HTML progressive download (HTML5 <video> tag) - Adobe Flash Streaming (RTMP) - Apple HTTP Live Streaming - Microsoft Smooth Streaming - Adobe Flash HTTP Dynamic Streaming

Page 15: Android

Android Features 4/5Android Features 4/5 Multi-touch - Supporto nativo al Multi-touch.

Bluetooth versione 2.2+ di Android - A2DP, AVRCP - Trasferimento file OPP - Accesso alla rubrica PBAP - Invio contatti tra dispositivi

Videocalling - Non supportata su tutti i dispositivi, ma ci possono essere dei

dispositivi con una versione personalizzata del S.O. che può permettere le videochiamate

Multitasking - Il Multitask è supportato

Page 16: Android

Android Features 5/5Android Features 5/5 Voice based features - La ricerca Vocale su Google è supportato - Altre funzionalità attivabile con comendi Vocali sono supportate

dalla versione 2.2 in poi

Tethering - Il Tethering è supportato ufficialmente dalla versione 2.2 ,

permettendo al dispositivo dotato di Android di funzionare da wireless/wired hotspot.

Page 17: Android

Android e JavaAndroid e Java Dalvik Virtual Machine

Esegue file .dex ottenuto da bytecode Virtual Machine ottimizzata per dispositivi mobili Dalvik non elimina il Garbage Collector DVM implementa un Just In Time(JIT) solo dalla versione 2.2, in

quanto molte APIs Java Android sono wrapper che incapsulano le funzionalità alle quali accedono attraverso Java Native Interface (JNI) DVM genera codice register based a differenza di JVM che genera

codice stack based Un file .dex compresso è usualmente a parità di codice Java la

metà di un file .jar

Page 18: Android

stack based stack based vsvs register basedregister based Esempio:

c=a+b

JVM:push a (load,store)push b (load,store)

add (load,load,store);store c (load,store)

Dalvik register based:add a,b,c (load,load,store)

Page 19: Android

Dalvik Virtual MachineDalvik Virtual Machine

Page 20: Android

Android hardware/sensori opzionaleAndroid hardware/sensori opzionale

GPS Accelerometro

GiroscopioTermometro

Touchscreen Magnetometro

Proximity sensor

Page 21: Android

Android oltre il mobileAndroid oltre il mobile

People of Lava Sweden has produced the first TV adopting Android 1.5, and is called Scandinavia

Page 22: Android

BibliografiaBibliografia

http://developer.android.com/index.html Wikipedia Internet Android-Guida per lo sviluppatore di Massimo

Carli, Apogeo

Si prega di segnalare eventuali errori

al seguente indirizzo mail:gioacchinodelprete[at]gmail.com

Gioachino Del Prete, Napoli