Appunti di ingegneria programmazione Android 1.0
Programmazione Android
Android è un sistema operativo sviluppato da Google per dispositivi mobili basato su una versione modificata di Linux, attualmente leader di mercato per dispositivi a basso/medio costo. Android è open source, quindi chiunque voglia usare il sistema operativo può farlo scaricando l’intero codice sorgente. È questo fattore che ha portato Android ad avere la larga diffusione di oggi, tanto da essere utilizzato non solo per telefoni, ma anche per tablet, televisioni e dispositivi indossabili.
Architettura di Android
L’architettura di Android è strutturata a layer, ognuno del quale offre servizi al livello sottostante:
- Kernel Linux di Android: è il nucleo del sistema operativo, ed offre le feature di sicurezza, gestione della memoria, gestione dei processi, power management. È stato scelto l’utilizzo di un kernel Linux in quanto molto affidabile e ampliamente testato.
- Al di sopra del kernel Linux ci sono le librerie native di Android, ovvero un set di librerie native realizzate in C e C++, le quali rappresentano il core vero di Android. Tra queste abbiamo:
- Media Framework: componente in grado di gestire i diversi CODEC per i vari formati di acquisizione e riproduzione di audio e video. Gestisce quindi gli aspetti multimediali.
- Surface Manager: componente che gestisce l’accesso alle funzionalità del display e coordina le diverse finestre che le applicazioni vogliono visualizzare sullo schermo.
- SQLite: è una libreria in-process che implementa un DBMS relazionale caratterizzato dal fatto di essere molto compatto, diretto, di non necessitare alcuna configurazione e specialmente di essere transazionale.
- WebKit: è il browser engine scelto e utilizzato da sistemi Android. Esso è open source ed è fondato sulle tecnologie HTML, CSS, JavaScript e DOM.
- Libc (System C library): consiste in un’implementazione della libreria standard C system (libc), disegnata per i dispositivi basati su Linux embedded come Android.
L’esecuzione di un’applicazione in Android è simile a quanto accade in ambiente Java, con la differenza che in fase di compilazione serve necessariamente il file JAR per la creazione del bytecode Java, mentre in esecuzione il device mette a disposizione la versione DEX del runtime che costituisce la core library. Il codice DEX viene ovviamente eseguito dalla Dalvik Virtual Machine (DVM).
Salendo di livello c’è l’application framework, il quale consiste in un insieme di API e componenti inerenti l’esecuzione di funzionalità ben precise e di fondamentale importanza in ciascuna applicazione Android. Fra queste ci sono l’Activity Manager, il Package Manager ed il Telephony Manager. Infine il layer più alto comprende le applications Android, sia quelle incluse nel dispositivo sia quelle sviluppate da noi.
Livello di API
Un concetto molto importante di Android è il livello di API: le API (Application Programming Interface) sono delle interfacce per le applicazioni che sviluppiamo, cioè delle librerie di funzioni da richiamare nei nostri applicativi per implementare funzionalità non da zero. Ad ogni aggiornamento della versione di Android, vengono aggiunte delle API che offrono nuove funzionalità definendo un nuovo livello di API: usare un API di livello X rende l’applicazione incompatibile con tutti i dispositivi che hanno una versione inferiore, questa è una scelta di progettazione importante poiché:
- Se un nuovo livello di API introduce delle funzionalità importanti, è inevitabile sviluppare applicazioni Android con tale livello di API;
- È inutile passare al nuovo livello di API se le funzionalità aggiunte non sono rilevanti;
- Con Android Studio, per realizzare un'app, occorre inizialmente definire il livello di API, per tale motivo l’ambiente di sviluppo mostra allo sviluppatore la percentuale di dispositivi Android che utilizza quella versione, così da avere una stima della percentuale di utenti che potrà utilizzare l’applicazione.
-
Appunti
-
Domande di teoria Android,Ios,PX4,NuttX, Sistemi operativi
-
Appunti pedagogia
-
Appunti Chimica