Download - Dive into Android - GDG Bari
![Page 2: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/2.jpg)
About me
● Pescarese/Barlettano, 24 anni
● Programmatore da 12 anni
(Android da 3 anni)
● Membro GDG
● Socio QIRIS e Senior developer Intact
![Page 3: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/3.jpg)
Overview
Breve introduzione ad AndroidUn po' di storia e strumenti base (SDK e ADT)
DesignAndroid User Interface e app multidispositivo
SviluppoLe basi per creare un'applicazione
DistribuzioneGoogle Play Store e Developer Console
![Page 4: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/4.jpg)
Breve introduzione ad Android
![Page 5: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/5.jpg)
Riassunto delle puntate precedentiAndroid Inc. è stata fondata nell'ottobre 2003 da Andy Rubin, Rich Miner, Nick Sears e Chris White per lo sviluppo di quello che Rubin definì « [...] dispositivi cellulari più consapevoli della posizione e delle preferenze del loro proprietario».
Nel 2005 l'azienda è stata acquisita da Google e inizia lo sviluppo del sistema operativo Android basato su Linux.
Android 1.0Viene rilasciato il 23 settembre 2008 con l'HTC Dream.Gmail, Google Maps, Search, Talk e Contacts.
Android 1.5 CupcakeIl 30 aprile 2009 viene rilasciata Cupcake.Il robottino si fa "dolce".
Android 1.6 DonutRilasciato il 15 settembre 2009, Donut include aggiornamenti per sintesi e ricerca vocale.
![Page 6: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/6.jpg)
Riassunto delle puntate precedentiAndroid 2.0 EclairEclair viene rilasciato il 26 ottobre 2009. La fotocamera diventa funzionale e fanno la loro comparsa multi touch e live wallpaper.
Android 2.2 FroyoGoogle rilascia Froyo il 20 maggio 2010 migliorando drasticamente le prestazioni del sistema e aggiungendo il thethering
Android 2.3 GingerbreadGingerbread è stato rilasciato il 6 dicembre 2010. Viene migliorata la gestione energetica, aggiornata la UI e aggiunta la tecnologia NFC.Le API 10 sono supportate dal 96.1% dei dispositivi in circolazione ed è il miglior compromesso per sviluppare applicazioni fruibili da tutti.
![Page 7: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/7.jpg)
Riassunto delle puntate precedenti
Android 3.0 HoneycombHoneycomb, rilasciato il 19 ottobre 2011, è il sistema pensato e ottimizzato per i tablet.Nascono "Holo", la UI attualmente in uso sui dispositivi di ultima generazione, ed il supporto ai processori multi-core.
Fino all'uscita di Jelly Bean, Android 2.3 Gingerbread e 3.0 Honeycomb viaggiano parallelamente.
![Page 8: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/8.jpg)
Riassunto delle puntate precedentiAndroid 4.0 Ice Cream SandwichIl panino gelato di Google viene rilasciato il 19 ottobre 2011. Sebbene "Holo" sia sempre presente, la UI viene completamente riprogettata e introdotto Roboto, il nuovo font di sistema.Vengono introdotte un quintale di nuove funzioni e miglioramenti: pulsanti virtuali, launcher personalizzabile, app di sistema aggiornate, screenshots (prima occorreva il root), dettatura in tempo reale, face unlock, fotocamera migliorata, integrazione contatti con i social network.Le API 14 di Android 4.0 Ice Cream Sandwich sono supportate dal 63% dei dispositivi.
Android 4.1 Jelly BeanJelly Bean viene rilasciato il 9 luglio 2012 ed è la versione di Android più longeva e attualmente più utilizzata (34%).A colpire non sono le novità, ma la innumerevole quantità di miglioramenti: dalla CPU alle gestures, dalla condivisione al NFC, dal Play Store a Google Now.Viene definitivamente abbandonato Adobe Flash.Le versioni 4.2 e 4.3 avranno lo stesso nome.
![Page 9: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/9.jpg)
Nella prossima puntata...
Android 4.4 KitKatRilascio previsto: ottobre 2013
![Page 10: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/10.jpg)
Gli strumenti
● Eclipse standard (4.3)http://www.eclipse.org/downloads/
● Java SE Development Kit ¹ (JDK, 7u40)http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
● Java Runtime Environment (JRE, 7u40)http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html
● Android Software Development Kit (SDK, 22.2.1)http://developer.android.com/sdk/index.html > Download for other platforms
● Android Development Tools for Eclipse (ADT, 22.2.1)http://developer.android.com/sdk/installing/installing-adt.html
¹ utenti linux: disinstallare, se presente, OpenJDK e OpenJRE
![Page 11: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/11.jpg)
Android ADT
UI designer di Android ADT
![Page 12: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/12.jpg)
Le risorse indispensabili
● Android resource websitehttp://developer.android.com oppure http://d.android.com
● Android developers grouphttp://groups.google.com/group/android-developers
● Stack overflowhttp://www.stackoverflow.com
![Page 13: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/13.jpg)
Design
![Page 14: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/14.jpg)
Android User Interface
L'interfaccia utilizzata in Android si chiama
Holo
![Page 15: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/15.jpg)
Android User Interface
1. Status bar (notifiche e stato del telefono)2. Navigation bar (tasti virtuali quando non ci sono i fisici)3. Combined bar (status + navigation)
![Page 16: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/16.jpg)
Android User Interface
Elementi tipici di una schermata:
1. Action bar per interagire facilmente con l'app
2. View control* per navigare tra le schermate
3. Content area 4. Split action bar con azioni aggiuntive
importanti
* Nelle app più recenti è disponibileanche il Navigation drawer
![Page 17: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/17.jpg)
Android User InterfaceIl navigation drawer è simile al view control ma si apre lateralmente
oppure trascinando lo schermo dal bordo sinistro verso destra
![Page 18: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/18.jpg)
1. Icona dell'app2. View control3. Pulsanti di azione4. Altre azioni
Android User Interface
View control vs. Navigation drawer
![Page 19: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/19.jpg)
Android User InterfaceLibero sfogo alla fantasia!
![Page 20: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/20.jpg)
Android User InterfaceRisorse utili:http://developer.android.com/design/downloads/index.html
![Page 21: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/21.jpg)
Un'applicazione, tanti dispositivi
Premessa: al 21 settembrei dispositivi supportati nelPlay Store sono...
Obiettivo: rendere disponibile la nostra app per tutti i dispositivi
![Page 22: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/22.jpg)
Un'applicazione, tanti dispositivi
Premessa: al 21 settembre i dispositivi supportati nel Play Store sono 3.833.
Obiettivo: rendere disponibile la nostra app per tutti i dispositivi
Problema: ogni dispositivoha un display con unadiversa risoluzionee densità (dpi)
![Page 23: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/23.jpg)
Un'applicazione, tanti dispositivi
Density-independent pixel (dip): ogni pixel viene scalato automaticamente in base alla densità del display.
Android permette la definizione di più versioni di ogni immagine per adattarsi ai vari display
![Page 24: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/24.jpg)
Un'applicazione, tante categorie
● small● medium● large● xlarge
● mdpi● xdpi● xhdpi● xxhdpi
● land● port
● sw600dp
Tutte queste categorie di display possono essere combinate nella cartella drawable(drawable-mdpi-large)
![Page 25: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/25.jpg)
Sviluppo
![Page 26: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/26.jpg)
Il "manifesto"
Ogni app ha almeno un file manifest.xml che definisce tutte le specifiche e i requisiti dell'applicazione.
Nel manifest vengono indicati:
● Dettagli generici dell'app<application android:icon="@drawable/app_icon">
● Tutti i componenti definiti<activity> , <service> , <provider> , <receiver>
● Le interazioni delle activities con altre app<item-filter> <action android:name="android.intent.action.SEND" /></item-filter>
● Tutti i permessi richiesti<uses-permission android:name="android.permission.INTERNET" />
● Tutti i requisiti dei dispositivi<uses-sdk android:minSdkVersion="8" />
![Page 27: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/27.jpg)
Le activities
Activity
Rappresenta una singola schermata con una precisa interfaccia utente.
Nota tecnica: il Fragment
Rappresenta una porzione di interfaccia utente di un'activity
![Page 28: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/28.jpg)
Le activities
Un'activity principalecon 4 fragments:ultime notizie,foto,mappa,lista contatti
Una seconda activity con il testo completo di una notizia o un modulo di contatto
Una terza activity con una galleria fotografica
![Page 29: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/29.jpg)
Le activities
Non è detto che in ogni applicazione ci sia sempre almeno un'activity...
![Page 30: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/30.jpg)
Per avviare un'activity si usa il seguente blocco:Intent intent = new Intent(this, SignInActivity.class);startActivity(intent);
... è possibile passare dei parametri (Extra):Intent intent = new Intent(Intent.ACTION_SEND);intent.putExtra(Intent.EXTRA_EMAIL, recipientArray);startActivity(intent);
... oppure chiederne un risultato:Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);startActivityForResult(intent, PICK_CONTACT_REQUEST);
protected void onActivityResult() {...}
per terminare un'activity, si usa finish();
Avviare un'activity
![Page 31: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/31.jpg)
Il ciclo di vita di un'activityOgni activity esegue sequenzialmente gli stati indicati dal diagramma.Ad ogni stato è possibile definire determinate azioni.
Per esempio...onCreate: recupera dati salvati nel sistema e carica il layoutonResume: in un cronometro fa partire il tempo o lo aggiorna quando l'app torna dal backgroundonPause: salva dati temporanei nel sistema che possono essere recuperati onResume
onDestroy e onRestart sono gli unici stati che potrebbero non essere chiamati.
![Page 32: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/32.jpg)
Altri componenti di un'applicazione
Service
È un componente eseguito in background che esegue operazioni schedulate o lunghe oppure per sincronizzare un server remoto.
Un servizio non ha interfaccia utente.
Content provider
Gestisce una serie condivisa di dati di un'applicazione. È possibile salvare dati nel sistema, in un db SQLite, sul web o in qualunque posizione dove l'applicazione ha i permessi di accesso.
Broadcast receiver
È un componente che risponde a chiamate broadcast del sistema(esempio: caricabatteria collegato, wi-fi acceso, batteria al 10%, ecc.).
![Page 33: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/33.jpg)
Le preferences si usano per salvare nella memoria del dispositivo coppie di variabili chiave-valore per poter essere successivamente riutilizzate (preferenze, variabili condivise, preferiti, ecc.).
Si dividono in:
● Preferences che sono salvate in un unico file● SharedPreferences sono salvate in un file il cui nome è definito
dall'utente (utili per salvare più file di preferenze)
Le preferences
![Page 34: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/34.jpg)
Per salvare una preferenza:SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt("HighScore", newHighScore);
editor.commit();
Per leggere una preferenza:SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = 0;
long highScore = sharedPref.getInt("HighScore", defaultValue);
Le preferences
![Page 35: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/35.jpg)
Distribuzione
![Page 36: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/36.jpg)
Per pubblicare sul Play Store occorre innanzitutto una registrazione come sviluppatore all'indirizzo https://play.google.com/apps/publish/ e pagare una fee di 25 $ una volta sola.
Dopo una breve verifica si potrà accedere alla Google Play Developer Console
Google Play Developer Console
![Page 37: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/37.jpg)
Nella Google Play Developer Console è possibile configurare la promozione delle applicazioni, visualizzare statistiche, commenti e segnalazioni di arresti anomali
Google Play Developer Console
![Page 38: Dive into Android - GDG Bari](https://reader034.vdocument.in/reader034/viewer/2022051610/5484c62f5806b5ae588b46a4/html5/thumbnails/38.jpg)
Grazie per l'attenzione!Vi aspetto sulla pagina GDG Bari!
http://goo.gl/PO5SO5