Librinformatica

Newsletter

Libreria Gaia Scienza Edizioni Erasmo Edizioni del Boccale

Android 3 guida per lo sviluppatore

Apogeo

Android 3 guida per lo sviluppatore


39,00 € IVA compresa

9788850330737

  • Volumi: 1
  • Data Pubblicazione: 10/2011
  • Lingua: italiano
  • Livello: Intermedio Avanzato
  • Pagine: 604
  • Collana: Guida completa
  • Autore: Massimo Carli

La versione 3 di Android, il sistema operativo open source di Google dedicato ai dispositivi mobili, apre agli sviluppatori un mondo di nuove possibilità. Android 3 introduce novità già a partire dall'interfaccia utente, completamente rinnovata e arricchita dal punto di vista grafico e funzionale, ma soprattutto sfrutta le nuove possibilità offerte dai tablet: display di dimensioni maggiori e processori più potenti.

Il testo si articola in un percorso formativo che parte dalla scoperta dell'ambiente di sviluppo entrando poi nel vivo delle possibilità offerte dalla piattaforma e insegnando come gestire l'interfaccia, le comunicazioni tra le componenti, l'interazione con il Web, per arrivare a illustrare metodi di programmazione avanzata.

Questa guida accompagna il lettore alla scoperta degli strumenti necessari a progettare e realizzare applicazioni funzionali per le diverse tipologie di device, smartphone e tablet, prendendo come riferimento Android 2.3 Gingerbread e Android 3.2 Honeycomb.


Argomenti in breve:


  • Introduzione ad Android
  • Analisi di un'applicazione
  • Installazione e utilizzo di Eclipse
  • Ottimizzazione delle risorse
  • Gestione dei thread
  • Utilizzo delle API
  • Organizzazione dell'interfaccia utente
  • Gestione dei dati
  • Utilizzo della Rete e sicurezza
  • Progettazione e sviluppo per smartphone e tablet

 


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 Apple iOS, sia per Android, che segue fin dai suoi primi sviluppi. Per Apogeo è autore di Sviluppare applicazioni per Android.

Indice generale

Prefazione ...................................................................................................xv

Introduzione .................................................................................................xvii

Struttura del libro........................................................................xvii

A chi è rivolto questo libro...........................................................xix

Riferimenti e indicazioni tecniche.................................................xx

Risorse online...............................................................................xx

Ringraziamenti..............................................................................xx



Capitolo 1 Introduzione ad Android................................................................1

Che cos’è Android..........................................................................2

Una storia ormai lunga..............................................................3

Android e Java...........................................................................5

Confronto con J2ME.................................................................7

La Dalvik Virtual Machine..............................................................9

L’architettura di Android................................................................11

Il kernel di Linux......................................................................12

Librerie native..........................................................................13

Surface Manager..................................................................13

OpenGL ES........................................................................13

SGL....................................................................................14

Media Framework...............................................................14

FreeType.............................................................................14

SQLite................................................................................15

WebKit...............................................................................15

SSL.....................................................................................16

Libc....................................................................................16

Le core library..........................................................................16

Application framework.............................................................16

Activity Manager.................................................................16

Package Manager.................................................................17

Window Manager...............................................................17

Telephony Manager.............................................................17

Content Provider................................................................17

Resource Manager..............................................................17

View System.......................................................................18

Location Manager...............................................................18

Notification Manager..........................................................18

Conclusioni...................................................................................18



Capitolo 2 Anatomia di un’applicazione Android............................................19

Preparazione dell’ambiente............................................................19

Installazione dell’SDK...............................................................20

Gestione degli aggiornamenti...................................................22

Creazione di un progetto Android.............................................25

Utilizzo dell’emulatore e di Android Virtual Device...................35

Il file AndroidManifest.xml.......................................................42

Installazione degli Android Development Tools...............................45

Utilizzo del plug-in ADT.........................................................48

Gestione visuale delle risorse...............................................52

Esecuzione in un dispositivo reale..................................................55

Debug e logging di un’applicazione...............................................57

Abilitazione/disabilitazione del log............................................59

Android Debug Bridge..................................................................61

Conclusioni...................................................................................62



Capitolo 3 Componenti e risorse....................................................................63

I componenti di Android...............................................................64

Activity....................................................................................64

