Le slide che abbiamo visto durante l'Android Code Camp 2012 che si è tenuto ad Urbino, presso la sede del corso di laurea in "Informatica Applicata", dell'Università degli Studi di Urbino "Carlo Bo".
Queste slide e questo lavoro, danno un'infarinatura di quello che è Android e il mondo che gira intorno a lui.
L'opera comprende i seguenti capitoli:
* Quando nasce Android?
* Dispositivi e Licenza di Distribuzione
* L'architettura del sistema operativo Android
* Perché Dalvik non è una vera Java Virtual Machine?
* Quante releases di Android sono stare rilasciate?
* Cosa ci posso fare con Android?
* Che app trovo di default su Android?
* Market alternativi per Android?
* Android è sicuro come sistema operativo?
* Mi conviene sviluppare una mia applicazione per Android?
* Posso guadagnare con Android?
* Link, Fonti e Note
Android App Development, Creare la nostra prima appNicola Corti
Intervento al Linux Day 2014@Pisa, organizzato da parte del GULP. L'intervento introduce allo sviluppo su piattaforma Android, mostrando i vari strumenti e gli accorgimenti da seguire per programmare sulla nota piattaforma del robottino verde.
Intel Software Android Webinar Series: Sviluppare le vostre app per Android, ...Francesco Baldassarri
Presentazione dal primo episodio della serie Intel Software Android Webinar (4 Novembre 2014)
Presentata da
Francesco Baldassarri
Italian Community Manager
Intel Corporation
Developer Relations Division
Intel Software & Services Group
Twitter: @francesco_1985
http://software.intel.com/it-it/android
Wireframe, mockup e visual: quali strumenti per le prime fasi di un design?Eugenio Minardi
Wireframe, mockup e visual: quali strumenti per le prime fasi di un design?
Metodo di sviluppo sperimentale, alternativo alla classica navigazione gerarchica e processo di progettazione di un portale aziendale.
Le slide che abbiamo visto durante l'Android Code Camp 2012 che si è tenuto ad Urbino, presso la sede del corso di laurea in "Informatica Applicata", dell'Università degli Studi di Urbino "Carlo Bo".
Queste slide e questo lavoro, danno un'infarinatura di quello che è Android e il mondo che gira intorno a lui.
L'opera comprende i seguenti capitoli:
* Quando nasce Android?
* Dispositivi e Licenza di Distribuzione
* L'architettura del sistema operativo Android
* Perché Dalvik non è una vera Java Virtual Machine?
* Quante releases di Android sono stare rilasciate?
* Cosa ci posso fare con Android?
* Che app trovo di default su Android?
* Market alternativi per Android?
* Android è sicuro come sistema operativo?
* Mi conviene sviluppare una mia applicazione per Android?
* Posso guadagnare con Android?
* Link, Fonti e Note
Android App Development, Creare la nostra prima appNicola Corti
Intervento al Linux Day 2014@Pisa, organizzato da parte del GULP. L'intervento introduce allo sviluppo su piattaforma Android, mostrando i vari strumenti e gli accorgimenti da seguire per programmare sulla nota piattaforma del robottino verde.
Intel Software Android Webinar Series: Sviluppare le vostre app per Android, ...Francesco Baldassarri
Presentazione dal primo episodio della serie Intel Software Android Webinar (4 Novembre 2014)
Presentata da
Francesco Baldassarri
Italian Community Manager
Intel Corporation
Developer Relations Division
Intel Software & Services Group
Twitter: @francesco_1985
http://software.intel.com/it-it/android
Wireframe, mockup e visual: quali strumenti per le prime fasi di un design?Eugenio Minardi
Wireframe, mockup e visual: quali strumenti per le prime fasi di un design?
Metodo di sviluppo sperimentale, alternativo alla classica navigazione gerarchica e processo di progettazione di un portale aziendale.
Presentazione introduttiva alla sviluppo sui piattaforma Android; verranno presentati gli elementi fondamentali e i tool per sviluppare applicazioni in Android.
La presentazione fa riferimento a del codice di esempio reperibile a http://code.google.com/p/dive-tutorials/
E stata composta in occasione di un seminario per Sardegna Ricerche.
Android è la piattaforma aperta di mobile computing sviluppata dalla Open Handset Alliance e sostenuta da Google. Basata su Linux e dotato di un ambiente Java ottimizzato e una ricca libreria di classi, Android si candida per essere l'ambiente applicativo ideale per la telefonia cellulare. Dopo aver illustrato l'architettura del framework e l'IDE di sviluppo, vedremo la realizzazione di una applicazione Java, sfruttando le librerie di Android e testandola sull'emulatore e su un terminale HTC G1. Si vedra' come realizzare una user interface, conoscere e utilizzare le semplici ma potenti funzionalità disponibili. In chiusura si fara' un confronto critico tra Android, iPhone e Java ME.
Ecco racchiuse in poche slide tutte le novità che Android 6.0 Marshmallow porterà con se. Le slide sono dedicate sia agli sviluppatori, ma anche agli utenti finali che vogliono scoprire tutte le ultime novità su Android Marshmallow.
Altre Novità e informazioni a questo indirizzo: http://bit.ly/1KO3U62
Introduzione ad Android del 14.10.2015 per la settimana della programmazione #codeweek2015.
La presentazione descrive il percorso migliore per iniziare lo sviluppo Android. Presentato anche Android Studio, l'IDE ufficiale della piattaforma. Consigli sulle librerie da utilizzare
Eccoci qui alla quinta puntata e serie di slide dedicate ad Android. Con questo quinto capitolo della saga andremo e soprattutto entreremo nel cuore della situazione.
Questa puntata vi porterò alla scoperta dei tutti quegli strumenti necessari e utili per lo sviluppo di un'applicazione per la piattaforma Android.
Come sempre anche queste slide finiranno con una folta lista di link utili allo scopo.
BUONA LETTURA
Agenda
1- What is Smartphone ?
2- Sample Applications
3- Smartphones Operating System
4- Comparison between Android and IOS
5- What is Android ?
6- Why Android ?
7- Android History
8- Android Versions
9- Android Architecture
10- Dalvik JVM
11- How to start with Android ?
12- Android Native
13- Install Android IDE
14- Activity Life Cycle
15- Create Simple Project
Event: Giffoni Open Makers Day 2013
Speaker: Valentina Pelliccia
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.
Presentazione introduttiva alla sviluppo sui piattaforma Android; verranno presentati gli elementi fondamentali e i tool per sviluppare applicazioni in Android.
La presentazione fa riferimento a del codice di esempio reperibile a http://code.google.com/p/dive-tutorials/
E stata composta in occasione di un seminario per Sardegna Ricerche.
Android è la piattaforma aperta di mobile computing sviluppata dalla Open Handset Alliance e sostenuta da Google. Basata su Linux e dotato di un ambiente Java ottimizzato e una ricca libreria di classi, Android si candida per essere l'ambiente applicativo ideale per la telefonia cellulare. Dopo aver illustrato l'architettura del framework e l'IDE di sviluppo, vedremo la realizzazione di una applicazione Java, sfruttando le librerie di Android e testandola sull'emulatore e su un terminale HTC G1. Si vedra' come realizzare una user interface, conoscere e utilizzare le semplici ma potenti funzionalità disponibili. In chiusura si fara' un confronto critico tra Android, iPhone e Java ME.
Ecco racchiuse in poche slide tutte le novità che Android 6.0 Marshmallow porterà con se. Le slide sono dedicate sia agli sviluppatori, ma anche agli utenti finali che vogliono scoprire tutte le ultime novità su Android Marshmallow.
Altre Novità e informazioni a questo indirizzo: http://bit.ly/1KO3U62
Introduzione ad Android del 14.10.2015 per la settimana della programmazione #codeweek2015.
La presentazione descrive il percorso migliore per iniziare lo sviluppo Android. Presentato anche Android Studio, l'IDE ufficiale della piattaforma. Consigli sulle librerie da utilizzare
Eccoci qui alla quinta puntata e serie di slide dedicate ad Android. Con questo quinto capitolo della saga andremo e soprattutto entreremo nel cuore della situazione.
Questa puntata vi porterò alla scoperta dei tutti quegli strumenti necessari e utili per lo sviluppo di un'applicazione per la piattaforma Android.
Come sempre anche queste slide finiranno con una folta lista di link utili allo scopo.
BUONA LETTURA
Agenda
1- What is Smartphone ?
2- Sample Applications
3- Smartphones Operating System
4- Comparison between Android and IOS
5- What is Android ?
6- Why Android ?
7- Android History
8- Android Versions
9- Android Architecture
10- Dalvik JVM
11- How to start with Android ?
12- Android Native
13- Install Android IDE
14- Activity Life Cycle
15- Create Simple Project
Event: Giffoni Open Makers Day 2013
Speaker: Valentina Pelliccia
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.
Presentazione architettura ed ambiente di sviluppo per dispositivi mobile dotati di SO Android. Verrà mostrata la struttura di un'applicazione creata con l'IDE Eclipse.
Alessandro Forte, co-fondatore di DotNetCampania, illustra ai soci dell’associazione la piattaforma Android e come sviluppare applicazioni per tale piattaforma.
Android & Bluetooth: hacking e applicazioniStefano Sanna
Uso di Bluetooth su Android 1.x e Android 2.x, con demo basata su Arduino Bluetooth e SensPod. Talk presentato alla conferenza whymca 2010 (http://www.whymca.org).
OVERVIEW: Java secondo Microsoft
STRUMENTI:Java nel cloud
MODALITA’: Il Development life cycle secondo Microsoft
APPROCCIO: Stack cloud native basato su JAVA ed Azure
CAMBIAMENTO: Know how necessario per lo sviluppo su AZURE con Java
OPPORTUNITA: Use case di implementazione «first approach»
2. Chi sono
• Emanuele Di Saverio
– Agile Coach @ beeweeb Technologies S.p.A.
– Senior Mobile Developer @ lo stesso
– Committer @ android-bluetooth
• http://code.google.com/p/android-bluetooth
– Committer @ QuadraSpace Project
• http://www.quadraspace.org
– Ing. Informatico
– Certified Scrum Master
– Sun Certified Mobile App Developer
– Sun Certified Java Programmer
Dive into Android
3. Topics
• Introduzione ad Android
– Cenni Storici
– SDK Overview
– Componenti
– Widget UI
– Networking & Persistenza
• Open Source
• Riding the Android Wave
• ...and now?
Dive into Android
4. Android in short
• Android è
– (sistema operativo + middleware + applicazioni)
per dispositivi mobili
• Android è quasi completamente Open Source
• Android si basa su un Kernel Linux 2.6 (non E’ linux - tuned libc)
• Applicazioni si possono sviluppare in due modi
– con Software Dev Kit in linugaggio Java 5
– con Native Dev Kit in C/C++
e testate su un Emulatore (basato su QEMU)
• Android Market
• Sponsorizzato dall’Open Handset Alliance (Google + 34)
Dive into Android
5. Once upon a Time
• Aprile 2002, Danger Inc. ->
Andy Rubin mostra a Sergei Brin e Larry Page
Dive into Android
6. Once upon a Time
• Ottobre 2008, HTC G1 (Android Developer Phone)
Dive into Android
7. Once upon a time
• Luglio 2005, Google acquista Android Inc., fondata da Andy
Rubin
• Novembre 2007 -> fondazione OHA, Android ufficializzato, SDK
early look 0.9
• Android Developer Challenge
• Maggio 2008 - Primo prototipo
• Agosto 2008 - Android Market
• Ottobre 2008 - SDK 1.0 HTC G1 sul mercato
• Aprile 2009 - SDK 1.5, HTC Magic sul mercato, NDK 1.5
• Sett 2009 - SDK 1.6, Nov 2009 - SDK 2.0 (???)
• HTC Droid - Nexus One...etc. etc.
Dive into Android
8. Android now
• 22 handset confermati (source androphones.com)
• non solo HTC e Motorola: Dell, Lenovo, Acer, Samsung, Huawei, LG
• stime per il 2010
– 50+ handset
– 34 milioni di esemplari (~5%, con l’IPhone stimato 36 milioni)
• recentemente SDK 2.2, OpenGL ES 2.0 (NDK), Contacts API, Sync
API, Bluetooth :, Paypal integration, Live Wallpapers
• not-so-good:
– Android Market
– Fragmentation
– Tablets - Archos 5 Internet Tablet :(
sources: ccsinsight.com, appleinsider.com
Dive into Android
11. Anatomia di una applicazione
• java source + external resources + manifest = APK!
• “All applications are created equal”
• risorse: stringhe, immagini, layouts, file binari, drawables....
• AndroidManifest.xml dichiara
– i componenti dell’applicazione
• Activities
• Services
• Broadcast Receivers
• Content Providers
– nome, base package, versione
– target SDK version, min SDK version
– compatibilità rispetto agli schermi (1.6 and up)
Dive into Android
12. Anatomia di una applicazione
$android create project
-n Dive
-t 4
-p Dive
-k org.whymca.dive
-a DiveActivity
$
Dive into Android
13. Anatomia di una applicazione
• Ogni applicazione corrisponde ad un User ID diverso (UNIX)
• Ogni applicazione viene eseguita nel suo Processo (UNIX)
– approccio simile a Chrome
• Ogni processo ha clonata nel suo spazio degli indirizzi una istanza
separata della Virtual Machine Java
• Dalvik Virtual Machine -> ottimizzata per
l’uso nei dispositivi mobili
Dive into Android
15. Activity
• gestisce la User Interface per una
specifica interazione che l’utente può
effettuare
• Responsabilità:
– creazione Widgets UI
– gestione eventi UI: bottoni premuti,
click su elementi, testo inserito etc..
– gest. orientamento schermo
– salvataggio stato (“all app running all
time”)
Dive into Android
16. Activity Lifecycle
Principio di Hollywood: “Don’t call me, I’ll call you”
Estendere la base class (Activity)
Override dei metodi (super.x()!)
Approccio comune nel mobile, permette
alla piattaforma di mantenere il controllo
“forzando” la gestione dei diversi stati
di una applicazione mobile
“Be a good citizen of Android!”
Una Activity è sempre aperta in risposta
ad un Intent lanciato dalla piattaforma
Dive into Android
17. Intents
• l’Intent in Android è un oggetto che rappresenta
– una richiesta di lanciare una Activity (utente o programmatica)
– una notifica di un evento nel sistema
L’Intent può essere propagato e intercettato dai vari componenti
del sistema
E’ composto da:
- Action name : cosa rappresenta l’intent
- Data URI e MIMEType: rappresenta il target dell’azione
- Categorie di appartenenza dell’Intent
- Extras
- [...]
Dive into Android
18. Intents
• Altri esempi di eventi:
– Livello batteria basso
– SD Card estratta
– Bluetooth acceso/spento
• Gli Intent vanno lanciati partendo da un Context
• Gli Intent implementano l’interfaccia Parcelable
Dive into Android
19. BroadcastReceiver
• Intercettare eventi e notifiche di sistema
– Accensione dell’handset
– Livello batteria basso
– SD Card estratta
– Bluetooth acceso/spento
– Incoming Call
– Allarmi
• Background processing in response to events
• “Brief Amount of Time” (10 seconds) or KILL
Dive into Android
20. Service
• “come una Activity senza UI”
• background o foreground service
• proprio lifecyle, i componenti fanno il bind ad un service
• necessaria la definizione traimte AIDL
• I/O della AIDL sono sempre Parcelable, per supportare la
comunicazione interprocesso (tramite Binder)
• es. MP3 Player, Twitter sync, GPS Navigation
Dive into Android
21. Content Provider
• Esporre una fonte di dati per l’utilizzo da applicazioni di terze
parti
• es. Rubrica Contatti -> Identificata da una URI
content://contacts/people/1
• ESPORRE un CR:
– Implementazione di una interfaccia CRUD
– Dichiarazione nel manifest - dichiarazione authority (URI)
•
Dive into Android
22. Persistenza
• SharedPreferences -> manciate di valori, preferenze dell’app
• File + Streams -> accesso alla SDCARD
• SQLLite
Networking
• Apache HTTPClient
• Android è ~ alla piattaforma Java 5.0
– java.util.concurrent !
• Bluetooth --> NEXT TALK :o)
Dive into Android
25. Layout
estendono android.view.ViewGroup
• LinearLayout
– sequenza, verticale o orizzontale
• RelativeLayout
– disposizioni “sotto a...a sinistra di...” etc. -> molto efficiente
• TableLayout
– questa è facile
• FrameLayout
– overlay, permette di sfruttare le trasparenze
Dive into Android
26. Liste
estendono android.view.AdapterView
• ListView • ExpandableListView
• GridView • Spinner
<RelativeLayout>
</RelativeLayout>
Dive into Android
27. Liste
• Un Adapter è un wrapper che fa da “ponte” tra le entità e la
rappresentazione grafica in UI Android
• incentrato intorno al metodo getView()
• riuso delle view, “inflate” esplicito delle view via System Service
• BaseAdapter è generico abbastanza per esigenze custom
• Supporto dall’SDK se l’Adapter è basato su una
– lista di oggetti: ArrayAdapter<T>
– query da un database: CursorAdapter
Dive into Android
28. Dialog
• Alert Dialog
• Progress Dialog
• Custom Dialog
– qualunque View uno vuole inflatare, mostrata in maniera modale
Dive into Android
29. Handler
• come Swing, Android gestisce la UI single-thread
• un Thread principale su cui vengono serializzate tutte le callback
di UI e quelle relative al lifecycle
• interagire con elementi di UI in un OnClickListener o in un
OnCreate è OK
• task di rete che ritorna e deve aggiornare la UI NON PUO’
CHIAMARE DIRETTAMENTE I METODI UI
– es. Thread di rete per recuperare il contenuto di un tweet, quando
finisce fa .setText() su un TextField ERRORE
• android.os.Handler assicura il processamento sincronizzato
con il Thread creatore! ( Looper.prepare() )
Dive into Android
32. Drawable
• package android.graphics.drawable
• definibili tramite XML
• immagini e colori interpretati e incpsulati da BitmapDrawable
e ColorDrawable
• nine-patch
• definizione nativa
Dive into Android
33. Tool chain
javac dx aidl aapt
emu adb jarsign jar
ddms
Dive into Android
34. Eclipse ADT
• Wizards per progetto Android, Manifest, file di risorse, esempi
• Debugger, Profiler, Controllo del device
• Controllo Emulatore, Virtual Devices
• Integrazione Logcat
• Editor dei file di layout e preview
• Test Automatici
Dive into Android
35. Open Source
• Android è Open-Source! quindi posso copiare-incollare-mischiare-
customizzare tutto!
...no.
• Riferimento a risorse non pubbliche (es. 9patch)!
• Feature presenti a runtime ma RIMOSSE DALL’SDK
• Permission in root space
• Contributi sono ufficialmente accettati, ma all’atto pratico, la
maggioranza dei contributi da non-googlers viene rifiutata
ignorata o insabbiata :(
Dive into Android
36. Riding the Android wave
• la frammentazione è dietro l’angolo
– Sciphone
– MOTOBlur
• l’Android Market è brutto
• anche l’adozione di massa è dietro l’angolo
– Ford: Sync AppLink e General Motors: Chevy Volt
– Sony Dragonpoint TV
– Tablets: http://miopad.com/
• dispositivi Real Time industriali
• Android sembra essere un “buon cavallo” su cui puntare in
termini di piattaforma e skills personali
Dive into Android
37. ...and now?
• http://developer.android.com
– Tutorials
– la documentazione latita, occhio ai Samples
– Blog!
• http://source.android.com/
– get source!
• twitters: @AndroidDev, @retomeier @romainguy, @gerdavax
• ML: android-developers e android-beginners
• tenete prenotato il posto! Bluetooth (Stefano Sanna) e Test
Driven Development (Carlo Codega) a seguire ;)
Dive into Android
38. GRAZIE!
Emanuele Di Saverio
emanuele.disaverio@gmail.com
twitter: @hazam
linkedIn: http://it.linkedin.com/in/emanueledisaverio
Dive into Android
Editor's Notes
build tramite ant (file properties)
icona differente per differnti densit&#xE0;
Dan Bromstein
javac
normalissima compilazione
dx
converte in formato .dex, Dalvik EXecutable
aapt, aidl
file generati (R, aidl)
package delle risorse
jar
un .apk &#xE8; un jar!
jarsigner
ogni app Android deve essere firmata!
draw9patch
ddms
debugger, inspector, profiler
logcat
supporto per livelli e filtri
adb
esecuzione comandi, pull/push file, accesso shell, installazione apps e instrumentation
emulator
Android Virtual Devices