SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
Gioachino Del Prete, Napoli
Che cos'è Android?

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

         Il sistema operativo
         Middleware
         Key application
         Distribuisce un SDK per
       programmare le applicazioni
       in linguaggio Java
Storia
 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
Open 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
Android/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.
Architettura
Architettura/Linux Kernel




 Android adotta la versione 2.6
di Linux:
    Gestione della sicurezza
    Memory Management
    Network Stack
    Driver Model
 Abstract Layer tra hardware e
software stack
Architettura/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
Architettura/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.
Architettura/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.
Architettura/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
Android 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
Android 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.
Android 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
Android 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
Android 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.
Android 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
stack based vs register 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)
Dalvik Virtual Machine
Android hardware/sensori opzionale


         GPS             Accelerometro




Termometro       Proximity sensor
                                         Giroscopio




   Touchscreen                      Magnetometro
Android oltre il mobile




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

  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

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (20)

Ch12 p.545 -556
Ch12 p.545 -556Ch12 p.545 -556
Ch12 p.545 -556
 
Buy rakhi online
Buy rakhi onlineBuy rakhi online
Buy rakhi online
 
Brazil
BrazilBrazil
Brazil
 
Write invites 2 external
Write  invites 2 externalWrite  invites 2 external
Write invites 2 external
 
Supply chain-Mohamed Attia-MBA
Supply chain-Mohamed Attia-MBASupply chain-Mohamed Attia-MBA
Supply chain-Mohamed Attia-MBA
 
Polska mobilna
Polska mobilnaPolska mobilna
Polska mobilna
 
Programa feria del libro SMSEM
Programa feria del libro SMSEMPrograma feria del libro SMSEM
Programa feria del libro SMSEM
 
Quasi rent
Quasi rentQuasi rent
Quasi rent
 
Презентация Sunrise child care для STADA
Презентация Sunrise child care для STADAПрезентация Sunrise child care для STADA
Презентация Sunrise child care для STADA
 
SW3FfinalRreport
SW3FfinalRreportSW3FfinalRreport
SW3FfinalRreport
 
Good Friends by Miss Nelly
Good Friends by Miss Nelly Good Friends by Miss Nelly
Good Friends by Miss Nelly
 
Nosql hands on handout 04
Nosql hands on handout 04Nosql hands on handout 04
Nosql hands on handout 04
 
Simsangjung
SimsangjungSimsangjung
Simsangjung
 
Karine braaten
Karine braatenKarine braaten
Karine braaten
 
Resumeนที
ResumeนทีResumeนที
Resumeนที
 
The United Kingdom
The United KingdomThe United Kingdom
The United Kingdom
 
Basic ads should be content
Basic ads should be contentBasic ads should be content
Basic ads should be content
 
The pink night by eddy.odp
The pink night by eddy.odpThe pink night by eddy.odp
The pink night by eddy.odp
 
Our exclusive wedding collection
Our exclusive wedding collectionOur exclusive wedding collection
Our exclusive wedding collection
 
ABC Breakfast Club m Tresu: Effektiv lageroprydning
ABC Breakfast Club m Tresu: Effektiv lageroprydningABC Breakfast Club m Tresu: Effektiv lageroprydning
ABC Breakfast Club m Tresu: Effektiv lageroprydning
 

Ähnlich wie Android

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
 
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
 
MobileDevCamp2012 - Android
MobileDevCamp2012 - AndroidMobileDevCamp2012 - Android
MobileDevCamp2012 - Androidmobiledevcamp
 
Mobile platforms development overview
Mobile platforms development overviewMobile platforms development overview
Mobile platforms development overviewAlfredo Morresi
 
Presentazione+Android
Presentazione+AndroidPresentazione+Android
Presentazione+AndroidNicola Pedot
 
Webinar porting e ottimizzazione per x86
Webinar   porting e ottimizzazione per x86Webinar   porting e ottimizzazione per x86
Webinar porting e ottimizzazione per x86Massimiliano Torregiani
 
Flash Platform su dispositivi mobili
Flash Platform su dispositivi mobiliFlash Platform su dispositivi mobili
Flash Platform su dispositivi mobililuca mezzalira
 
Programmazione mobile: ANDROID
Programmazione mobile: ANDROIDProgrammazione mobile: ANDROID
Programmazione mobile: ANDROIDPaolo Tosato
 
Hardware Libero - Linux Day 2007
Hardware Libero - Linux Day 2007Hardware Libero - Linux Day 2007
Hardware Libero - Linux Day 2007pino_otto
 
