Mobile computing e sviluppo Android: architettura, eventi e sensori

Documento di Università sul mobile computing (sviluppo Android). Il Pdf, utile per lo studio universitario di Informatica, esplora l'architettura del sistema Android, la gestione dei MotionEvent, i sensori e l'utilizzo del MediaPlayer, con diagrammi esplicativi.

Mostra di più

39 pagine

Mobile computing (sviluppo Android)
D’Angelo Carmine
E
Vitale Emanuele
Introduzione ad Android
Architettura sistema Android
Si basa su un kernel linux:
Spiegazione dei livelli:
1. Livello kernel: fornisce i servizi di base del sistema operativo, come : filesystem, gestione
della memoria e dei processi, gestione dell’interfaccia di rete e drivers per le periferiche.
Android ha anche dei servizi specifici e sono: la gestione della batteria, gestione della
memoria condivisa, low memory killer (quando c’è poca ram disponibile chiude i processi) ,
interprocess commincation ( comunicazione tra processi) e ecc..
2. Livello astrazione hardware (HAL): ci sono le interfacce standard per esporre le capacità
hardware ai servizi di livello superiore (audio, bluetooth, fotocamera, ecc.).
3. Android runtime ( ART e Dalvik VM): Android Runtime è una VM specifica per i sistemi
Android, ha CPU meno veloci rispetto ad un pC, meno RAM e ha una batteria limitata. ART

Visualizza gratis il Pdf completo

Registrati per accedere all’intero documento e trasformarlo con l’AI.

Anteprima

Introduzione ad Android

Mobile computing (sviluppo Android) D'Angelo Carmine E Vitale EmanueleIntroduzione ad Android Architettura sistema Android Si basa su un kernel linux:

System Apps Dialer Email Calendar Camera

Java API Framework

Managers Content Providers Activity Location Package Notification View System Resource Telephony Window

Native C/C++ Libraries

Android Runtime Webkit OpenMAX AL Libc Android Runtime (ART) Media Framework OpenGL ES . . . Core Libraries

Hardware Abstraction Layer (HAL)

Audio Bluetooth Camera Sensors

Linux Kernel

Drivers Audio Binder (IPC) Display Keypad Bluetooth Camera Shared Memory USB WIFI Power Management

Spiegazione dei livelli

  1. Livello kernel: fornisce i servizi di base del sistema operativo, come : filesystem, gestione della memoria e dei processi, gestione dell'interfaccia di rete e drivers per le periferiche. Android ha anche dei servizi specifici e sono: la gestione della batteria, gestione della memoria condivisa, low memory killer (quando c'è poca ram disponibile chiude i processi) , interprocess commincation ( comunicazione tra processi) e ecc ..
  2. Livello astrazione hardware (HAL): ci sono le interfacce standard per esporre le capacità hardware ai servizi di livello superiore (audio, bluetooth, fotocamera, ecc.).
  3. Android runtime ( ART e Dalvik VM): Android Runtime è una VM specifica per i sistemi Android, ha CPU meno veloci rispetto ad un pC, meno RAM e ha una batteria limitata. ARTaccetta da 5.0 livello API 21 mentre Dalvik API < 21. Le app che funzionano su ART funzionano anche su Dalvik il contrario no.
  4. Librerie native: molte componenti android necessitano di librerie native ( webkit, libc, openGL ES, ecc.).
  5. Applicatione framework: tuttle le funzionalità del S.O. Android vengono esposte tramite un API:
    • View System: fornisce gli elementi di base per le interfaccie utente (icone, testo, bottoni, ecc).
    • Content providers: per accedere a dati di altre app, per esempio ai contatti della rubrica.
    • Package manager: gestisce l'installazione delle app sul dispositivo mobile
    • Activity Manager: gestisce il ciclo di vita delle applciazioni, permette di passare da un'applicazione ad un'altra.

1. Applicazioni: sono le applicazioni già presenti nel cellulare, e quelle che saranno installate nel futuro.

Java in Android

