Head First Desarrollo de Android
Si tienes una idea para una aplicación de Android asesina, este libro te ayudará a construir tu primera aplicación de trabajo en un santiamén. Aprenderá cómo estructurar su aplicación, diseñar interfaces, crear una base de datos, hacer que su aplicación funcione en varios teléfonos inteligentes y tabletas, y mucho más. ¡Es como tener un desarrollador de Android experimentado sentado a tu lado! Todo lo que necesita es un poco de conocimiento de Java para comenzar.
- ¿Cómo funciona una aplicación androide cliente-servidor WAMP?
- ¿Por qué JetBrains no incorporó Scala en IntelliJ para el desarrollo de Android en lugar de crear Kotlin?
- ¿Cuál es la forma rápida e inteligente de aprender el desarrollo de aplicaciones de Android?
- ¿Qué es el 'archivo de manifiesto' al diseñar una aplicación de Android?
- Para el desarrollo de Android y para Xcode, MacBook Pro de 15 pulgadas Retina Core i7 2.5 GHz es suficiente o Core i7 2.8 GHz será mucho mejor. ¿La programación necesita más procesador o más RAM?
Compre Head First, el libro de desarrollo de Android en línea a precios bajos en India
Capítulo 1 Comenzando: Buceando
Bienvenido a Androidville
La plataforma Android diseccionada
Esto es lo que vamos a hacer.
Su entorno de desarrollo
Instalar Java
Crea una aplicación básica
Construyamos la aplicación básica
Actividades y diseños desde 50,000 pies
Crear una aplicación básica (continuación)
Crear una aplicación básica (continuación)
Acaba de crear su primera aplicación de Android
Android Studio crea una estructura de carpetas completa para ti
Archivos útiles en tu proyecto
Editar código con los editores de Android Studio
Ejecuta la aplicación en el emulador de Android
Crear un dispositivo virtual Android
Ejecuta la aplicación en el emulador
Puedes ver el progreso en la consola
Prueba de conducción
¿Lo que acaba de suceder?
Refinando la aplicación
¿Qué hay en el diseño?
activity_main.xml tiene dos elementos
El archivo de diseño contiene una referencia a una cadena, no la cadena en sí
Veamos el archivo strings.xml
Tome la aplicación para una prueba de manejo
Tu caja de herramientas de Android
Capítulo 2 Creación de aplicaciones interactivas: aplicaciones que hacen algo
Vas a construir una aplicación Beer Adviser
Esto es lo que debes hacer
Crea el proyecto
Hemos creado una actividad y diseño predeterminados
Agregar componentes con el editor de diseño
activity_find_beer.xml tiene un nuevo botón
Una mirada más cercana al código de diseño
Cambios en el XML …
… se reflejan en el editor de diseño
Use recursos de cadena en lugar de codificar el texto
Cambiar el diseño para usar los recursos de cadena
Tomemos la aplicación para una prueba de manejo
Agregar valores a la ruleta
Haga que la ruleta haga referencia a una matriz de cadenas
Prueba de manejo de la ruleta
Necesitamos hacer que el botón haga algo
Haz que el botón llame a un método
Cómo se ve el código de actividad
Agregue un método onClickFindBeer () a la actividad
onClickFindBeer () necesita hacer algo
Una vez que tenga una Vista, puede acceder a sus métodos
Actualiza el código de actividad
La primera versión de la actividad.
Lo que hace el código
Probar los cambios
Construyendo la clase Java personalizada
Mejore la actividad para llamar a la clase Java personalizada para que podamos obtener consejos REALES
Código de actividad versión 2
¿Qué sucede cuando ejecutas el código?
Pruebe su aplicación
Tu caja de herramientas de Android
Capítulo 3 Actividades e intenciones múltiples: indique su intención
Las aplicaciones pueden contener más de una actividad.
Aquí está la estructura de la aplicación.
Crea el proyecto
Actualiza el diseño
Actualizar strings.xml …
Crea la segunda actividad y diseño
¿Lo que acaba de suceder?
Bienvenido al archivo de manifiesto de Android
Cada actividad necesita ser declarada
Una intención es un tipo de mensaje
Use una intención para comenzar la segunda actividad
¿Qué sucede cuando ejecutas la aplicación?
La historia continúa …
Pruebe la aplicación
Pase texto a una segunda actividad
Actualizar las propiedades de la vista de texto
putExtra () pone información adicional en un intento
Actualice el código CreateMessageActivity
Obtenga ReceiveMessageActivity para usar la información en la intención
¿Qué sucede cuando el usuario hace clic en el botón Enviar mensaje?
Pruebe la aplicación
Podemos cambiar la aplicación para enviar mensajes a otras personas.
Cómo funcionan las aplicaciones de Android
Pero no sabemos qué aplicaciones hay en el dispositivo.
Crea una intención que especifique una acción
Cambiar la intención de usar una acción
¿Qué sucede cuando se ejecuta el código?
La historia continúa …
El filtro de intención le dice a Android qué actividades pueden manejar qué acciones
Cómo usa Android el filtro de intención
Necesitas ejecutar tu aplicación en un dispositivo REAL
Pruebe la aplicación
¿Qué sucede si SIEMPRE desea que sus usuarios elijan una actividad?
Qué sucede cuando llamas a createChooser ()
La historia continúa …
Cambia el código para crear un selector
Pruebe la aplicación
Si NO tiene actividades coincidentes
Tu caja de herramientas de Android
Capítulo 4 El ciclo de vida de la actividad: ser una actividad
¿Cómo funcionan realmente las actividades?
La aplicación de cronómetro
El código de diseño del cronómetro
Cómo funcionará el código de actividad
Agregar código para los botones
El método runTimer ()
Los controladores le permiten programar el código
El código completo runTimer ()
El código de actividad completo del cronómetro
¿Qué sucede cuando ejecutas la aplicación?
La historia continua
Pruebe la aplicación
¿Lo que acaba de suceder?
Girar la pantalla cambia la configuración del dispositivo
Del nacimiento a la muerte: los estados de una actividad.
El ciclo de vida de la actividad: desde crear hasta destruir
Su actividad hereda los métodos del ciclo de vida.
¿Cómo lidiamos con los cambios de configuración?
O guardar el estado actual …
… luego restaura el estado en onCreate ()
¿Qué sucede cuando ejecutas la aplicación?
La historia continua
Pruebe la aplicación
Hay más en la vida de una actividad que crear y destruir.
El ciclo de vida de la actividad: la vida visible
Necesitamos implementar dos métodos más del ciclo de vida.
El código actualizado de Cronómetro
¿Qué sucede cuando ejecutas la aplicación?
Pruebe la aplicación
Pero, ¿qué pasa si una aplicación es solo parcialmente visible?
El ciclo de vida de la actividad: la vida útil en primer plano
Detenga el cronómetro si la actividad está en pausa
¿Qué sucede cuando ejecutas la aplicación?
Pruebe la aplicación
El código de actividad completo.
Su práctica guía de los métodos del ciclo de vida.
Tu caja de herramientas de Android
Capítulo 5 La interfaz de usuario: disfrute de la vista
Su interfaz de usuario está compuesta por diseños y componentes de GUI
Tres diseños clave: relativo, lineal y cuadrícula
RelativeLayout muestra vistas en posiciones relativas
Agregar relleno
Posicionar vistas relativas al diseño principal
Atributos para posicionar vistas en relación con el diseño principal
Posicionar vistas en relación con otras vistas
Atributos para posicionar vistas en relación con otras vistas
Use márgenes para agregar distancia entre vistas
RelativeLayout: un resumen
LinearLayout muestra vistas en una sola fila o columna
Un diseño lineal muestra las vistas en el orden en que aparecen en el diseño XML
Cambiemos un diseño lineal básico
Aquí está el punto de partida para el diseño lineal.
Haga una vista streeeeetch agregando peso
Agregar peso a una vista
Agregar peso a múltiples vistas
Use la gravedad para especificar dónde aparece el texto en una vista
Prueba de conducción
Usando el atributo android: gravity: una lista de valores
Mueva el botón hacia la derecha con gravedad de diseño
Más valores que puede usar con el atributo android: layout-gravity
El código de diseño lineal completo
LinearLayout: un resumen
GridLayout muestra vistas en una cuadrícula
Agregar vistas al diseño de cuadrícula
Creemos un nuevo diseño de cuadrícula
Comenzaremos con un boceto
Fila 0: agregue vistas a filas y columnas específicas
Fila 1: haga que una vista abarque varias columnas
Fila 2: hacer que una vista abarque varias columnas
El código completo para el diseño de la cuadrícula.
GridLayout: un resumen
Los diseños y los componentes de la GUI tienen mucho en común
Los componentes de la GUI son un tipo de vista
Qué ser una vista te compra
Un diseño es realmente una jerarquía de vistas
Jugando con vistas
Vista de texto
Editar texto
Botón
Botón de activación
Cambiar
Casillas de verificación
Botones de radio
Hilandero
Vistas de imagen
Imágenes: el diseño XML
Agregar imágenes a botones
Botón de imagen
Vistas de desplazamiento
Tostadas
Tu caja de herramientas de Android
Capítulo 6 Vistas de lista y adaptadores: cómo organizarse
Cada aplicación comienza con ideas
Clasifique sus ideas: actividades de alto nivel, categoría y detalle / edición
Navegando por las actividades
Use ListViews para navegar a los datos
Vamos a construir parte de la aplicación Starbuzz
La actividad de detalle de bebida
La estructura de la aplicación Starbuzz
Aquí están los pasos.
La clase bebida
Los archivos de imagen
El diseño de nivel superior contiene una imagen y una lista.
Use una vista de lista para mostrar la lista de opciones
El código de diseño completo de nivel superior
Prueba de conducción
Obtenga ListViews para responder a los clics con un oyente
Establecer al oyente en la vista de lista
El código completo de TopLevelActivity
Donde tenemos que
Una actividad de categoría muestra los datos de una sola categoría.
Una actividad de lista es una actividad que contiene solo una lista
Cómo crear una actividad de lista
android: las entradas funcionan para datos de matriz estática almacenados en strings.xml
Conecte vistas de lista a matrices con un adaptador de matriz
Agregue el adaptador de matriz a DrinkCategoryActivity
¿Qué sucede cuando ejecutas el código?
Pruebe la aplicación
Revisión de la aplicación: donde tenemos que
Cómo manejamos los clics en TopLevelActivity
Pase datos a una actividad utilizando el método ListActivity onListItemClick ()
El código completo de DrinkCategoryActivity
Una actividad detallada muestra datos para un solo registro
Recuperar datos de la intención
Actualiza las vistas con los datos
El código de DrinkActivity
¿Qué sucede cuando ejecutas la aplicación?
La historia continua
Pruebe la aplicación
Tu caja de herramientas de Android
Capítulo 7 Fragmentos: Hazlo modular
Tu aplicación debe verse bien en todos los dispositivos
Es posible que tu aplicación también deba comportarse de manera diferente
Los fragmentos te permiten reutilizar el código
La estructura de la aplicación de entrenamiento
Aquí están los pasos.
La clase de entrenamiento
Cómo agregar un fragmento a tu proyecto
El código de diseño de fragmento se parece al código de diseño de actividad
Cómo se ve el fragmento de código
Agregar un fragmento al diseño de una actividad
Pasar la identificación del entrenamiento al fragmento
Obtenga la actividad para configurar la ID de entrenamiento
Estados de actividad revisitados
El fragmento del ciclo de vida
Su fragmento hereda los métodos del ciclo de vida.
Establezca los valores de la vista en el método onStart () del fragmento
Pruebe la aplicación
Donde tenemos que
Necesitamos crear un fragmento con una lista
Un ListFragment es un fragmento que contiene solo una lista
Cómo crear un fragmento de lista
Usaremos un ArrayAdapter para establecer los valores en ListView
El código actualizado WorkoutListFragment
Mostrar WorkoutListFragment en el diseño MainActivity
Pruebe la aplicación
Conectando la lista al detalle
Necesitamos desacoplar el fragmento con una interfaz
Primero, agregue la interfaz al fragmento de la lista
Luego haga que la actividad implemente la interfaz
Desea que los fragmentos funcionen con el botón Atrás
No actualice, en su lugar, reemplace
Usar transacciones fragmentarias
El código actualizado de MainActivity
Pruebe la aplicación
Girar el dispositivo rompe la aplicación
El código WorkoutDetailFragment
Teléfono versus tableta
Las estructuras de la aplicación de teléfono y tableta
Poner recursos específicos de pantalla en carpetas específicas de pantalla
Las diferentes opciones de carpeta
Las tabletas usan diseños en la carpeta de diseño grande
El diseño del teléfono MainActivity
Los teléfonos usarán DetailActivity para mostrar detalles del entrenamiento
El código completo de DetailActivity
Use las diferencias de diseño para saber qué diseño está usando el dispositivo
El código revisado de MainActivity
Pruebe la aplicación
Tu caja de herramientas de Android
Capítulo 8 Fragmentos Anidados: Tratando con Niños
Crear fragmentos anidados
Los fragmentos y las actividades tienen ciclos de vida similares …
El código del cronómetro
El diseño del cronómetro Fragmento
Agregar el fragmento de cronómetro a WorkoutDetailFragment
Agregue un FrameLayout donde debería aparecer el fragmento
Luego muestre el fragmento en código Java
getFragmentManager () crea transacciones en el nivel de actividad
Los fragmentos anidados necesitan transacciones anidadas
Mostrar el fragmento en el método onCreateView () de su padre
El código completo de WorkoutDetailFragment
Pruebe la aplicación
¿Por qué se bloquea la aplicación si presionas un botón?
Veamos el código de diseño de StopwatchFragment
El atributo onClick llama a métodos en la actividad, no al fragmento
Primero, elimine los atributos onClick del diseño del fragmento
Hacer que el fragmento implemente OnClickListener
Adjunte el OnClickListener a los botones
El código del cronómetro
Pruebe la aplicación
Girar el dispositivo recrea la actividad
onCreateView () se ejecuta DESPUÉS de que las transacciones se hayan reproducido
El código WorkoutDetailFragment
Pruebe la aplicación
Tu caja de herramientas de Android
Capítulo 9 Barras de acción: tomar atajos
Grandes aplicaciones tienen una estructura clara
Diferentes tipos de navegación.
Comencemos con la barra de acción
Las bibliotecas de soporte de Android
Su proyecto puede incluir bibliotecas de soporte
Obtendremos la aplicación para usar temas actualizados
Aplicar un tema en AndroidManifest.xml
Definir estilos en archivos de recursos de estilo
Establecer el tema predeterminado en styles.xml
¿Qué sucede cuando ejecutas la aplicación?
Pruebe la aplicación
Agregar elementos de acción a la barra de acción
El archivo de recursos del menú
El menú showAsAction atributo
Agregar un nuevo elemento de acción
Infle el menú en la actividad con el método onCreateOptionsMenu ()
Reaccione a los clics de elementos de acción con el método onOptionsItemSelected ()
Crear orden Actividad
Inicie OrderActivity con el elemento de acción Crear pedido
El código completo de MainActivity.java
Pruebe la aplicación
Compartir contenido en la barra de acción
Agregue un proveedor de acciones compartidas a menu_main.xml
Especifica el contenido con una intención
El código completo de MainActivity.java
Pruebe la aplicación
Habilitar la navegación hacia arriba
Establecer el padre de una actividad
Agregar el botón Arriba
Pruebe la aplicación
Tu caja de herramientas de Android
Capítulo 10 Cajones de navegación: ir a lugares
La aplicación Pizza revisitada
Cajones de navegación deconstruidos
La estructura de la aplicación Pizza
Crear TopFragment
Crear pizza fragmento
Crear Fragmento De Pasta
Crear tiendas Fragmento
Agregar el diseño del cajón
El código completo de activity_main.xml
Inicializar la lista del cajón
Use un OnItemClickListener para responder a los clics en la vista de lista
El método selectItem () hasta ahora
Cambiar el título de la barra de acción
Cerrar el cajón de navegación
El código actualizado MainActivity.java
Haz que el cajón se abra y cierre
Usar un ActionBarDrawerToggle
Modificación de elementos de barra de acción en tiempo de ejecución
El código actualizado MainActivity.java
Permita que el cajón se abra y cierre
Sincronizar el estado ActionBarDrawerToggle
El código actualizado MainActivity.java
Pruebe la aplicación
El título y el fragmento no están sincronizados
Manejo de cambios de configuración
Reaccionando a los cambios en el back stack
Agregar etiquetas a fragmentos
Encuentra el fragmento usando su etiqueta
El código completo de MainActivity.java
Pruebe la aplicación
Tu caja de herramientas de Android
Capítulo 11 Bases de datos SQLite: inicie la base de datos
De vuelta a Starbuzz
Android usa bases de datos SQLite para conservar datos
Android viene con clases de SQLite
La estructura actual de la aplicación Starbuzz
Cambiaremos la aplicación para usar una base de datos
El ayudante de SQLite administra su base de datos
Crear el ayudante de SQLite
1. Especifique la base de datos
Dentro de una base de datos SQLite
Puede crear tablas utilizando el lenguaje de consulta estructurado (SQL)
Insertar datos utilizando el método insert ()
Actualizar registros con el método update ()
Condiciones múltiples
El código StarbuzzDatabaseHelper
Lo que hace el código auxiliar de SQLite
¿Qué pasa si necesita cambiar la base de datos?
Las bases de datos SQLite tienen un número de versión
Actualización de la base de datos: una visión general
La historia continúa …
Cómo toma decisiones el ayudante de SQLite
Actualice su base de datos con onUpgrade ()
Baje de categoría su base de datos con onDowngrade ()
Actualicemos la base de datos
Actualización de una base de datos existente
Renombrar tablas
El código auxiliar completo de SQLite
El código auxiliar de SQLite (continuación)
¿Qué sucede cuando se ejecuta el código?
Tu caja de herramientas de Android
Capítulo 12 Cursores y asinctascos: conexión a bases de datos
La historia hasta ahora…
Cambiaremos la aplicación para usar la base de datos.
El código actual de DrinkActivity
Obtener datos de la base de datos con un cursor
Una consulta le permite decir qué registros desea de la base de datos.
El método query () de SQLiteDatabase le permite construir SQL usando un generador de consultas
Especificar tabla y columnas
Aplicando múltiples condiciones a su consulta
Datos de pedido en su consulta
Usar funciones SQL en consultas
Cláusulas SQL GROUP BY y HAVING
Obtenga una referencia a la base de datos
getReadableDatabase () versus getWritableDatabase ()
getReadableDatabase ()
getWritableDatabase ()
El código para obtener un cursor
Para leer un registro desde un cursor, primero debe navegar hacia él
Navegando cursores
Obtener valores del cursor
El código de DrinkActivity
Lo que hemos hecho hasta ahora
El código actual de DrinkCategoryActivity
¿Cómo reemplazamos los datos de la matriz en ListView?
Un CursorAdapter lee suficientes datos
La historia continua
Un SimpleCursorAdapter asigna datos a vistas
Crear el SimpleCursorAdapter
Cerrar el cursor y la base de datos
El código revisado para DrinkCategoryActivity
Pruebe la aplicación
Poner información importante en la actividad de nivel superior
Añadir favoritos a DrinkActivity
Agregar una nueva columna al cursor
Responda a los clics para actualizar la base de datos
El código de DrinkActivity
Mostrar favoritos en TopLevelActivity
Mostrar las bebidas favoritas en activity_top_level.xml
Qué cambios son necesarios para TopLevelActivity.java
El nuevo código de actividad de nivel superior
Pruebe la aplicación
Los cursores no se actualizan automáticamente
Cambia el cursor con changeCursor ()
El código revisado TopLevelActivity.java
Pruebe la aplicación
Las bases de datos pueden hacer que su aplicación vaya en sloooo-moooo …
¿Qué código va en qué hilo?
AsyncTask realiza tareas asincrónicas
El método onPreExecute ()
El método doInBackground ()
El método onProgressUpdate ()
El método onPostExecute ()
La clase AsyncTask
Ejecute AsyncTask
El código DrinkActivity.java
Un resumen de los pasos de AsyncTask
Tu caja de herramientas de Android
Capítulo 13 Servicios: a su servicio
Los servicios trabajan detrás de escena
La aplicación de servicio iniciada
Vamos a crear un IntentService
El IntentService desde 50,000 pies
Cómo registrar mensajes
El código completo de DelayedMessageService
Declaras servicios en AndroidManifest.xml
Agregue un botón a activity_main.xml
Comienza un servicio usando startService ()
Pruebe la aplicación
Queremos enviar un mensaje a la pantalla
onStartCommand () se ejecuta en el hilo principal
El código completo DelayedMessageService.java
El contexto de la aplicación.
Pruebe la aplicación
¿Podemos mejorar el uso de tostadas?
Cómo usa el servicio de notificaciones
Puedes crear notificaciones usando un generador de notificaciones
Obteniendo su notificación para comenzar una actividad
Enviar la notificación utilizando el servicio de notificaciones
El código completo para DelayedMessageService.java
¿Qué sucede cuando ejecutas el código?
La historia continua
Pruebe la aplicación
Los servicios vinculados son más interactivos
Los pasos necesarios para crear el OdometerService
Crear un nuevo proyecto de cuentakilómetros
Cómo funciona la encuadernación
Define la carpeta
Obtén el servicio para hacer algo
La clase de servicio tiene cuatro métodos clave
Ubicación, ubicación, ubicación …
Agregue LocationListener al servicio
Registrar el LocationListener
Dile a la actividad la distancia recorrida
El código completo OdometerService.java
Actualizar AndroidManifest.xml
Donde tenemos que
Actualizar el diseño de MainActivity
Crear una conexión de servicio
Vincularse al servicio cuando comience la actividad
Mostrar la distancia recorrida
El código completo de MainActivity.java
¿Qué sucede cuando ejecutas el código?
La historia continua
Pruebe la aplicación
Tu caja de herramientas de Android
Capítulo 14 Diseño de materiales: vivir en un mundo material
Bienvenido a Material Design
CardViews y RecyclerViews
La estructura de la aplicación Pizza
Agregar los datos de la pizza
Agregar las bibliotecas de soporte
Crea el CardView
El código completo card_captioned_image.xml
RecyclerViews utiliza RecyclerView.Adapters
Crea el adaptador básico
Definir el ViewHolder del adaptador
Crear los ViewHolders
Cada vista de tarjeta muestra una imagen y un título.
Agregar los datos a las vistas de la tarjeta
El código completo para CaptionedImagesAdapter.java
Crear la vista de reciclador
Agregue RecyclerView al diseño
El código PizzaMaterialFragment.java
Un RecyclerView utiliza un administrador de diseño para organizar sus vistas.
Especificar el administrador de diseño
El código completo de PizzaMaterialFragment.java
Obtenga MainActivity para usar el nuevo PizzaMaterialFragment
¿Qué sucede cuando se ejecuta el código?
La historia continua
Pruebe la aplicación
Donde tenemos que
Crear pizzaDetalleActividad
Lo que PizzaDetailActivity.java necesita hacer
El código para PizzaDetailActivity.java
Conseguir un RecyclerView para responder a los clics
Puedes escuchar vistas desde el adaptador
Mantenga sus adaptadores reutilizables
Agregue la interfaz al adaptador
Implemente el oyente en PizzaMaterialFragment.java
Pruebe la aplicación
Trae el contenido hacia adelante
El código completo para fragment_top.xml
El código completo para TopFragment.java
Pruebe la aplicación
Tu caja de herramientas de Android
Saliendo de la ciudad …
Apéndice ART: El tiempo de ejecución de Android
¿Qué es el tiempo de ejecución de Android (ART)?
Rendimiento y tamaño
Apéndice ADB: el puente de depuración de Android
adb: tu amigo de línea de comandos
Ejecutando un caparazón
Obtenga la salida de logcat
Y mucho, mucho más…
Apéndice El emulador: el emulador de Android
¿Por qué el emulador es tan lento?
Cómo acelerar tu desarrollo de Android
Apéndice Sobras: las diez cosas principales (no cubrimos)
1. Distribuyendo su aplicación
2. Proveedores de contenido
3. La clase WebView
4. Animación
5. Mapas
6. cargadores de cursor
7. Receptores de radiodifusión
8. Widgets de aplicaciones
9. Gráficos NinePatch
10. Prueba