Más sobre eclipse

Eclipse es el entorno de desarrollo que usamos para construir nuestras aplicaciones Android.
Tiene asociado un .workspace o directorio de trabajo individual donde alojará el proyecto y establece la estructura de directorios asociada al mismo. Un ejemplo de dicha estructura se puede visualizar en nuestra aplicación Almacen.
 
El entorno de desarrollo eclipse usa 3 entornos de Java:

  • Runtime: donde corre Eclipse. Se dispone del DVM (Dalvik Virtual Machine); máquina virtual de Android que ejecuta .dex, que es una versión comprimida del .class. Es decir de nuestro fichero.java se genera un .class el cual se convierte en un .dex que es una versión más pequeña y más eficiente
  • Compiler: compila el código generado por el desarrollador
  • Application Runtime: donde corre la aplicación

 
Al crear un proyecto, los plug-in del ADT se encargan de crear el conjunto de ficheros y su estructura para formar la aplicación. Builder genera los artifacts del proyecto a partir de los fuentes. Crea .dex, .class, .apk. Los artifacts son ficheros construidos desde ficheros fuente.
 

Vocabulario relacionado

  • Activiy: interfaz de interacción con el usuario. Es gráfico y es una unidad de ejecución. Es el equivalente a servlets para aplicaciones web.
  • AVD: Android Virtual Device
  • GUI: Graphical User Interface
  • Intent: objeto que une dos actividades. Puede o no tener respuesta. Es cómo se comunican dos actividades. El canal para transmitir la información.
  • Task: cadena de actividades que a menudo abarcan más de una aplicación y a menudo más de un proceso.
  • Content provider: proveedor de datos. Permite el acceso a los datos almacenados desde múltiples aplicaciones. Para usar un content provider, se ha de especificar un URI (identificador uniforme de recursos) y cómo actuar con los datos (operaciones básicas de insertar, preguntar, actualizar y borrar). Usando content provider, la aplicación puede compartir datos con otras aplicaciones y gestionar el modelo de datos de una aplicación. La clase Content Resolver permiter encontrar content providers. Permite compartir SQL BD entre procesos de manera eficiente.
  • Services: procesos/funciones ejecutándose en bg. No es gráfico. Ej: aplicación para escuchar música. La clase Service proporciona métodos para controlar su ciclo de vida como parar o reactivar el servicio.
  • Broadcast Receiver: permite a múltiples partes escuchar a los intents transmitidos por las aplicaciones. Es muy similiar a una actividad pero no posee su propia interfaz de usuario. Ej: recibir alarmas.
  • Almacenamiento: en archivos o BD (SQLite) en memoria interna o SDK.

 

Arquitectura Android GUI

arquitectura gui

Androir GUI (Graphical User Interface) Sigue un patrón MVC (Model-View-Controller) como el mostrado en la figura. Es decir el usuario realiza una serie de cambios o entradas en la aplicación bien sea por teclado o bien al pulsar sobre la pantalla táctil, y dichos eventos son recogidos por el Controller. Es decir, el controller es parte de la aplicación que responde a acciones externas o eventos, actualizando el modelo de la aplicación. Es decir, el model se corresponde con los datos de la aplicación. Dichos cambios son notificados a la vista o View, la cual se corresponde con la visualización del modelo, el cual redibuja su contenido y de nuevo es mostrado por la aplicación al usuario.

Ciclos de vida

Las aplicaciones Android son componentes administrados con ciclos de vida completos. Esto permite un uso eficiente de la memoria o espacio de almacenamiento dinámico. El ciclo de vida más complejo es el de Activity, la cual ha de tener las siguiente funciones:

OnsaveInstanceState: es llamada por el runtime para avisar a la app de que guarde su estado.

OnCreate: permite a una nueva Activity recuperar el estado destruido.

Tanto “Activity” como “Service” extienden a la clase Context.