Intent e Intent Filter.................................................................65

BroadCast Intent Receiver........................................................66

Service.....................................................................................66

Content Provider......................................................................67

Architettura di un’applicazione.................................................68

Le risorse.......................................................................................68

Risorse di tipo Layout..............................................................72

Risorse elementari....................................................................77

String, String array e Integer array.......................................77

Format e plurali...................................................................83

Color..................................................................................85

ColorStateList.....................................................................87

Dimension..........................................................................88

Gestione automatica delle dimensioni..................................90

Gestione degli stili e dei temi...............................................93

Definizione di stili e temi con il plugin................................95

Risorse Drawable.....................................................................98

BitMapDrawable...............................................................100

ColorDrawable..................................................................101

GradientDrawable.............................................................102

ClipDrawable....................................................................104

NinePatchDrawable...........................................................105

LevelListDrawable.............................................................108

StateListDrawable..............................................................109

AnimationDrawable...........................................................110

Drawable senza XML........................................................112

Risorse associate a file.............................................................113

Assets................................................................................113

Risorse XML....................................................................115

Risorse Raw.....................................................................117

Altri tipi di risorse..................................................................118

Configurabilità delle risorse e I18N........................................119

Qualificatore e ADT..........................................................124

Conclusioni.................................................................................125



Capitolo 4 Activity e Intent.........................................................................127

Activity.......................................................................................127

Ciclo di vita di una Activity....................................................128

I metodi di callback...........................................................130

Terminazione di una Activity.............................................136

Un caso particolare: la modifica dell’orientation.................140

La gestione dei processi e il concetto di task.................................142

I task......................................................................................143

Intent..........................................................................................144

Intent espliciti.........................................................................144

Task affinity e modalità di lancio.............................................146

Utilizzo della Action...............................................................150

Intent e dati............................................................................153

Utilizzo della categoria...........................................................158

La gestione degli Extra............................................................162

Comunicazione tra Activity.........................................................163

Activity particolari.......................................................................166

LauncherActivity....................................................................167

AliasActivity...........................................................................167

Conclusioni.................................................................................170



Capitolo 5 View e Layout.............................................................................171

Le View.......................................................................................171

ViewGroup e Layout...................................................................178

I Layout predefiniti.................................................................179

LinearLayout.....................................................................180

viii Android 3

RelativeLayout..................................................................187

TableLayout.......................................................................189

FrameLayout.....................................................................191

AbsoluteLayout.................................................................193

Realizzare Layout personalizzati..............................................193

Algoritmo di definizione del layout...................................193

Definizione di attributi personalizzati................................195

Utilizzo del layout nel template XML................................197

Una specializzazione della classe ViewGroup......................199

Utilizzo nella Activity........................................................203

Componenti personalizzati nel layout editor......................203

ViewGroup per i dati...................................................................205

Adapter..................................................................................206

AdapterView..........................................................................208

ListAdapter, ArrayAdapter e ListView..............................209

ListActivity.............................................................................216

SimpleAdapter........................................................................219

GridView...............................................................................221

ExpandableListAdapter e ExpandableListView........................222

ScrollView..............................................................................225

Spinner e Gallery....................................................................228

TabHost,TabWidget e TabActivity..........................................233

Ottimizzazione delle risorse.........................................................238

Utilizzare il tool Hierarchy Viewer..........................................238

TextView compound Drawable...............................................243

Ottimizzazione del layout con layoutopt............................247

Utilizzo di .............................................................247

Include e layout editor.......................................................249

Utilizzo di ..............................................................250

Le ViewStub...........................................................................252

Conclusioni.................................................................................253



Capitolo 6 Widget ed eventi........................................................................255

La gestione degli eventi................................................................255

Eventi delle View....................................................................259

I listener della classe View..................................................260

Event Handler...................................................................262

Utility per la gestione degli eventi......................................263

L’attributo android:onClick...............................................263

I widget.......................................................................................264

La classe TextView.......................................................................265

Gestione dello stato................................................................265

TransformationMethod...........................................................265

CharSequence, Spanned e Spannable.......................................266

Linkify...................................................................................268

La classe HTML.....................................................................272

Indice generale ix

Ellipsizing...............................................................................273

Hint.......................................................................................275

Typeface.................................................................................275

