Componentes de una aplicación Android y su ciclo de vida

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 13,71 KB

Activity

Componente principal de la interfaz gráfica de una aplicación Android.

Android

Sistema operativo que utilizan la mayoría dispositivos móviles para poder funcionar, está basado en Linux y otros software de código abierto.

Android Runtime

Entorno de ejecución de aplicaciones utilizado por el sistema operativo móvil Android.

Broadcast receiver

Componente de Android que nos permite el registro de eventos del sistema como llamadas, estado de batería, etc.

/build

Directorio que contiene ficheros generados automáticamente cuando se compila el proyecto.

build.gradle

Archivo generado por el framework gradle que contiene configuraciones para el constructor de nuestro proyecto en Android Studio.

Capa de aplicaciones

Lugar en el que se encuentran instaladas todas las aplicaciones Android, tanto las que trae el terminal por defecto como las descargadas.

Conectividad

Es la capacidad que tiene un dispositivo para formar una comunicación en redes Wi-Fi, redes móviles (como 4G y 5G), Bluetooth y GPS con otros dispositivos.

Content provider

Es un componente fundamental en el sistema operativo que permite a las aplicaciones acceder y compartir datos de manera segura y organizada en Android.

Emulador

Herramienta que simula dispositivos Android en el ordenador para que podamos probar nuestra app sin necesidad de contar con dispositivos físicos.

Entorno de aplicación

Conjunto de recursos y servicios necesarios para que la aplicación realice sus tareas.

Handheld

Tipo de dispositivo portátil que se puede utilizar con una sola mano.

Nivel de API

Versión del conjunto de reglas y protocolos de Android que permiten que diferentes aplicaciones se comuniquen entre sí.

Núcleo

Capa más interna donde se gestionan los servicios de gestión de memoria y de procesos, de servicios, la pila de red y los controladores para los dispositivos.

onDestroy

Proceso antes de que finalice el activity.

onPause

Método donde la actividad va a pasar a segundo plano porque otra actividad toma el foco. Es fundamental guardar el estado de la actividad.

onRestart

Actividad que volverá a visualizarse después de haber sido parada pero que no llega a destruirse.

onStart

Método donde la actividad está preparada para ser visualizada. No implica que se visualice al usuario.

PDA

Dispositivo móvil en desuso utilizado para organización personal o de tareas.

Pila de actividades

Las actividades del sistema se organizan en el orden en que se abre cada actividad.

/res/drawable

Directorio donde se almacena las imágenes y elementos gráficos de una app.

/res/menu

Directorio donde se almacenan las estructuras y contenidos de los menús de la aplicación.

Service

Componente que se ejecuta en segundo plano, similar a los servicios de cualquier sistema operativo. Estos se encargan de enviar notificaciones, mostrar elementos visuales, actualizar datos, etc.

/src/main/java

Es donde se almacenan los ficheros fuente (.java) de la aplicación.

Tablet

Dispositivo móvil de un tamaño mediano con funcionamiento similar a un teléfono pero sin tarjeta SIM.

Views

Parte de un IDE referida a mostrar elementos para crear interfaces de usuario.

Wearable

Aquellos dispositivos que podemos vestir y que nos brindan funcionalidades tecnológicas.

Widget

Aplicación o programa diseñada para facilitar el acceso a las funciones más usadas de un dispositivo.

Tipos de dispositivos móviles

● SmartPhones o “teléfonos inteligentes”.
● PDA (Personal Digital Assitant – asistentes digitales personales) o PocketPC(PC de bolsillo) ambos ya en desuso.
● Handhelds (o PC de mano).
● Internet tablets, que se encontraría entre las PDA y los PC.
● Ultramóviles. Pueden incluir teclado físico.(pequeños tablet PC)

Limitaciones tecnológicas de los móviles

● Suministro de energía limitado (normalmente dependiente de baterías).
● Procesadores con capacidad de cómputo reducida. Suelen tener una baja frecuencia de reloj por la necesidad de ahorrar energía. En algunos casos, por ejemplo, podrían no disponer de la capacidad de cálculos en punto flotante.
● Poca memoria principal (RAM).
● Almacenamiento de datos persistente reducido (pequeña memoria flash interna, tarjetas SD, etc.)
● Conexión a algún tipo de red intermitente y con ancho de banda limitado.
● Pantallas de reducidas dimensiones.
● Teclados con funcionalidad muy básica y muy pequeños

