Introduzione al sistema operativo mobile
ANDROID
09/11/2013 Giffoni Open Makers Day 2013
Google Developers Group Campania Co-organizer Valentina Pelliccia
OutLineIntroduzione al SO mobile Android Architettura di sistema SDK e Strumenti di Sviluppo Elementi principali di un APP Android Hello, Android !
Piattaforme per dispositivi mobili
Un dispositivo mobile rispetto ad un dispositivo desktop:Limitatezza delle risorse risorse Alimentazione a batteria Differenti protocolli di trasferimento dati Ridotte dimensioni del display
5%2%7%
35%
51%
ANDROID IOSBLACKBERRY WINDOWS PHONEOTHERS
Che cosa é Android?
2003 : L’azienda Android della Silicon Valley sviluppa il SO Android
2005 : L’azienda viene acquisita da Google
2007 : Google fonda il consorzio Open Handset Alliance OHA
2009 : Viene rilasciata la versione 1.5 denominata cupcake
Android è un sistema operativo open-source basato su kernel Linux e progettato per dispositivi mobili come smartphone e tablet. Il progetto Open Source Android guidato da Google dispone di una vasta comunità di sviluppatori divenendo in pochi anni uno dei leader nel mercato mobile.
1.5 1.6 2.0/2.1 2.2 2.3 3.0/3.1 4.0 4.1 4.4
Architettura di sistema
Application
Application Framework
Android Runtime
Libraries
Kernel Linux
Application
Client eMail Agenda Rubrica Mappe Browser Web .....
Android dispone di base di un insieme di applicazioni:
Application Framework
API di alto livello L' Application Framework fornisce alle applicazioni i seguenti servizi:
View Content Provider Resource Manager Notification Manager Activity Manager .....
Librerie Native
Sono librerie scritte in C/C++ che rappresentano il core di Android Librerie piú importanti sono:
Standard C Library Media Framework Surface Manager Webkit Librerie 3D FreeType SQLITE SSL (Secure Socket Layer)
Android RuntimeCore Libraries
Dalvik Virtual Machine
Ottimizzata per disp Embedded
Esegue un bytecode (Dalvik Executable .dex)
Register-based
Kernel Linux
il kernel funge da livello di astrazione tra l'hardware e il resto dello stack software.
Gestione dei driver HW (videocamera, display, scheda wireless..)
Sicurezza
Gestione della memoria
Stack di rete
Gestione dei processi
Software Development KitSoftware Development Kit
SDK : http://developer.android.com/sdk/index.html
Android Developer Tools : http://developer.android.com/tools/help/adt.html
Android Studio : http://developer.android.com/sdk/installing/studio.html
Completo Gratuito Versione per tutti i SO desktop Unico requisito : JDK Android Virtual Device
Download
Sviluppo di un applicazione Gli elementi di base per lo sviluppo di un’ app Android
1. Activity
2. Intent
3. Broadcast Receiver
4. Service
5. Content Provider
Le caratteristiche di un’ app Android
1. Ogni app gira in un proprio processo Linux
2. Ogni processo ha una propria VM
3. Ogni app puó utilizzare componenti di altre app
4. Non hanno un singolo entry point
5. Pacchetti APK
Activity
Interazione con l’utente Concetto di Schermata Interfaccia Utente composta da View Activity stack Ciclo di vita di un activity Deriva dalla classe base android.app.Activity
Un’ activity è una finestra che contiene l’interfaccia dell’applicazione, il suo scopo è gestire l’interazione tra l’utente e l’app.
Intent Broadcast ReceiverUn Intent descrive cosa una applicazione vuole che venga fatto
Rappresenta un messaggio in grado di attivare i tre componenti base di una applicazione: Activity, Service e Broadcast Rece
La struttura dati dell'Intent si compone dell'azione da effettuare e dei dati su cui agire. !
Un intent può essere !
!
A ciascun intent é possibile associare informazioni che vengono trasportate al componente di destinazione (metodi PUT e GET)
Esplicito Implicito
La classe BroadcastReceiver definita all'interno del package android.content. viene utilizzata quando si vuole che parte del codice della propria applicazione venga eseguito in risposta ad un evento esterno.
Non hanno interfaccia grafica
Utilizzano NotificationManager
ServiceUn Service è uno strumento mediante cui l'applicazione vuol comunicare al sistema che una data operazione deve essere eseguita in background anche quando l'utente non sta interagendo direttamente con essa.
Senza interfaccia grafica Processo in esecuzione in BG Ciclo di un service
Content Provider
Un ContentProvider è una classe che implementa un insieme standard di metodi per permettere alle altre applicazioni di salvare e recuperare dati.
Solitamente le applicazioni memorizzano i loro dati all'interno del file-system oppure in un database SQLite, ma se i dati di una applicazione devono essere condivisi con le altre bisogna usare la classe ContentProvider.
cc
c
Gestione delle risorse
AndroidManifest.xml
AndroidManifest.xml è il file di manifesto contenente le informazioni relative al progetto
Programmazione dichiarativa (in file di tipo XML)
Non ricompilazione del codice a valle di modifiche alle risorse
Rigorosa organizzazione della struttura del progetto (codice e file) in opportune cartelle
Hello, Android!
Il metodo findByView() ricerca e restituisce un componente, contenuto in un layout, a partire dal suo id (definito in R).
Le view hanno un identificativo di tipo integer (id) associato.
MainActivity.java
activity_main.xml
Hello, Android!activity_welcome.xml
welcome.java
Q&A
THANKS!
Top Related