Le app in Android sono scritte in Java, la libreria fornisce molte classi pronte all'uso: · classi di base: java .* , javax .* · classiper le app: android .* · Internet/web services: org .* · Unit testing: junit *.

Le app sono: · Scritte in Java · Compilate in file Java Bytecode · Un tool, DX, trasforma i file bytecode in un singolo file Dex Bytecode (classes.dex) · Il file classes.dex contiene anche tutti i file di dati necessari e viene istallato sul target device . ART Virtual Machine esegue il file Dex

Directory Android

1. Manifesto: informazioni generali sull'app (permessi, attività, icona 2. Java: file sorgenti 3. res, risorse: · Drawable: contiene tutto ciò che è disegnabile ( immagini, file uml per specifiche grafiche). · Layout: descrizione dell'interfaccia grafiche dell'app. · Values: contiene dei valori numerici ( conviene metteri i valori numerici in un file xml inserito in questa directory, per potervi accedere dalle classi java, così se un valore è presente in più classi basta cambiarlo una volta solo). · Menù: per i menù pop up · Mipmap: serve a gestire immagini di varie dimensioni, cioè stesse immagini ma a diverse risoluzioni. 1. Gradle: contiene files che tengono traccia delle dipendenze per generare l'apk. 2. Informazioni: dipendenze da altro codice

Emulatore vs Real device

  • Real device: Android Virtual Device Manager veloce, facile gestire l'input (es. rotazioni display) e l'esecuzione è reale. Attivare modalità sviluppatore e debug USB !!!
  • Emulatore: lento (a volte molto), alcune operazioni sono difficoltose è comunque un "simulatore" e possono esserci dei bug. Facile creare situazioni particolari:
    • batteria scarica
    • arrivo di un messaggio

Supporto multi-lingue

Le app includono risorse che possono essere specifiche per una particolare cultura. Ad esempio, un'app può includere stringhe specifiche per la lingua che vengono tradotte nella lingua delle impostazioni internazionali correnti. È una buona pratica mantenere separate le risorse specifiche della lingua dal resto della tua app. Android risolve le risorse specifiche per lingua in base alle impostazioni locali del sistema. È possibile fornire supporto per diverse impostazioni locali utilizzando la directory delle risorse nel progetto Android. È possibile fornire qualsiasi tipo di risorsa appropriata per la lingua dei propri utenti. Per aggiungere supporto per più lingue , bisogna creare directory aggiuntive all'interno di res/. Il nome di ogni directory dovrebbe rispettare il seguente formato:

<res> values-b + <codice lingua>, es: res/values-b+it/strings.xml • per le icone personalizzati invece: · < res> values-b + <codice lingua> [+<codice paese>], es: res/mipmap-b+it+IT/country_flag.png Android carica le risorse appropriate in base alle impostazioni locali del dispositivo in fase di runtime.

In java basta scrivere il seguente codice: // Get a string resource from your app's Resources String hello = getResources().getString(R.string.hello_world); // Or supply a string resource to a method that requires a string Text View textView = new TextView(this); textView.setText(R.string.hello_world);

Sviluppo Android

Ogni widgets dell' SDK Android è instanza della classe view o una sua sottoclasse. Listeners: sono metodi degli oggettti della classe view, sono sempre in "ascolto" per entrare in azione quando si verifica un evento specifico, ad esempio un pulsante ha il metodo onClick che viene eseguito quando l'utente preme il pulsante.

Manifest.xml

Ogni progetto android deve avere un file AndroidManifest.xml (con esattamente questo nome) nella radice del set di origine del progetto. Il file manifest descrive le informazioni essenziali sulla tua app per gli strumenti di sviluppo Android, il sistema operativo Android e Google Play.