Ventajas

● Movilidad.
● Poco peso.
● Pequeño tamaño.
● Facilidad para el transporte.
● Conectividad a diversos tipos de redes de comunicaciones (3G, 4G, 4G+, mensajería SMS y MMS, voz, Internet, Bluetooth, infrarrojos, radiofrecuencia, etc.).

Arquitectura del sistema Android

Núcleo de Android (kernel de Linux) actúa como el corazón del sistema, asegurando que las aplicaciones y servicios se ejecuten correctamente en una amplia variedad de dispositivos y hardware. También es responsable de administrar recursos y garantizar la seguridad del sistema.

Librerías nativas se refieren a las bibliotecas de código compilado que se utilizan para proporcionar funcionalidades de bajo nivel al sistema operativo y a las aplicaciones. Estas librerías se escriben en lenguajes de programación como C y C++ y se vinculan estrechamente con el sistema operativo y el hardware del dispositivoEJ: Bionic,Media Framework.

Runtime de Android se refiere al entorno de ejecución en el que se ejecutan las aplicaciones Android, y en las versiones más recientes, esto se hace a través del Android Runtime (ART), que mejora la eficiencia y el rendimiento de las aplicaciones en comparación con su predecesor, Dalvik.

Entorno de aplicación está formado por un conjunto de herramientas útiles para el desarrollo de cualquier aplicación Android. Los desarrolladores de aplicaciones tendrán acceso a los mismos API del framework usados por las aplicaciones ya sean propias del dispositivo, creadas por Google o incluso las que haya creado el propio desarrollador.

Window Manager: gestiona las ventanas de las aplicaciones y utiliza la librería Surface Manager. Telephone Manager: gestiona las funciones propias del teléfono como llamadas y mensajes. Views: elementos para construir interfaces de usuario (Button, TextView, etc).Content Provider: mecanismo para compartir los datos entre las distintas aplicaciones Android Notification Manager: comunican al usuario eventos que ocurren en la ejecución de las aplicaciones (ej: llamada entrante, conexión Wi-Fi disponible, etc.).

Capa de aplicaciones se encuentran instaladas todas las aplicaciones Android (tanto las que vienen por defecto con el terminal como las que descarga de otros desarrolladores o las suyas propias). Todas correrán en la máquina virtual Dalvik utilizando los servicios, API y librerías de las capas inferiores.

Estructura de un proyecto Android

● /libs/ ficheros de tipo JAR donde se incluyen las librerías que se utilizarán en el proyecto.
● /build/ esta carpeta contiene ficheros generados automáticamente cuando se compila el proyecto.
● /src/main/java almacena los ficheros fuente (.java) de la aplicación. Android Studio crea el código básico de la pantalla principal de la aplicación (Activity), en este caso llamado MainActivity.java
● /src/main/res contiene todos los recursos que necesitará la aplicación como imágenes, vídeos, cadenas de texto, etc. Se verá en profundidad en las siguientes unidades. Algunas de las subcarpetas que podemos destacar serían:
○ /res/drawable/ almacena las imágenes y elementos gráficos dependiendo de la resolución y densidad de las pantallas.
○ /res/mipmap/ almacena los iconos para lanzar la aplicación y al igual que en el caso anterior, se divide en subcarpetas dependiendo de la resolución y densidad de las pantallas.
○ /res/layout/ contiene ficheros XML que define las pantallas de la interfaz gráfica.
○ /res/values/ contiene ficheros XML como por ejemplo las cadenas de textos, estilos, colores, etc.
○ /res/menu/ contiene los menús de la aplicación.
● /src/main/AndroidManifest.xml este fichero contiene los aspectos más importantes de la aplicación como el nombre, versión, icono, pantallas, mensajes, etc. Lo estudiaremos más adelante.
● build.gradle este fichero almacena la información necesaria para compilar el proyecto