La classe EditText.........................................................................275

Gestione dello stato dei widget standard..................................278

Selezioni.................................................................................279

Componenti con autocompletamento.....................................279

MultiAutoCompleteTextView................................................282

Button.........................................................................................282

CompoundButton e Checkable..............................................283

CheckBox..............................................................................283

RadioButton..........................................................................285

ToggleButton.........................................................................286

CheckedTextView e ListView......................................................287

Altri controlli...............................................................................289

ImageView e ImageButton.....................................................289

AnalogClock e DigitalClock...................................................293

Realizzare Custom View..............................................................293

Identificazione dell’eventuale specializzazione di una View esistente.............295

Identificazione degli eventuali attributi e inflating...................295

Personalizzazione dell’eventuale Drawable...............................297

Definizione delle operazioni del componente.........................297

Personalizzazione degli eventuali eventi...................................298

Definizione della fase di measuring.........................................299

Definizione delle modalità di rappresentazione........................299

Conclusioni.................................................................................300



Capitolo 7 Animation, Menu, Dialog e Toast.................................................301

Property Animation.....................................................................301

Come funziona.......................................................................302

La classe ObjectAnimator.......................................................310

Animazioni composte con la classe AnimatorSet......................311

Definizione dichiarativa delle animazioni................................312

Animation (legacy)......................................................................314

Animazioni dei layout.............................................................318

Tipi di animazioni tween...................................................318

Durata e startOffset...........................................................319

Tempo di applicazione della trasformazione.......................320

Modalità di ripetizione......................................................320

Gestione dell’asse Z...........................................................321

Interpolator.......................................................................321

Utilizzo di una ScaleAnimation.........................................322

RotateAnimation..............................................................326

TranslateAnimation...........................................................327

AlphaAnimation................................................................327

AnimationSet....................................................................328

Animazioni delle View............................................................329

Utilizzo della Camera........................................................332

Animator................................................................................333

Menu..........................................................................................334

Options Menu........................................................................335

Creazione del menu..........................................................335

Selezione di un MenuItem................................................342

Gestione dei SubMenu......................................................344

Utilizzo di Shortcut...........................................................346

ContextMenu.........................................................................346

Menu alternativi.....................................................................351

Definizione dichiarativa dei menu...........................................354

Toast............................................................................................356

Dialog.........................................................................................359

Utilizzo di un Dialog..............................................................359

Alert Dialog...........................................................................361

Progress Dialog.......................................................................364

CustomDialog........................................................................366

Conclusioni.................................................................................367



Capitolo 8 Gestione dei dati........................................................................369

Preferences..................................................................................369

Gestione di file............................................................................375

Accesso al file system locale....................................................376

File su SD Card......................................................................379

Creazione di una SD Card attraverso AVD.........................379

Creazione di SD Card attraverso mksdcard........................380

Utilizzo della SD Card nell’emulatore................................380

Un esempio.......................................................................381

Lettura di un file statico da apk...............................................381

SQLite.........................................................................................382

Gestione di un database SQLite..............................................382

Ciclo di vita di un database SQLite....................................382

Creazione delle tabelle.......................................................385

Esecuzione di query di update...........................................387

Estrazione dei dati.............................................................390

Utilizzo di un Cursor........................................................390

Esecuzione di query raw....................................................392

Gestione delle transazioni..................................................392

Utilizzare un SQLiteQueryBuilder.........................................394

La classe SQLiteOpenHelper..................................................396

Un esempio di CRUD...........................................................397

ContentProvider..........................................................................400

Realizzazione di un Content Provider....................................402

Definizione dei MetaData.................................................402

Realizzazione della classe ContentProvider........................404

Associazione tra URI e Mime-Type..................................405

Implementazione dell’operazione di query()......................407

Implementazione dell’operazione di insert().......................408

Implementazione dell’operazione di update().....................409

Implementazione dell’operazione di delete()......................410

Registrazione del ContentProvider

nell’AndroidManifest.xml..................................................410

Utilizzo di un ContentProvider..............................................410

I ContentProvider di Android.................................................412

Live Folder..................................................................................413

Conclusioni.................................................................................419



Capitolo 9 Multithreading e servizi.............................................................421

Thread: concetti base...................................................................422

Handler e Looper........................................................................425

