back to top

Sviluppo App: panoramica dell’architettura Android

Nelle lezioni precedenti abbiamo acquisito familiarità con l’ambiente di sviluppo Android Studio e abbiamo creato un semplice progetto di prova per analizzare alcuni suoi aspetti. Prima di addentrarci però su concetti più avanzati è opportuno soffermarci un momento su alcuni concetti più astratti che stanno alla base dello sviluppo di applicazioni per Android.

Android è un sistema che comprende un sistema operativo, un ambiente di esecuzione (run-time), middleware, servizi, librerie ed ovviamente applicazioni. Quest’architettura può essere rappresentata, come visto nella prima lezione di questa guida, nel modo seguente

Andiamo ad analizzare gli elementi fondamentali di tale architettura.

LINUX KERNEL

Il Linux kernel è posizionato nella parte inferiore della struttura software Android (che tecnicamente è uno stack). Esso fornisce un livello di astrazione tra l’hardware dei dispositivi ed i livelli superiori dell’architettura, mettendo a disposizione driver per il corretto utilizzo da parte delle app di elementi quali display, fotocamera, audio, tastiera e tutti i componenti fondamentali di un dispositivo.

ANDROID RUNTIME

Un’applicazione Android viene compilata in un formato bytecode intermedio, denominato DEX. Quando successivamente essa viene caricata su un dispositivo l’Android Runtime utilizza un processo di compilazione denominato AOT (Ahead-of-Time) per tradurre il bytecode nel formato delle istruzioni native richiesto dal processore del dispositivo. Questo formato è conosciuto come ELF (Executable and Linkable Format). Tutte le volte che successivamente l’applicazione viene lanciata l’ELF è già in esecuzione determinando una maggiore velocità dell’applicazione e prolungando la durata della batteria del dispositivo. Quest’approccio si differenzia dalla compilazione JIT (Just-in-Time), utilizzata nelle versioni precedenti di Android, in cui il bytecode veniva compilato in una nuova macchina virtuale ogni volta che l’applicazione andava in esecuzione.

LIBRERIE

Oltre alle librerie standard Java, l’ambiente di sviluppo Android ne include anche altre denominate appunto Android Libraires. Si tratta di un insieme di librerie Java specifiche per Android.

Quelle più importanti sono:

android.app -Fornisce l’accesso al modello applicativo e costituisce la base di tutte le applicazioni Android

android.content – Facilita l’accesso ai contenuti, consentendo la comunicazione tra applicazioni e componenti

android.database – Permette di accedere ai dati pubblicati da un fornitore di contenuti e include classi per la gestione di database SQLite

android.graphics – API grafica bidimensionale per il rendering di colori, punti, canvas ed altri elementi grafici

android.hardware – API per l’accesso ad elementi hardware quali accelerometro e sensori

android.os – Fornisce funzionalità per l’utilizzo di servizi base del sistema

android.media – Fornisce le classi per abilitare la riproduzione di audio e video

Esistono tante altre librerie per approfondire la conoscenza delle quali potete consultare la documentazione ufficiale Android.

APPLICATION FRAMEWORK

L’Application Framework è un insieme di servizi che costituisce l’ambiente in cui le applicazioni Android vengono eseguite ed è costituito dai seguenti componenti:

Activity Manager – Controlla i vari aspetti del ciclo di vita di un’applicazione e lo stack delle activity

Content Providers – Consente alle applicazioni di pubblicare e condividere dati con altre applicazioni

Resource Manager – Consente l’accesso a risorse quali stringhe, impostazioni e layout

Notifications Manager – Consente alle applicazioni di far visualizzare agli utenti allarmi e notifiche

View System – Un insieme di componenti utilizzati per creare le interfacce utenti

Package Manager – Sistema tramite cui le applicazioni possono reperire informazioni sulle altre applicazioni attualmente installate su un dispositivo

Telephony Manager – Fornisce informazioni alle applicazioni circa i servizi telefonici disponibili

Location Manager – Fornisce l’accesso ai servizi di localizzazione da parte delle applicazioni

APPLICAZIONI

In cima all’architettura Android si trovano infine le applicazioni. Esse comprendono sia le applicazioni native della versione di Android in uso sul dispositivo, sia le applicazioni di terze parti installate dall’utente sul dispositivo.

Pubblicitร