Tra le altre cose, è richiesto il file manifest per dichiarare quanto segue: · Il nome del pacchetto dell'app, che di solito corrisponde allo spazio dei nomi del tuo codice. Gli strumenti di build di Android lo utilizzano per determinare la posizione delle classi di durante la creazione del progetto. · I componenti dell'app, che comprendono tutte le attività, i servizi, i ricevitori di trasmissione e i fornitori di contenuti. Ogni componente deve definire proprietà di base come il nome della sua classe Kotlin o Java. Può anche dichiarare funzionalità quali le configurazioni dei dispositivi che può gestire e filtri di intent che descrivono come il componente può essere avviato.· Le autorizzazioni di cui l'app ha bisogno per accedere a parti protette del sistema o altre app. Dichiara inoltre qualsiasi autorizzazione che devono avere altre app se vogliono accedere ai contenuti da questa app. · Le funzionalità hardware e software richieste dall'app che incidono su quali dispositivi possono installare l'app da Google Play.

Virtual device manager

Informazioni sugli AVD

Un AVD contiene un profilo hardware, un'immagine di sistema, un'area di memoria, skin e altre proprietà. Si consiglia di creare un AVD per ogni immagine di sistema che l'app potrebbe potenzialmente supportare in base all'impostazione <uses-sdk> nel manifest.

  • Profilo hardware: Il profilo hardware definisce le caratteristiche di un dispositivo, cioè quelle di fabbrica. AVD Manager viene fornito precaricato con determinati profili hardware, come i dispositivi Pixel, ed è possibile definire o personalizzare i profili hardware secondo necessità. Si noti che solo alcuni profili hardware sono indicati per includere Play Store. Ciò indica che questi profili sono pienamente compatibili con CTS e possono utilizzare immagini di sistema che includono l'app Play Store.
  • Immagini di sistema: Un'immagine di sistema etichettata con le API di Google include l'accesso ai servizi di Google Play. Un'immagine di sistema con il logo di Google Play nella colonna Play Store include l'app Google Play Store e l'accesso ai servizi di Google Play, inclusa una scheda Google Play nella finestra di dialogo Controlli estesi che fornisce un comodo pulsante per l'aggiornamento dei servizi Google Play sul dispositivo . Per garantire la sicurezza delle app e un'esperienza coerente con i dispositivi fisici, le immagini di sistema con Google Play Store incluse sono firmate con una chiave di rilascio, il che significa che non è possibile ottenere privilegi elevati (root) con queste immagini.

• Storage area: L'AVD ha un'area di archiviazione dedicata sulla macchina di sviluppo. Memorizza i dati dell'utente del dispositivo, come app e impostazioni installate, nonché una scheda SD emulata. Se necessario, è possibile utilizzare AVD Manager per cancellare i dati dell'utente, in modo che il dispositivo abbia gli stessi dati come se fosse nuovo. · Skin: Una skin dell'emulatore specifica l'aspetto di un dispositivo. Il gestore AVD fornisce alcune skin predefinite. Puoi anche definire la tua o usare skin fornite da terze parti. · AVD e caratteristiche dell'app: Assicurati che la tua definizione di AVD includa le funzioni del dispositivo da cui dipende la tua app, come navigatore, fotocamera, memoria Ram, screen size, screen resolution, ecc ..

Organizzazione file sviluppo Android

  • cartella Manifest: contiene il manifest.xml della nostra app.
  • cartella Java: contiene le classi/activity scritte in Java che fanno parte dell'applicazione
  • cartella generatedJava: le classi che puoi trovare qui sono tutte le classi di cui il progetto sarà costruito, comprese le librerie.
  • Cartella res: contiene le resource directory, che si dividono nelle seguenti:
    • animator: contiene i file xml che definiscono le animazioni.
    • color: contiene i file xml che definiscono i colori.
    • drawable: contiene i file Bitmap o file xml che definiscono risorce drawable.
  • mipmap: file drawable per diversi tipi di avvii, ad esempio un app che viene aperta da device con lingue diverse.
  • layout: contiene i file xml che definiscono il layout dell'interfaccia utente.
  • menu: definisce il layout per i menu.
  • raw: contiene file di tipo raw, come per esempio l'id di un elemnto di layout es: R.id.name, la struttura di base è R.raw.filename.

Non hai trovato quello che cercavi?

Esplora altri argomenti nella Algor library o crea direttamente i tuoi materiali con l’AI.