El Gran Libro de Android

Autor: Jesús Tomás

ISBN: 9788426726629

Editorial: Marcombo, S.A.

Edición: 7

Páginas: 551

Formato: 24x17x3

Cant. tomos: 1

Año: 2018

Idioma: España

Origen: España

Disponibilidad.: No Disponible

Gs 324.000
Actualizado a versión 9.0 Pie y Android Studio


Android es la plataforma libre para el desarrollo de aplicaciones moviles creada por Google. En la actualidad se ha convertido en la plataforma lider frente a otras como iPhone o Windows Phone. Las aplicaciones Android estan ampliando su rango de influencia a nuevos dispositivos tales como tabletas, Internet de las cosas, Wearables, TVs o automoviles.
Este libro pretende ser una guia para aquellos lectores que quieran introducirse en la programacion en Android. Todos los capitulos son descritos por medio de sencillos ejemplos, aumentando su nivel de complejidad a medida que avanzan los capitulos. La obra esta recomendada tanto para usuarios con poca experiencia, como para programadores experimentados.

A lo largo del libro se desarrollan dos aplicaciones de ejemplo: el mitico videojuego Asteroides y una aplicacion de gestion de informacion personal, Mis Lugares.

Se comienza con una version sencilla, que se ira completando capitulo a capitulo, para que incluya: fragments, graficos vectoriales y en mapa de bits, control mediante pantalla tactil y sensores, hilos con AsyncTask, notificaciones, geo]localizacion, mapas, multimedia, ficheros, XML, JSON, SQL, acceso a Internet, servicios Web, acceso a bases de datos en servidor PHP + MySQL, Volleyc

El libro propone un aprendizaje activo, con actividades, muchas a traves de Internet:

Video[Tutorial]:
Mas de 80 videos elaborados por el autor.
Ejercicio paso a paso: La mejor forma de aprender es practicando.
Practica: Para afianzar lo aprendido hay que practicar.
Solucion: Te sera de ayuda si tienes problemas en las practicas.
Recursos adicionales: Localiza rapidamente la informacion clave
Preguntas de repaso y reflexion: .Lo has entendido todo correctamente.

Jesus Tomas es doctor en informatica, profesor titular del Departamento de Comunicaciones en la Universidad Politecnica de Valencia. Trabaja en multiples proyectos de investigacion y transferencia de tecnologia relacionados con inteligencia artificial.
Ha publicado gran cantidad de trabajos en revistas cientificas y varios libros.


Lista de siglas y acrónimos . xvi
¿Cómo leer este libro? . xviii

CAPÍTULO 1. Visión general y entorno de desarrollo 21
1.1. ¿Qué hace que Android sea especial? . 22
1.2. Los orígenes 23
1.3. Comparativa con otras plataformas 24
1.4. Arquitectura de Android. 26
1.4.1. El núcleo Linux 27
1.4.2. Runtime de Android . 27
1.4.3. Librerías nativas 28
1.4.4. Entorno de aplicación 28
1.4.5. Aplicaciones . 29
1.5. Instalación del entorno de desarrollo 29
1.5.1. Instalación de la máquina virtual Java 30
1.5.2. Instalación de Android Studio 30
1.5.3. Creación de un dispositivo virtual Android (AVD) . 33
1.6. Las versiones de Android y niveles de API . 36
1.6.1. Las primeras versiones . 36
1.6.2. Cupcake . 37
1.6.3. Donut . 37
1.6.4. Éclair 37
1.6.5. Froyo 38
1.6.6. Gingerbread . 38
1.6.7. Honeycomb 39
1.6.8. Ice Cream Sandwich . 40
1.6.9. Jelly Bean 41
1.6.10. KitKat . 41
1.6.11. Lollipop 42
1.6.12. Marshmallow 44
1.6.13. Android Nougat 45
1.6.14. Android Oreo . 46
1.6.15. Android Pie 47
1.6.16. Elección de la plataforma de desarrollo 47
1.6.17. Las librerías de compatibilidad (support library) 49
1.7. Creación de un primer programa 51
1.8. Ejecución del programa. 55
1.8.1. Ejecución en el emulador 55
1.8.2. Ejecución en un terminal real 56
1.9. Ficheros y carpetas de un proyecto Android 58
1.10. Componentes de una aplicación . 61
1.10.1. Vista (View) 62
1.10.2. Layout 62
1.10.3. Actividad (Activity) . 62
1.10.4. Fragmentos (Fragment) . 62
1.10.5. Servicio (Service) . 63
1.10.6. Intención (Intent) 63
1.10.7. Receptor de anuncios (Broadcast Receiver) . 63
1.10.8. Proveedores de contenido (Content Provider) 63

