Actualizado: Abril 2020
En el artículo anterior del curso vimos la estructura de un proyecto Android y aprendimos dónde colocar cada uno de los elementos que componen una aplicación, tanto elementos de software como recursos gráficos o de datos. En éste nuevo artículo vamos a centrarnos específicamente en los primeros, es decir, veremos los distintos tipos de componentes de software con los que podremos construir una aplicación Android.
En Java o .NET estamos acostumbrados a manejar conceptos como ventana, control, eventos o servicios como los elementos básicos en la construcción de una aplicación.
Pues bien, en Android vamos a disponer de esos mismos elementos básicos aunque con un pequeño cambio en la terminología y el enfoque. Repasemos brevemente, a modo de glosario, los componentes principales que pueden formar parte de una aplicación Android o tener relevancia en su funcionamiento. Por claridad, y para evitar confusiones al consultar documentación en inglés, intentaré traducir lo menos posible los nombres originales de los componentes.
Activity
Las actividades (activity) representan el componente principal de la interfaz gráfica de una aplicación Android. Se puede pensar en una actividad como el elemento análogo a una ventana o pantalla en cualquier otro lenguaje visual.
View
Las vistas (view) son los componentes básicos con los que se construye la interfaz gráfica de la aplicación, análogo por ejemplo a los controles de Java o .NET. De inicio, Android pone a nuestra disposición una gran cantidad de controles básicos, como cuadros de texto, botones, listas desplegables o imágenes, aunque también existe la posibilidad de extender la funcionalidad de estos controles básicos o crear nuestros propios controles personalizados.
Fragment
Los fragmentos (fragment) se pueden entender como secciones o partes (habitualmente reutilizables) de la interfaz de usuario de una aplicación. De esta forma, una actividad podría contener varios fragmentos para formar la interfaz completa de la aplicación, y adicionalmente estos fragmentos se podrían reutilizar en distintas actividades o partes de la aplicación. No es obligatorio utilizar fragmentos en una aplicación, pero sí nos serán de mucha ayuda en ciertas ocasiones, por ejemplo para adaptar la interfaz de nuestra aplicación a distintos dispositivos, tamaños de pantalla, orientación, etc.
Service
Los servicios (service) son componentes sin interfaz gráfica que se ejecutan en segundo plano. Conceptualmente, son similares a los servicios presentes en cualquier otro sistema operativo. Los servicios pueden realizar cualquier tipo de acción, por ejemplo actualizar datos, lanzar notificaciones, o incluso mostrar elementos visuales (p.ej. actividades) si se necesita en algún momento la interacción con del usuario.
Content Provider
Un proveedor de contenidos (content provider) es el mecanismo que se ha definido en Android para compartir datos entre aplicaciones. Mediante estos componentes es posible compartir determinados datos de nuestra aplicación sin mostrar detalles sobre su almacenamiento interno, su estructura, o su implementación. De la misma forma, nuestra aplicación podrá acceder a los datos de otra a través de los content provider que ésta última haya definido.
Broadcast Receiver
Un broadcast receiver es un componente destinado a detectar y reaccionar ante determinados mensajes o eventos globales generados por el sistema (por ejemplo: “Batería baja”, “SMS recibido”, “Tarjeta SD insertada”, …) o por otras aplicaciones (cualquier aplicación puede generar mensajes (intents, en terminología Android) de tipo broadcast, es decir, no dirigidos a una aplicación concreta sino a cualquiera que quiera escucharlo).
Widget
Los widgets son elementos visuales, normalmente interactivos, que pueden mostrarse en la pantalla principal (home screen) del dispositivo Android y recibir actualizaciones periódicas. Permiten mostrar información de la aplicación al usuario directamente sobre la pantalla principal.
Intent
Un intent es el elemento básico de comunicación entre los distintos componentes Android que hemos descrito anteriormente. Se pueden entender como los mensajes o peticiones que son enviados entre los distintos componentes de una aplicación o entre distintas aplicaciones. Mediante un intent se puede mostrar una actividad desde cualquier otra, iniciar un servicio, enviar un mensaje broadcast, iniciar otra aplicación, etc.
En el siguiente artículo empezaremos ya a ver algo de código, analizando al detalle una aplicación sencilla.
26 comentarios
[…] el siguiente post veremos los componentes software principales con los que podemos construir una aplicación […]
[…] Componentes de una aplicación Android […]
[…] entorno de desarrollo para Android y comentar la estructura básica de un proyecto y los diferentes componentes software que podemos utilizar ya es hora de empezar a escribir algo de código. Y como siempre lo mejor es […]
Tengo una duda, cuado hablas de Services, quote: «… si se necesita en algún momento la interacción con del usuario» supongo que quieres decir que realiza las acciones SIN necesitar la interacción del usuario cierto?
El tutorial está excelente, las cosas fundamentales y explicado de forma breve y muy clara, muchas gracias!!
Tal como indicas los servicios suelen ser procesos en segundo plano que no necesitan la intervención del usuario, pero sin embargo la frase del artículo es correcta, lo que quiero decir con ella es que si por determinadas circunstancias un servicio precisa de información por parte del usuario también es capaz de mostrar pantallas de información, formularios de datos, etc. Saludos.
esta superr essto0 tiene time q quiero empessar en androidd me parece muy interesante
excelente tutorial y lo estoy leyendo capitulo por capitulo!!
Terminado el 2011 con este excelente tuto…
Hola buenas.
Enhorabuena por el manual.
Una pregunta
¿Los broadcast receiver serian como los ActionListeners ?
SAludos
Una obra de arte, magnifico. Puedo hacer una donación, para recibir el manual en PDF, por algún medio distinto a Pay Pal. (tengo problemas con ellos…)
El comentario mío anterior era una pregunta….
Men muy buenos tutoriales un gran aporte para las personas que quieren aprender accerca de nuevos temas
[…] […]
Dedicarle tirmpo a algo voluntariamente para compartirlo es lo mejor que puedes hacer gracias por los tutos son de gran ayuda para los que no tenemos acceso a los cursos caros que surgen de este tema. gracias y suerte…
Muchas Gracias por el tiempo y la dedicacion que tomas para realizar este tuto.. Thx!!
He iniciado la lectura del primer capitulo y me parece entendible, deseando que no baje el sitio, pues de apoco seguiré leyendo los demás que me da la pauta de un interesante libro. Muchas Gracias!
Esta guía no se paga con dinero. No quiero ni pensar el esfuerzo que hay detrás. De verdad ¡olé tus santos cojones!
Quería sumarme al conjunto de felicitaciones por el curso.
Es muy completo, y creo que están muy equilibradas las explicaciones con los ejemplos. Los ejemplos muy bien montados.
En una mañana me han quedado claros más concetos de android, de sus componentes y como se utilizan que en en muchas horas de lectura por muchos blogs y sitos.
Un trabajazo!
que nombre recibe un programa que se ejecuta en un ambiente android?
Gran aporte amigo, muchas gracias por compartir.
[…] ya que lo utilizaremos en breve como base para crear nuestra primera aplicación. Pero antes, en el siguiente apartado hablaremos de los componentes software principales con los que podemos construir una aplicación […]
[…] aplicaciones Android. En próximos apartados veremos como crear un nuevo proyecto, la estructura y componentes de un proyecto Android, y crearemos y probaremos sobre el emulador una aplicación sencilla para […]
[…] de desarrollo para Android y comentar la estructura básica de un proyecto y los diferentes componentes software que podemos utilizar ya es hora de empezar a escribir algo de código. Y como siempre lo mejor es […]
Es magnifico toda esta serie de tutoriales que has presentado de forma gratuita, tengo entendido que android se usa el modelo MVC, soy programador web y estoy todo el dia programando en javascript, me gustaria saber si es recomendable usar el modelo MVVM que es el que uso yo en la web, personalmente pienso que es un modelo mas limpio separando la vista de su controlador y los servicios correspondientes, muchas gracias.
[…] Componentes de una aplicación Android […]
Muchas gracias por este gran curso y que lo sigas actualizando, en estos días intente seguir uno en coursera pero esta bastante desactualizado y muchas cosas ya no aplican; tardas más investigando como se hace ahora y pierdes de vista lo que realmente quieres aprender.