Sviluppare applicazioni per Android guida completa
Apogeo
- Autore: Massimo Carli
- Collana: Guida completa
- Pagine: 416
- Livello: Intermedio Avanzato
- Lingua: italiano
- Data Pubblicazione: 03/2011
- Volumi: 1
Android è un sistema operativo open source per dispositivi mobili basato su Linux.
La sua struttura aperta permette di personalizzare le funzioni principali del sistema e sviluppare applicazioni.
L’obiettivo di questo libro è quello di guidare il lettore attraverso tutte le fasi necessarie alla realizzazione di un'applicazione Android caratterizzata da una forte integrazione con sistemi esterni. Particolare attenzione è dedicata a passaggi chiave come la gestione dell'interfaccia grafica, la comunicazione tra le componenti, l'interazione con fonti di dati, fino alla pubblicazione sull'Android Market. Grazie a questo testo, aggiornato alla versione 2.3 della piattaforma, gli sviluppatori avranno tutti gli strumenti e le conoscenze fondamentali per creare applicazioni dedicate a smartphone, ma anche a tablet altri device.
Argomenti in breve:
L'autore
Massimo Carli, cofondatore di Mokabyte e socio JIA (Java Italian Association), progetta e sviluppa applicazioni Java dal 1995. Ha maturato esperienze di insegnamento presso l’Università di Padova per il corso di Diploma di Ingegneria Informatica. Dal 2004 è docente di Sun Microsystems per i corsi relativi alle tecnologie Java, XML, Web Services, GlassFish e Web 2.0. Attualmente il suo interesse è orientato verso la realizzazione di applicazioni in ambito mobile sia per la piattaforma iPhone, sia per Android, che segue fin dai suoi primi sviluppi. Per Apogeo è autore di Android guida per lo sviluppatore. Potete contattarlo sul suo blog.
Indice generale
Prefazione ...................................................................................................xi
Introduzione .................................................................................................xiii
Capitolo 1 Sviluppare Mobile ........................................................................ 1
Il problema della frammentazione ...................................................... 2
Gestione delle feature a runtime................................................... 7
Compatibilità e Api Level ............................................................ 8
Confi gurazioni hardware e compatibilità ...................................... 9
Gestire schermi di dimensioni diverse .............................................. 10
Gestione automatica delle dimensioni ........................................ 14
Calcolo esplicito delle dimensioni .............................................. 18
Conclusioni .................................................................................... 20
Capitolo 2 Il processo di pubblicazione .........................................................21
La gestione della fi rma .................................................................... 22
Il processo di fi rma .................................................................... 23
La gestione delle versioni ................................................................ 29
Pubblicazione sull’Android Market .................................................. 31
Upload Assets ............................................................................ 33
Listing details ............................................................................. 37
Publishing options ..................................................................... 37
Contact information e Consent ................................................. 38
L’applicazione nel Market .......................................................... 39
License Verifi cation Library ............................................................. 41
Architettura di base .................................................................... 42
Esempio di utilizzo .................................................................... 43
Interagire con il Market .................................................................. 52
Monitorare l’applicazione ................................................................ 56
Conclusioni .................................................................................... 58
Capitolo 3 Native Development Kit e applicazioni web ...................................59
Nativo o non nativo? ....................................................................... 59
Native Development Kit ................................................................. 61
Installazione ambiente ................................................................ 61
Creazione del progetto Android nativo ....................................... 66
Interfaccia tra Java e codice nativo .............................................. 69
Implementazione codice nativo .................................................. 72
Build dell’applicazione ............................................................... 73
Esecuzione dell’applicazione ...................................................... 74
Sviluppare per Android con tecnologia web ..................................... 74
La gestione del display ............................................................... 74
Utilizzo della WebView .............................................................. 81
Interazione con JavaScript .......................................................... 83
Conclusioni .................................................................................... 86
Capitolo 4 Test e Instrumentation ................................................................87
Perché si testano le applicazioni ....................................................... 87
Vari tipi di test ................................................................................ 88
Unit Test .................................................................................... 89
Functional Test ........................................................................... 90
Regression Test .......................................................................... 91
Le basi di JUnit ............................................................................... 91
Un semplice esempio di Unit Test .............................................. 96
Stub e Mock ........................................................................... 101
JUnit e Instrumentation Framework .............................................. 102
Le specializzazioni JUnit di Android ......................................... 105
Unit Test di una Activity ................................................................ 108
Functional Test di una Activity ....................................................... 115
Simulazione eventi touch ......................................................... 119
Conclusioni .................................................................................. 121
Capitolo 5 Tecniche di sincronizzazione .......................................................123
L’importanza della Rete ................................................................ 124
Utilizzo di Content Provider ......................................................... 127
Android e cloud computing .......................................................... 128
I servizi REST ......................................................................... 130
Implementazione delle richieste HTTP .................................. 134
Una semplice applicazione REST ............................................ 136
Operazioni di sincronizzazione ................................................ 137
Sincronizzazione in inserimento ..........................................137
Sincronizzazione in aggiornamento .....................................139
Sincronizzazione in cancellazione ........................................139
Sincronizzazione in lettura ...................................................140
La cancellazione lato server ..................................................141
Implementazione del Content Provider .................................... 141
Defi nizione DB e confi gurazione mime-type ......................144
Implementazione delle operazioni di accesso ai dati .............148
Implementazione del processor ................................................ 152
Utilizzo asincrono del Content Provider ..............................152
Utilizzo asincrono del RestMethod .....................................153
La classe Processor ...............................................................157
Accesso alla lista e ContentProviderOperation .....................166
Utilizzo del Processor in un servizio ....................................... 171
Richiesta di una operazione REST al Service ......................172
Gestione delle notifi che .......................................................177
Il punto della situazione .......................................................184
Gestione di più richieste: la classe ServiceHelper ..................185
Conclusioni .................................................................................. 191
Capitolo 6 Sistemi di autenticazione ..........................................................193
Un tipico scenario di utilizzo ........................................................ 194
Il componente AccountManager ................................................... 196
La gestione del token ............................................................... 201
Cancellazione di un account .................................................... 205
Creare un modulo di autenticazione custom .................................. 205
Confi gurazione dell’Authenticator ........................................... 206
Defi nizione XML dei parametri di confi gurazione del servizio ........... 207
Implementazione dell’AccountAuthenticator per la creazione di un account ..... 209
Esempio di creazione di un account ......................................... 214
Implementazione dell’AccountAuthenticator
per la verifi ca di un account ..................................................... 222
Confi gurazione delle proprietà dell’account ............................. 226
La gestione del token ............................................................... 227
La gestione delle feature di un account ..................................... 230
Update delle credenziali ........................................................... 231
Creazione del service di autenticazione .................................... 232
Conclusioni .................................................................................. 233
Capitolo 7 La gestione dei contatti ....................................................235
Scenario e modello dei dati ........................................................... 235
Lookup URI ........................................................................... 240
Lo stato di un contatto ............................................................. 241
Realizzare un SyncAdapter............................................................ 242
Estensione del server per la gestione dei contatti....................... 243
Abilitazione dei contatti alla sincronizzazione ........................... 244
Defi nizione dei permessi per la gestione dei contatti ................ 246
Dichiarazione del SyncAdapter ............................................... 246
Implementazione del SyncAdapter ........................................... 248
Richiesta del token all’AccountManager ..............................251
Accesso alle informazioni dei contatti sul server ...................252
Aggiornamento del Content Provider dei contatti ...............254
Inserimento di un nuovo contatto .......................................257
Aggiornamento dei dati di un contatto ................................263
Cancellazione dei dati di un contatto ...................................263
Defi nizione del servizio per il SyncAdapter .............................. 264
Verifi chiamo il funzionamento del SyncAdapter ....................... 265
Aggiunta delle informazioni sullo status ................................... 273
SyncAdapter e lo scenario REST .................................................. 276
Gestione interfaccia ................................................................. 277
Gestione sincronizzazione ........................................................ 280
Conclusioni .................................................................................. 280
Capitolo 8 Android UI pattern ....................................................................281
La gestione degli account .............................................................. 282
Gestione della sincronizzazione dei contatti .............................. 287
Integrazione con il QuickContact ............................................ 288
QuickAction ................................................................................. 299
La classe QuickActionItem ...................................................... 301
La classe QuickActionWindow ................................................ 305
La ActionBar ................................................................................. 312
La Dashboard ................................................................................ 319
La classe DashboardItem .......................................................... 324
La classe Dashboard ................................................................. 328
Selezione di un item ed effetto di blur ..................................... 330
Live wallpaper ............................................................................... 333
Conclusioni .................................................................................. 341
Capitolo 9 ListView ....................................................................................343
ListView e Adapter ........................................................................ 343
ListView predefi nite ................................................................. 345
Utilizzo della ListActivity ......................................................... 347
La gestione delle celle .............................................................. 350
Holder pattern ......................................................................... 358
Interazione con i dati attraverso CursorAdapter ........................ 360
Liste con elementi di tipi diversi............................................... 363
La divisione in categorie .......................................................... 366
Tecniche di paginazione dei dati .............................................. 377
Il caricamento lazy delle informazioni ...................................... 379
Conclusioni .................................................................................. 385
Capitolo 10 Search Service ...........................................................................387
Funzionamento di default ............................................................. 387
Confi gurazione Search Service ...................................................... 390
Attivazione di una ricerca ........................................................ 390
Implementazione della ricerca .................................................. 393
Gestione dei suggerimenti ....................................................... 399
Integrazione con Quick Search Box ......................................... 402
Ricerca vocale .............................................................................. 404
Conclusioni .................................................................................. 406
Indice analitico ................................................................................................407