Componentes de una aplicación Android

En una aplicación Android podemos encontrar los siguientes componentes:

● Activity (Actividad): es el componente principal de la interfaz gráfica de una aplicación Android. Es similar a una ventana o pantalla en cualquier lenguaje visual.

● Service (Servicio): es el componente que se ejecuta en segundo plano. Es similar a los servicios de cualquier sistema operativo. Estos servicios se encargan, por ejemplo, de enviar notificaciones, mostrar elementos visuales (activity), actualizar datos, etc.

● Content Provider (Proveedor de contenidos): Es el componente que se encarga de compartir datos entre distintas aplicaciones Android.

● Broadcast Receiver (Receptor de anuncios): es el componente que se encarga de detectar y reaccionar ante algunos mensajes o eventos generados por el sistema (como por ejemplo batería baja, tarjeta SD insertada, SMS recibido, etc.) o por otras aplicaciones (cuando generan mensajes que no van dirigidos a una aplicación concreta).

Estos componentes se deben definir siempre en el fichero manifiesto dentro de la etiqueta .

Componentes de una aplicación Android

También podemos encontrarnos otros elementos que tienen una funcionalidad específica dentro de nuestra aplicación:

● Intent (Intención): es el objeto encargado de la comunicación entre el resto de componentes. Esa comunicación se realiza mediante mensajes o peticiones. Como ejemplo un intent nos permite abrir una actividad desde otra inicial, enviar un mensaje broadcast, iniciar un servicio, iniciar otra aplicación, etc.

● Widget: es un elemento visual que suele mostrarse en la pantalla principal del dispositivo. Muestra información de la aplicación al usuario. Pero en el ámbito de la programación de Android esta palabra adquiere otro significado, ya que también puede hacer referencia a un objeto View en el diseño de una interfaz de usuario.

● View (Vista): es el componente básico con el que se construye la interfaz gráfica de la aplicación, sería algo similar a los controles de Java. Entre alguno de los controles básicos o views que tiene Android estarían los cuadros de texto, botones, listas, etc.

● Layout (Diseño): se utiliza para agrupar y organizar los diferentes componentes de tipo view que componen una actividad o pantalla (activity). Existen diferentes tipos y además un layout también puede contener a su vez otros layouts.

Ciclo de vida de una actividad

métodos que gestionan el ciclo de vida

● onCreate(): la actividad fue creada por primera vez. Aquí tiene lugar la inicialización de la interfaz gráfica así como los datos. Es obligatorio sobrescribir este método en una actividad. Este método recibe como parámetro una instancia de la clase Bundle que contiene la información necesaria para restaurar la actividad de su estado anterior. Si es la primera vez que se ejecuta la actividad, el valor de este parámetro será nulo.
● onStart(): la actividad está preparada para ser visualizada. No implica que se visualice al usuario.
● onResume(): la actividad se encuentra en la parte superior de la pila del sistema y está visible al usuario. Se puede empezar a interactuar con la actividad.
● onPause(): la actividad va a pasar a segundo plano porque otra actividad toma el foco. Es fundamental guardar el estado de la actividad.
● onStop(): la actividad va a dejar de estar visible por completo. Si el sistema no tiene memoria suficiente puede ser que la actividad sea destruida sin pasar por este método.
● onRestart(): la actividad volverá a visualizarse después de haber sido parada y sin haber llegado a destruirse.
● onDestroy(): la actividad se destruye completamente para liberar la memoria utilizada. Si el sistema no tiene memoria suficiente puede ser que la actividad sea destruida sin pasar por este método.

distintos estados por los que puede pasar una actividad son:
Activa: la actividad está visible y puede ser utilizada por el usuario.
Pausada: la actividad está visible pero ha perdido el foco por otra actividad(por ejemplo: ventanas de diálogo o avisos). Se puede ver la actividad anterior porque la nueva actividad no suele ocupar la pantalla completa o es semitransparente.
Parada: la actividad deja de estar visible, es conveniente guardar el estado por si el usuario vuelve a esta actividad.

Entradas relacionadas: