Anteprima
Vedrai una selezione di 3 pagine su 7
Domande  di teoria Android,Ios,PX4,NuttX, Sistemi operativi Pag. 1 Domande  di teoria Android,Ios,PX4,NuttX, Sistemi operativi Pag. 2
Anteprima di 3 pagg. su 7.
Scarica il documento per vederlo tutto.
Domande  di teoria Android,Ios,PX4,NuttX, Sistemi operativi Pag. 6
1 su 7
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Permessi e approvazione nell'Android Manifest

Una applicazione per poter usufruire di una certa funzionalità o di una risorsa deve richiedere un permesso per poterla utilizzare. I permessi si dividono in Predefiniti, ovvero permessi standard di Android, e permessi Custom, ovvero permessi specifici per la singola app e definiti nell'Android Manifest. Sempre nel manifest, oltre a dichiarare i permessi, lo sviluppatore richiede anche l'approvazione di questi ultimi, cosa che può essere fatta dal sistema o tipicamente tramite una richiesta all'utente che approva l'accesso dell'applicazione a una certa risorsa del device.

Politiche di risparmio energetico di Android

Per il risparmio energetico, Android utilizza in particolare due strumenti: il lower killer memory e i wakelocks. Il lower killer memory è una politica basata sulla stima del ritardo che ogni task accumula a causa di mancanza di memoria.

quindi dal calcolo della pressione detta vmpressure che il sistema presenta in un certo momento. La stima di questi dati permette al sistema di decidere quali task killare per ridurre la pressione. La seconda policy di gestione dell'energia si basa sulla richiesta da parte delle applicazioni di wakelocks su determinate risorse. Questa richiesta deve essere fatta esplicitamente e in sua assenza Android revoca la risorsa all'applicazione.
  • Elencare e descrivere brevemente il ciclo di vita di una activity
Il ciclo di vita di una activity incomincia con la chiamata alla funzione onCreate() che crea un setup dell'activity, poi si passa alla funzione onStart() che inizializza l'activity e poi a onResume(), da questo momento l'activity è visibile ma non si può interagire con essa. In seguito l'activity inizia il run e risponde ad eventi dell'utente fin quando un'altra activity non si sovrappone su di essa, a quel punto viene chiamata la

funzione onPause(). Da questo momento l'activity può essere restartata chiamando la funzione onRestart() e tornare a onStart(), oppure l'intera applicazione può essere killata, oppure l'activity può essere stoppata con la funzione onStop() e poi essere distrutta con la funzione onDestroy(), oppure reinizializzata con onRestart().

Descrivere le tipologie di intent previste da Android

Un intent è un oggetto generico utilizzato per la comunicazione tra app. Esso è sostanzialmente un'azione accompagnata da dei dati utili per lo svolgimento della stessa. Un intent può essere esplicito o implicito. È esplicito se, oltre all'azione e ai dati, l'intent è accompagnato anche dall'applicazione che lo andrà a risolvere. È invece implicito se l'intent è generico e non specifica nessuna applicazione in particolare. A quel punto, il sistema sceglie come risolvere l'azione scegliendo una.

applicazione in grado di soddisfare la richiesta. • Descrivere sinteticamente il funzionamento del Broadcast Receiver Il Broadcast Receiver è un componente passivo di un'app che rimane in ascolto di eventi provenienti dal sistema o da altre applicazioni. Quando un evento si verifica, il Broadcast Receiver avvia una certa operazione per rispondere a tale evento. Il Broadcast Receiver è attivo anche quando l'applicazione non è in esecuzione. • Descrivere l'utilità dei tag e Il tag presente nell'Android manifest viene utilizzato per dichiarare dei permessi di tipo custom da parte dello sviluppatore di un'applicazione. La clausola sempre presente nell'Android manifest serve per richiedere un permesso predefinito o custom. • Spiegare il meccanismo basato su IPC Binder in Android Il Binder in Android è un driver che permette la comunicazione tra processi (IPC) all'interno del sistema operativo. Questo meccanismo consente a diverse componenti di un'applicazione di comunicare tra loro o con altre applicazioni, consentendo lo scambio di dati e l'esecuzione di operazioni in modo sicuro e controllato.

comunicazione tra processi. È situato nel kernel space e si occupa autonomamente di allocare e deallocare oggetti tramite reference counting, permette una comunicazione sincrona e ad ogni processo è assegnato un pool di thread per la gestione della comunicazione.

  • Elencare e descrivere i metodi utilizzati nei Service android
    • onCreate(): chiamato quando il servizio viene allocato in memoria
    • onDestroy(): distrugge/termina il service
    • onStartCommand(): chiamato quando il service deve compiere una operazione in background
    • onBind(): chiamato quando è necessario mettere in comunicazione un servizio con una applicazione che lo ha richiesto
  • Descrivere il funzionamento del content provider e indicare la struttura dell'URI
  • Il content provider è un componente delle applicazioni android che permette alle applicazioni di condividere tra loro dei dati. L'accesso ai dati avviene come in un database relazionale mediante dei cursori che possono scorrere attraverso

Le varie istanze. I metodi principali del content provider sono:

  • onCreate() che inizializza il content provider
  • insert(), update(), delete() che permettono di inserire, aggiornare ed eliminare delle istanze
  • query() restituisce il risultato di una query posta in ingresso

I content provider sono identificati da un URI composto da 4 sezioni: protocollo, package del content provider, tabella, identificativo dell'istanza.

Spiegare sinteticamente il block erasing e il memory wearing

Il block erasing si riferisce ad operazioni svolte sulle memore flash utilizzate nei dispositivi che funzionano mediante android. In particolare ogni qual volta un blocco di memoria deve essere scritto, tutti i dati devono essere prima cancellati esplicitamente in quanto non è possibile la sovrascrittura e questo determina un dispendio di tempo per cui viene effettuato durante i periodi di idle.

Il memory wearing invece si basa sull'utilizzo limitato delle celle della memoria, ovvero ogni cella può

Essere scritta e quindi utilizzata un numero limitato di volte, in questo modo si evita il deterioramento di determinate zone di memoria e l'utilizzo omogeneo di tutta la memoria.

Cosa si intende per Visible Lifetime e Foreground Lifetime

Il foreground Lifetime è il tempo in cui una activity android è visibile sullo schermo del dispositivo. Questo periodo va dalla chiamata del metodo onResume() fino alla chiamata del metodo onPause().

Il visible lifetime invece è il tempo per cui una activity è in memoria anche se non visibile in foreground e questo periodo va dalla chiamata del metodo onStart() fino a onStop()

Indicare le differenze tra activity e service

Activity e services sono entrambe due componenti delle applicazioni android tuttavia una activity rappresenta una schermata con cui l'utente può interagire e dotata quindi di interfaccia grafica. Un service invece è una componente priva di interfaccia grafica e che non è

mai visibile all'utente poiché un service lavora sempre in foreground e si occupa appunto di offrire un servizio all'applicazione.
  • Metodo di salvataggio dei dati delle applicazioni Android:
    • Preferenze: bundle usati per contenere dati, memorizza singole variabili all'interno di un array associativo il cui accesso è possibile mediante metodi come getPreferences() (preferenze delle activity), getSharedPreferences() (preferenze dell'applicazione) e getDefaultSharedPreferences() (preferenze di Android).
    • Storage interno: memoria interna del dispositivo.
    • SQLite: database relazionale accessibile mediante content provider.
    • Network Connection: salvataggio dei dati in rete.
  • Descrivere in modo schematico le principali funzioni del componente BSD del kernel XNU:
  • Il componente BSD del kernel XNU rappresenta la parte monolitica del kernel ibrido di iOS, esso si occupa della protezione della memoria e del Virtual File System.

definisce i threadlato utente e implementa la sicurezza mediante utenti, gruppi, policy e permessi nonché il Networking mediante TCP/IP.

Descrivere la Secure Boot Chain

La Secure Boot Chain rappresenta il processo di avvio del sistema operativo iOS. Si basa su una catena della fiducia in cui ogni step dell'avvio si occupa di validare e controllare l'integrità dello stato successivo in modo da mantenere in sicurezza tutto il processo.

La prima fase è la BootROM contenuta nella SecureROm. La BootRom contiene i primi comandi di avvio del sistema ed ha la fiducia implicita del sistema in quanto il codice è scritto direttamente in fase di produzione su una memoria di sola scrittura. Contiene la rootCA Key di Apple che serve per validare gli step successivi. Successivamente viene avviata la LLB (lower level bootloader) che è uno step di setup opzionale che si occupa di verificare l'integrità dello step successivo.

Successivamente viene

avviato il Bootloader di alto livello che controlla l'integrità del kernel che viene quindi caricato e lanciato.
  • Descrivere Cocoa MVC e indicare le differenze con MVC tradizionale

Cocoa MVC rappresenta l'architettura di una applicazione iOS.

M = Model è una componente delle app che si occupa di contenere i dati e la logica che manipola i dati

V = View è un rettangolo animato renderizzato dal Media Layer che si occupa dell'interfaccia grafica e dell'interazione con l'utente. La classe principale è UIView con alcune sottoclassi come UIButton o UILabel che forniscono pulsanti o caselle di testo.

C = Controller rappresenta il collegamento tra model e view, si occupa di rispondere alle azioni eseguite dall'utente sulla view aggiornandole e utilizzando i dati provenienti dal model

La differenza tra Cocoa MVC e MVC tradizionale sta nel fatto che in MVC tradizionale model e view sono strettamente collegate tra loro quindi è

impossibile il riutilizzo di view. In cocoa MVC il collegamento tra view e model è mediato dal controller che si interponetra di essi determinando un disaccoppiamento.
  • Descrivere i meccanisimi di protezione del kernel adottato da iOS
I principali meccanismi di protezione del kernel sono:
  • Write XOR Execute: le pagine in memoria possono essere esclusivamente o write o execute
  • Kernel Adress Space Layout Randomization: il kernel viene caricato in memoria ad indirizzi sempre casuali.
  • Kernel Patch Protection: viene effettuato un check hardware e software per la verifica dell'integrità
  • Pointer Autentication: i puntatori a celle di memoria sensibili sono crittografati
  • Descrivere il file system di iOS
Il APFS si basa sugli inode nubers a 64 bit e introduce il Copy on Write ovvero in caso di duplicazione di file, il duplicato non viene effettivamente salvato ma rappresenta una nuova entry allo stesso file. Quando questo viene modificato allora il file viene salvato.inmemoria.APFS introduce snapshot o
Dettagli
Publisher
A.A. 2020-2021
7 pagine
1 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Nicocarad di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Bari o del prof Ruta Michele.