1.11. Documentación y aplicaciones de ejemplo 64

1.11.1. Dónde encontrar documentación 64
1.11.2. Repositorio de ejemplos en GitHub 64
1.11.3. La aplicación ApiDemos 65
1.12. Depurar 67
1.12.1. Depurar con el entorno de desarrollo 67
1.12.2. Depurar con mensajes Log 68
1.13. Repaso de Java y la aplicación Mis Lugares 69
1.13.1. La clase Lugar 71
1.13.2. Tipos enumerados en Java 75
1.13.3. Las colecciones en Java 77

CAPÍTULO 2. Diseño de la interfaz de usuario: vistas y layouts . 79
2.1. Creación de una interfaz de usuario por código 80
2.2. Creación de una interfaz de usuario usando XML 81
2.2.1. Edición visual de las vistas 84
2.2.2. Los atributos de las vistas 90
2.3. Layouts 91
2.3.1. Uso de ConstraitLayout 96
2.4. Una aplicación de ejemplo: Asteroides 104
2.5. La aplicación Mis Lugares 107
2.6. Recursos alternativos 110
2.7. Tipos de recursos y recursos del sistema 115
2.7.1. Tipos de recursos 115
2.7.2. Acceso a los recursos 117
2.7.3. Recursos del sistema 118
2.8. Estilos y temas 119
2.8.1. Los estilos 119
Heredar de un estilo propio . 120
2.8.2. Los temas 121
2.9. Uso práctico de vistas y layouts 122
2.9.1. Acceder y modificar propiedades de las vistas por código . 124
2.10. Uso de tabs (pestañas) 126

CAPÍTULO 3. Actividades e intenciones . 131
3.1. Creación de nuevas actividades . 132
3.2. Comunicación entre actividades . 137
3.3. Añadiendo un menú a una actividad . 138
3.4. La barra de acciones (ActionBar) 141
3.5. Creando actividades en Mis Lugares 144
3.5.1. Creando la actividad VistaLugarActivity 144
3.5.2. Creando la actividad EdicionLugarActivity 154
3.6. Creación y uso de iconos 157
3.7. Añadiendo preferencias de usuario 161
3.7.1. Organizando preferencias . 164
3.7.2. Cómo se almacenan las preferencias de usuario . 165
3.7.3. Accediendo a los valores de las preferencias . 166
3.7.4. Verificar valores correctos 167
3.8. Añadiendo una lista de puntaciones en Asteroides 168
3.9. Creación de listas con RecyclerView 171
3.10. Las intenciones . 182
3.10.1. Añadiendo fotografías en Mis Lugares 189
Cargar fotografías grandes de forma eficiente 193
3.10.2. La etiqueta 196

CAPÍTULO 4. Gráficos en Android 197
4.1. Clases para gráficos en Android 198
4.1.1. Canvas 198
4.1.2. Paint 201
Definición de colores 202
4.1.3. Path 203
4.1.4. Drawable 205
BitmapDrawable 206
VectorDrawable 207
GradientDrawable 211
TransitionDrawable 212
ShapeDrawable 213
AnimationDrawable 213
4.2. Creación de una vista en un fichero independiente 214
4.3. Creando la actividad principal de Asteroides 218
4.3.1. La clase Gráfico . 219
4.3.2. La clase VistaJuego 222
4.3.3. Introduciendo la nave en VistaJuego 224
4.4. Representación de gráficos vectoriales en Asteroides 226
4.5. Animaciones 229
4.5.1. Animaciones de vistas . 230
4.5.2. Animaciones de propiedades 233

CAPÍTULO 5. Hilos de ejecución, pantalla táctil y sensores 235
5.1. Uso de hilos de ejecución (threads) 236
5.1.1. Introducción a los procesos e hilos de ejecución 236
5.1.2. Hilos de ejecución en Android . 236
5.1.3. Creación de nuevos hilos con la clase Thread 239
5.1.4. Introduciendo movimiento en Asteroides 242
5.1.5. Ejecutar una tarea en un nuevo hilo con AsyncTask 245
5.1.6. Mostrar un cuadro de progreso en un AsyncTask 248
5.1.7. El método get() de AsyncTask 250
5.2. Manejando eventos de usuario . 252
5.2.1. Escuchador de eventos de la clase View 252
5.2.2. Manejadores de eventos . 254
5.3. El teclado . 254
5.4. La pantalla táctil 256
5.4.1. Manejo de la pantalla táctil multi-touch . 260
5.4.2. Manejo de la nave con la pantalla táctil 262
5.4.3. Gestures 263
5.5. Los sensores . 264
5.5.1. Un programa que muestra los sensores disponibles y sus valores en tiempo real . 269
5.5.2. Utilización de los sensores en Asteroides . 271
5.6. Introduciendo un misil en Asteroides 273

CAPÍTULO 6. Multimedia y ciclo de vida de una actividad 279
6.1. Ciclo de vida de una actividad 280
6.1.1. ¿Qué proceso se elimina? 285
6.1.2. Guardando el estado de una actividad 288
6.2. Utilizando multimedia en Android 290
6.3. La vista VideoView 292
6.4. La clase MediaPlayer 294
6.4.1. Reproducción de audio con MediaPlayer 295
6.5. Un reproductor multimedia paso a paso 296
6.6. Introduciendo efectos de audio con SoundPool 302
6.7. Grabación de audio 304

CAPÍTULO 7. Seguridad y posicionamiento . 309
7.1. Los tres pilares de la seguridad en Android 310
7.1.1. Usuario Linux y acceso a ficheros . 311
7.1.2. El esquema de permisos en Android . 311
7.1.3. Permisos en Android 6 Marshmallow 317
7.1.4. Permisos definidos por el programador en Android 323
7.2. Localización 326
7.2.1. Sistemas de geolocalización en dispositivos móviles 327
7.2.2. La API de localización de Android 327
7.2.3. Emulación del GPS con Android Studio 332
7.2.4. Estrategias para escoger un proveedor de localización 333
7.3. Google Maps 338
7.3.1. Obtención de una clave Google Maps 339
7.4. Fragmentando los asteroides 352

CAPÍTULO 8. Servicios, notificaciones y receptores de anuncios 355
8.1. Introducción a los servicios en Android 356
8.1.1. Ciclo de vida de un servicio 357
8.1.2. Permisos 359
8.2. Un servicio para ejecución en segundo plano 359
8.2.1. El método onStartCommand() 362
8.3. Un servicio en un nuevo hilo con IntentService 363
8.3.1. La clase IntentService 366
8.4. Las notificaciones de la barra de estado 368
8.4.1. Configurando tipos de avisos en las notificaciones 373
Asociar un sonido 375
Añadiendo vibración 373
Añadiendo parpadeo de LED 374
8.5. Receptores de anuncios 375
8.5.1. Receptor de anuncios registrado en AndroidManifest.xml 375
8.5.2. Arrancar una actividad en una nueva tarea desde un receptor de anuncio 380
8.5.3. Arrancar un servicio tras cargar el sistema operativo 382
8.5.4. Anuncios broadcast permanentes 384
8.6. Un receptor de anuncios como mecanismo de comunicación. 384
8.7. Un servicio como mecanismo de comunicación entre aplicaciones 386
8.7.1. Crear la interfaz en AIDL . 387
8.7.2. Implementar la interfaz 388
8.7.3. Publicar la interfaz en un servicio 389
8.7.4. Llamar a una interfaz remota 390

CAPÍTULO 9. Almacenamiento de datos 393
9.1. Alternativas para guardar datos permanentemente en Android 394
9.2. Añadiendo puntuaciones en Asteroides 395
9.3. Preferencias 397
9.4. Accediendo a ficheros 400
9.4.1. Sistema interno de ficheros 401
9.4.2. Sistema de almacenamiento externo 403
Verificando acceso a la memoria externa 405
Almacenando ficheros específicos de tu aplicación en el
almacenamiento externo 406
Almacenando ficheros compartidos en el almacenamiento externo 408
Almacenando externo con varias unidades 408
9.4.3. Acceder a un fichero de los recursos 409
9.5. Trabajando con XML . 411
9.5.1. Procesando XML con SAX 412
9.5.2. Procesando XML con DOM . 417
9.6. Trabajando con JSON 418
9.6.1. Procesando JSON con la librería Gson 419
9.6.2. Procesando JSON con la librería org.json 422
9.7. Bases de datos con SQLite 424
9.7.1. Los métodos query() y rawQuery() 427
9.7.2. Uso de bases de datos en Mis Lugares 429
9.7.3. Adaptadores para bases de datos 432
Operaciones con bases de datos en Mis Lugares 438
Loaders y LoaderManager 445
9.7.4. Bases de datos relacionales 446
9.7.5. El método onUpgrade de la clase SQLiteOpenHelper 449
9.8. Content Provider 450
9.8.1. Conceptos básicos 451
El modelo de datos 451
Las URI 451
9.8.2. Acceder a la información de un ContentProvider 452
Leer información de un ContentProvider 453
Escribir información en un ContentProvider 455
Borrar y modificar elementos de un ContentProvider 456
9.8.3. Creación de un ContentProvider 457
Definir la estructura de almacenamiento del ContentProvider 457
Extendiendo la clase ContentProvider 458
Declarar el ContentProvider en AndroidManifest.xml 462
9.8.4. Acceso a PuntuacionesProvider desde Asteroides 463

CAPÍTULO 10. Internet: sockets, HTTP y servicios web 465
10.1. Comunicaciones en Internet mediante sockets 466
10.1.1. La arquitectura cliente/servidor . 466
10.1.2. ¿Qué es un socket?. 466
Sockets stream (TCP) . 467
Sockets datagram (UDP) 467
10.1.3. Un ejemplo de un cliente/servidor de ECHO . 468
10.1.4. Un servidor por sockets para las puntuaciones 473
10.2. La web y el protocolo HTTP 476
10.2.1. El protocolo HTTP . 477
10.2.2. Versión 1.0 del protocolo HTTP 478
10.2.3. Utilizando HTTP desde Android 480
10.2.4. Uso de HTTP con AsyncTask 485
10.3. La librería Volley 486
10.3.1. Descargar un String con Volley 487
10.3.2. Paso de parámetros con el método POST 489
10.3.3. Descargar imágenes con Volley 490
10.4. Servicios web 493
10.4.1. Alternativas en los servicios web 493
Servicios web basados en SOAP 494
Servicios web basados en REST 495
10.4.2. Acceso a servicios web de terceros 499
10.4.3. Un servicio web con Apache, PHP y MySQL 502
Utilizando el servicio web PHP desde Asteroides 508
Creación de un servicio web en un servidor de hosting 510
Utilizando AsyncTask de forma síncrona 513
10.4.4. Comparativa sockets / servicios web 516

ANEXO A. Fragments 519

ANEXO B. Diálogos de fecha y hora 533
Clases para trabajar con fechas en Java 533

ANEXO C. Referencia Java 541

ANEXO D. Referencia de la clase View y sus descendientes 551

ANEXO E. Sufijos utilizados en recursos alternativos 551
No hay enlaces disponible
Libros Relacionados