Schedulazione di task..............................................................428

Looper...................................................................................428

La classe AsyncTask.................................................................430

Notification Service.....................................................................435

Creazione di una Notification.................................................436

Aggiunta di un suono........................................................438

Utilizzo della vibrazione....................................................438

Utilizzo dei LED...............................................................439

Altre configurazioni...........................................................439

Invio della notifica con il NotificationManager.......................440

Layout personalizzato per le Notification................................441

I componenti Service...................................................................442

Servizi locali...........................................................................443

Utilizzare la classe IntentService........................................448

Servizi remoti.........................................................................449

Definizione dell’interfaccia AIDL......................................451

Utilizzo di ADT per la generazione di Stub.......................455

Implementazione dell’interfaccia associata al servizio..........456

Implementazione del servizio............................................457

Definizione del servizio in AndroidManifest.xml...............457

Realizzazione del client..........................................................458

Broadcast Receiver......................................................................460

Utilizzare i Loader.......................................................................462

Conclusioni.................................................................................468



Capitolo 10 Utilizzo della rete e sicurezza......................................................469

Accesso a servizi HTTP...............................................................469

Invio di richieste in GET........................................................472

Condivisione di uno stesso HttpClient....................................474

Invio di richieste in Post.........................................................477

Android e la sicurezza..................................................................479

Gestione dei Permission..........................................................479

Creazione di Permission personalizzati...............................481

Utilizzo di un Permission personalizzato............................482

Un semplice esempio........................................................483

Conclusioni.................................................................................487



Capitolo 11 WebView e MapView..................................................................489

WebKit........................................................................................489

La classe WebView..................................................................489

Funzioni di navigazione.....................................................494

Impostazioni......................................................................495

Utilizzo di JavaScript.........................................................495

Visualizzazione delle mappe.........................................................497

MapView e MapActivity........................................................497

Personalizzazione di una MapView....................................502

Personalizzazione di una MapView....................................507

Sistemi di georeferenziazione..................................................509

Integrazione con il GPS e LocationManager...........................512

Conclusioni.................................................................................515



Capitolo 12 App Widget, Gesture e TextSpeech...............................................517

Le App Widget.............................................................................517

Creazione del layout...............................................................518

Definizione dell’App Widget Provider....................................519

Impostazione dei metadati......................................................522

Definizione dell’App Widget nel Manifest...............................523

Realizzazione di Activity di amministrazione..........................526

AppWidget e Collection.........................................................530

Realizzazione del layout....................................................532

Creazione di un’implementazione

di RemoteViewsService....................................................532

Creazione dell’AppWidgetProvider...................................533

Creazione di un’implementazione

di RemoteViewsFactory....................................................535

Definizione dei metadati dell’AppWidget..........................538

Registrazione dell’AndroidManifest.xml............................538

Test di esecuzione..............................................................539

Gestire la selezione degli item............................................539

Le gesture....................................................................................543

Utilizzo del Gestures Builder..................................................544

Caricamento e utilizzo delle informazioni delle gesture...........546

TextToSpeech..............................................................................548

Personalizzazione del TextToSpeech........................................551

Conclusioni.................................................................................552



Capitolo 13 Programmare i tablet.................................................................553

A cosa servono i Fragment...........................................................554

Anatomia di un Fragment............................................................555

Il ciclo di vita di un Fragment.................................................556

L’esempio in esecuzione..........................................................561

L’elemento e la gestione dello stato.....................565

FragmentManager e FragmentTransaction...............................572

Utilizzo della FragmentTransaction....................................573

Interazione con il back stack..............................................580

Salvataggio di un Fragment nel Bundle..............................581

La classe ListFragment.............................................................581

FragmentTransaction e animazioni.....................................582

Comunicazione tra Fragment e Activity..................................583

La classe DialogFragment........................................................584

Utilizzare la ActionBar.................................................................587

La gestione delle Action..........................................................589

ActionBar e Home dell’applicazione..................................592

Action e Fragment............................................................593

Gestire le ActionView.............................................................595

Utilizzare l’ActionBar con i tab...............................................597

Conclusioni.................................................................................600



Indice analitico .................................................................................................601

Carrello

Non ci sono prodotti

Spedizione 0,00 €
Totale 0,00 €

Carrello Acquista