Energy consumption on mobile devices
Energy consumption on mobile devicesEnergy consumption on mobile devices
Energy consumption on mobile devicesAntonio Notarangelo
 
ASP.NET Core 2 e Docker
ASP.NET Core 2 e DockerASP.NET Core 2 e Docker
ASP.NET Core 2 e DockerLuca Congiu
 
Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker dotnetcode
 
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
 
Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5Gabriele Gaggi
 
Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Francesco Baldassarri
 
Alessandro Forte - Piattaforma Android
Alessandro Forte - Piattaforma AndroidAlessandro Forte - Piattaforma Android
Alessandro Forte - Piattaforma AndroidAlessandro Forte
 
Sviluppo apps multipiattaforma con visual studio e xamarin
Sviluppo apps multipiattaforma con visual studio e xamarinSviluppo apps multipiattaforma con visual studio e xamarin
Sviluppo apps multipiattaforma con visual studio e xamarinFabio Cozzolino
 

Ähnlich wie Android (20)

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
 
Introduzione al sistema operativo mobile Android
Introduzione al sistema operativo mobile AndroidIntroduzione al sistema operativo mobile Android
Introduzione al sistema operativo mobile Android
 
MobileDevCamp2012 - Android
MobileDevCamp2012 - AndroidMobileDevCamp2012 - Android
MobileDevCamp2012 - Android
 
Mobile platforms development overview
Mobile platforms development overviewMobile platforms development overview
Mobile platforms development overview
 
Presentazione+Android
Presentazione+AndroidPresentazione+Android
Presentazione+Android
 
Webinar porting e ottimizzazione per x86
Webinar   porting e ottimizzazione per x86Webinar   porting e ottimizzazione per x86
Webinar porting e ottimizzazione per x86
 
Flash Platform su dispositivi mobili
Flash Platform su dispositivi mobiliFlash Platform su dispositivi mobili
Flash Platform su dispositivi mobili
 
Programmazione mobile: ANDROID
Programmazione mobile: ANDROIDProgrammazione mobile: ANDROID
Programmazione mobile: ANDROID
 
Hardware Libero - Linux Day 2007
Hardware Libero - Linux Day 2007Hardware Libero - Linux Day 2007
Hardware Libero - Linux Day 2007
 
Energy consumption on mobile devices
Energy consumption on mobile devicesEnergy consumption on mobile devices
Energy consumption on mobile devices
 
ASP.NET Core 2 e Docker
ASP.NET Core 2 e DockerASP.NET Core 2 e Docker
ASP.NET Core 2 e Docker
 
Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker Meetup ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker
 
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
 
Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5Sviluppo di App cross-platform con Cordova e HTML5
Sviluppo di App cross-platform con Cordova e HTML5
 
Introduzione ad Android
Introduzione ad AndroidIntroduzione ad Android
Introduzione ad Android
 
Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)
 
Reportage Delphi Day 2012
Reportage Delphi Day 2012Reportage Delphi Day 2012
Reportage Delphi Day 2012
 
Alessandro Forte - Piattaforma Android
Alessandro Forte - Piattaforma AndroidAlessandro Forte - Piattaforma Android
Alessandro Forte - Piattaforma Android
 
Conferenza Pymaemo
Conferenza PymaemoConferenza Pymaemo
Conferenza Pymaemo
 
Sviluppo apps multipiattaforma con visual studio e xamarin
Sviluppo apps multipiattaforma con visual studio e xamarinSviluppo apps multipiattaforma con visual studio e xamarin
Sviluppo apps multipiattaforma con visual studio e xamarin
 

Android

  • 2. Che cos'è Android? Android è uno stack software per dispositivi mobili, che comprede: Il sistema operativo Middleware Key application Distribuisce un SDK per programmare le applicazioni in linguaggio Java
  • 3. Storia 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
  • 4. Open 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
  • 5. Android/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.
  • 7. Architettura/Linux Kernel Android adotta la versione 2.6 di Linux: Gestione della sicurezza Memory Management Network Stack Driver Model Abstract Layer tra hardware e software stack
  • 8. Architettura/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
  • 9. Architettura/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.
  • 10. Architettura/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.
  • 11. Architettura/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
  • 12. Android 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
  • 13. Android 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.
  • 14. Android 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
  • 15. Android 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
  • 16. Android 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.
  • 17. Android 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
  • 18. stack based vs register 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)
  • 20. Android hardware/sensori opzionale GPS Accelerometro Termometro Proximity sensor Giroscopio Touchscreen Magnetometro
  • 21. Android oltre il mobile People of Lava Sweden has produced the first TV adopting Android 1.5, and is called Scandinavia
  • 22. Bibliografia 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