AndroidProgrammazione

Funzionamento base

Android è un sistema operativo che comprende un ambiente di esecuzione, servizi, librerie e applicazioni; gli elementi fondamentali sono:

  • linux kernel – fornisce livelli di astrazione tra l’hardware dei dispositivi e i livelli superiori dell’architettura;
  • android runtime – fornisce un processo di compilazione AOT (Ahead-Of-Time) per tradurre il bytecode DEX in un formato eseguibile sul dispositivo ELF (Executable and Linkable Format);
  • librerie – librerie java specifiche per android;
  • application framework – sistema di servizi in cui le applicazioni android vengono eseguite;
  • applicazioni – sia quelle native della versione di android in uso sul dispositivo che quelle di terze parti;

Le componenti base di ogni applicazione android sono:

  • activity – è un’interfaccia utente;
  • service – un’operazione svolta in background senza l’intervento dell’utente;
  • content provider – permettono di condividere dati tra le applicazioni;
  • broadcast receiver – componente che reagisce ad un invio di messaggi a livello di sistema;
  • intent – ogni componente può attivarne un’altra mediante invocazione di sistema;

Per un sistema mobile la corretta gestione delle risorse è un fattore importante, da considerare che un dispositivo mobile può restare sempre acceso e quindi salta la fase della liberazione della memoria e la pulizia di risorse temporaneamente assegnate. Android cerca di tenere in vita ogni processo il più a lungo possibile, ad ogni processo viene dato un livello d’importanza quindi quelli con livello minore hanno una probabilità alta che vengano arrestati.

Processi in ordine d’importanza:

  1. foreground – interagiscono direttamente o indirettamente con l’utente, applicazioni che contengono l’activity attualmente utilizzata o i service ad esse collegati;
  2. visibili – activity visibili e service ad esse collegati;
  3. service – svolgono lavori molto utili all’utente anche se non direttamente collegati a ciò che l’utente vede nel display;
  4. background – activity non più visibili, applicazioni che l’utente ha usato e messo da parte;
  5. empty – vuoti e senza nessuna attività, conservati nella cache per una veloce riattivazione;

Durante la sua esecuzione un’activity si può trovare in uno dei seguenti stati:

  • active/running – è in cima all’activity stack, è visibile sullo schermo e sta interagendo con l’utente;
  • paused – visibile ma non sta interagendo con l’utente perché oscurata da altre activity;
  • stopped – non visibile all’utente;
  • killed – terminata e non più presente nell’activity stack;

Gli eventi che governano il ciclo di vite di un’activity:

  • onCreate – quando viene creata;
  • onStart – quando diviene visibile;
  • onResume – quando interagisce con l’utente;
  • onPause – quando viene messa in pausa;
  • onStop – quando non più visibile;
  • onDestroy – prima che l’activity viene distrutta dal sistema;
  • onRestart – quando viene arrestata e riavviata;