TPSIT – APP- Sistema operativo Android

Prima di sviluppare un’app, bisogna capire com’è strutturato il sistema operativo.

Stack Android:

Linux Kernel Layer

Native Layer

Application Framework Layer

Application Layer

Tutte le applicazioni sono scritte in Java che si basano su framework applicativo pieno di librerie e classi astratte che utilizzano l’ambiente Apache Harmony. Tutte le funzioni quali mandare un sms, usare internet si basa su librerie scritte in C++.

Hardware Abstraction Layer (HAL) è formato da un insieme di funzioni che tine conto delle differenze fisiche dei vari dispositivi. Permette al software di funzionare su dispositivi differenti.

Le applicazioni vengono eseguite tramite DVM Dalvik Virtual Machine una macchina virtuale adattata per l’uso dei dispositivi mobili. Dalla versione 5.0 è stata sostituita da ART (android Run Time)

Applicazioni

Le applicazioni, più comunemente dette app, sono dei programmi ti tipo Event Driven ossia guidate dagli eventi gestiti all’interno del dispositivo mobile come il touch dello schermo, le azioni dei sensori, ecc.

2 tipi:

  • applicazioni vere e proprie che occupano tutto lo schermo come ad esempio il browser
  • widget che occupano una piccola e fissata porzione dello schermo come ad esempio l’orologio di Android

le applicazioni sono composte da 4 componenti:

  • Activity
  • Service
  • Broadcast Receiver
  • Content Provider

Le applicazioni devono sempre contenere un’activity.

Activity

Blocco di codice che interagisce con l’utente utilizzando lo schermo e i dispositivi di input, usando i pulsanti, le caselle di testo, pulsanti radio, ecc presenti nell’android .widget. Esse vengono usate ereditando la classe android.app.Activity.

Service

Programmi eseguiti in background e non interagiscono con l’utente, ad esempio la riproduzione di un mp3. Esse estendo la classe android.app.Service

Broadcast Receiver

Si usa quando si deve intercettare un evento di sistema, ad esempio si scatta una foto o parte il segnale di batteria scarica Si estende la classe android.content.BroadcastReceiver

Content Provider

Espongono i dati e le informazioni, è il canale di comunicazione tra le differenti applicazioni installate nel sistema. Si estende la classe android.content.Content Provider

Nota Bene: un’applicazione ha al suo interno le activity

Approfondimenti su Activity

I sistemi Android non possiedono schermi come quelli del PC per cui le finestre vengono affiancate solo parzialmente.

Le activity passano attraverso i seguenti stati:

Resumed o Active o Running: è visibile e riceve i dati in input

Paused: è parzialmente visibile, non riceve input

Stopped: non è visibile ma ancora in esecuzione

Destroyed: è rimossa dalla memoria del dispositivo

L’attività che occupa il display è in esecuzione e interagisce con l’utente, le altre attività sono ibernate per ridurre al minimo il consumo delle risorse.

Metodi della classe Activity

protect void onCreate(android.os.BundlesavedInstanceState) –> viene richiamato alla creazione dell’attività, l’argomento savedInstanceState restituisce al metodo un eventuale stato dell’attività passato ad un’altra istanza che è stata terminata. E’ null se non vi è alcuno stato precedentemente salvato.

protect void onRestart()–> segnala che l’attività è stata riavviata dopo che è stata arrestata.


protect void onStart()–> segnala che l’attività viene resa visibile allo schermo

protect void onResume()–>segnala che l’attività inizia ad interagire con l’utente.


protect void onPause()–> l’attività con l’utente termina


protect void onStop()–>attività non più visibile sullo schermo


protect void onDestroy()–>applicazione terminata

Per poter modificare il codice di questi metodi dobbiamo eseguire un override del metodo della classe madre, prestando attenzione ad inserire, nella prima riga di codice il costruttore della classe attraverso l’operatore super.

File APK

Le app vengono distribuite sotto forma di pacchetto autoinstallante in un file con estensione .APK (android Package), è un file compresso.

All’interno del file c’è un certificato che permette l’installazione di un pacchetto .APK su Abdroid: il certificato deve essere presente in qualsiasi pacchetto, altrimenti Android non installerà nulla.

Il certificato viene creato dallo sviluppatore può crearne di due tipi: uno di debagging (ad uso interno) oppure un di mercato (per al distribuzione) ed in questo caso se la copia sarà libera oppure limitata.

Il distributore aggiunge una sua chiave e permetterà la distribuzione. Oppure lo sviluppatore si autocrea un certificato ed in fase di installazione comparirà un messaggio “a suo rishio e pericolo”)

This entry was posted in Senza categoria. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *