El gran libro de Android 7ªEd.

28,61 

Otras opciones
28,61 

En Stock

  • ISBN: 9788426726629
  • Tipo de Encuadernación: Rústica
  • Dimensiones de producto: 17x2x24
  • Número de páginas: 552

Libro físico

  • Envíos a todo el mundo
  • Suscriptores obtienen descuentos en la compra de libros físicos, envíos gratuitos en España Peninsular y Baleares y acceso a todo el catálogo digital de Marcombo.
    ¿No estás suscrito? ¡Suscríbete!
¿Quieres un descuento? ¡Hazte en miembro!

Más información

Descripción

Índice

Detalles

Colecciones

Categorías

Características

  • Autor: TOMÁS GIRONÉS, JESUS
  • Fecha de publicación: 19/09/2018

Descripción

Android es la plataforma libre para el desarrollo 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, Volleyc

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.

Información adicional

Peso 1 kg
Dimensiones 24 × 17 × 2 cm

Índice

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<opcional>  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 <intent-filter>  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