Apuntes Tarea02 PMDM
Apuntes Tarea02 PMDM
Apuntes Tarea02 PMDM
Para compilar un programa con Android se necesita como mínimo tener instalado
el SDK el cual se puede descargar de por separado. A partir de ahí se pueden
descargar e instalar el resto de herramientas (emuladores, entornos de desarrollo,
depurador, etc.).
Del mismo modo que se haría con Android, podría hacerse con cualquier otra
plataforma de desarrollo con la que se hubiera decidido trabajar: Java ME, iOS,
Windows Phone, etc. En cada caso serían necesarias unas herramientas
específicas (compiladores, editores, depuradores, emuladores, etc.). Todo esto lo
hemos tratado ya en un apartado anterior.
Recomendación
En caso de no contar con los permisos necesarios para instalar la aplicación en
tu ordenador debes conseguirlos.
Podrías plantearte usar una máquina virtual cómo las que has utilziado en otros
módulos del curso. Pero ten en cuenta que para poder probar tus aplicaciones,
Android Studio usa lo que se llama un virtualizador de dispositivos Android
(AVD). Este depende de la configuración de tu SW de virtualización (VirtualBox,
HyperV,...), la configuración de tu BIOS e incluso tu microprocesador y hay
muchos casos en los que no se comporta de forma adecuada.
Te recomendamos por tanto que uses una máquina real para evitar problemas
con los emuladores y poder incluso instalar otros diferentes a los que te ofrece
Android Studio de un modo más sencillo.
Android Studio facilita la creación de apps de Android para varios factores de forma,
como teléfonos y tablets, Wear OS , Android TV y Android Automotive. El asistente
New Project te permite elegir los formatos para tu app y completar la estructura del
proyecto con todo lo que necesitas para comenzar. Revisa y sigue los siguientes
pasos para crear un proyecto nuevo.
Introduce los siguientes datos de configuración del nuevo proyecto que estás
creando:
Cada factor de forma será un módulo en nuestra app, como se puede ver en la
imagen de la derecha (en este caso hemos supuesto que hemos elegido los
factores de forma Phone and Tablet y TV):
Las actividades estarán compuestas por una parte lógica y una parte gráfica.
La parte lógica se corresponderá con un archivo .java, que contiene la clase para
poder interactuar desde esa actividad, a través de los diferentes métodos de que
disponga, e incluso apoyándose en otros ficheros .java que contengan clases que
también interactúen entre sí.
Por otro lado, la parte gráfica normalmente se corresponderá con un fichero .xml en
el que se define la disposición (layout) de los elementos que se mostrarán. Así, en
dicho fichero, mediante etiquetas XML específicas, se podrán incorporar todos
aquellos elementos que queramos que se muestren en mi interfaz.
Al crear nuestra primera aplicación, podemos ver ambas facetas. Para ello,
completamos la creación de nuestro primer proyecto (llamado HolaMundo), y vemos
que a través del navegador de proyectos ubicado en el marco (frame) de la
izquierda se crean 2 ficheros relacionados entre sí:
2.3.- Compilación.
Para compilar el proyecto basta con ir a Build > Make Project y veremos que nos
notifica que empezará a ejecutarse Gradle.
Para compilar y además ejecutar tu app, bastará con hacer clic en el el botón Run
situado en la barra de herramientas, o bien, a través de menú Run > Run 'app'.
Hay que tener en cuenta que si decidimos cambiar el tipo de emulador utilizado, la
salida podrá ser ligeramente diferente en cuanto al aspecto estético del dispositivo
emulado.
Si deseamos usar Android Emulator para ejecutar nuestra app, debes preparar
un Android Virtual Device (AVD). Si todavía no lo hemos creado, cuando hagamos
clic en Run, aparecerá un error ya que la app no encuentra un dispositivo sobre el
que ejecutarse. Para solventar el problema debemos abrir Tools > Device Manager
desde donde podremos elegir Create Device. Seguiremos las instrucciones del
asistente Virtual Device Configuration para definir el tipo de dispositivo que
deseas emular, seleccionando la categoría (teléfono, TV, Wear, tablet o Automotive),
el modelo y la imagen del sistema (a descargar).
Esto se debe tanto a las características físicas del propio dispositivo (tamaño,
resolución y colores de la pantalla, tipo de mando de juegos (joystick), botones, etc.)
como a la implementación de la máquina virtual de Java que tenga ese dispositivo.
Aunque la comparación no es del todo precisa, la situación podría se similar a la que
se produce cuando navegas por un mismo sitio web con ordenadores distintos, con
sistemas operativos diferentes y con navegadores también distintos, obteniendo
visualizaciones de la web algo diferentes.
Según Android Developer , los usuarios cambian el estado de los procesos de las
apps según interactúan con ellas. Los cambios en el estado del proceso van a
cambiar el estado de la activity que se está ejecutando. Básicamente estarán en tres
estados:
Cuando una actividad entra y sale de los diferentes estados que se describieron
más arriba, esto se notifica a través de diferentes métodos llamados callback.
Todos los métodos callback son enlaces que puedes invalidar para realizar las
tareas correspondientes cuando cambia el estado de la actividad. La siguiente
actividad de ejemplo incluye todos los métodos fundamentales del ciclo de vida.
NOTA: La implementación que realices de estos métodos del ciclo de vida siempre
debe llamar a la implementación de la superclase antes de realizar cualquier otra
tarea, como se muestra en los ejemplos.
@Override
super.onCreate(savedInstanceState);
@Override
super.onStart();
@Override
protected void onResume() {
super.onResume();
@Override
super.onPause();
@Override
super.onStop();
@Override
super.onDestroy();
}
Los 3 bucles del ciclo de vida de un activity
En conjunto, estos métodos anteriores definen el ciclo de vida completo de una
actividad. Al implementar estos métodos, puedes monitorear los tres bucles
anidados en el ciclo de vida de la actividad que puedes ver representados en la
ilustración así como el camino que debe tomar una actividad entre estados. Los
rectángulos representan los métodos callback que puedes implementar para realizar
operaciones cuando la actividad cambie de estado.
● El ciclo de vida completo de una actividad transcurre entre la llamada a
onCreate() y la llamada a onDestroy(). Tu actividad debe configurar el
estado "global" (como la definición del diseño) en onCreate(), y liberar todos
los recursos restantes en onDestroy(). Por ejemplo, si hay un subproceso de
descarga de datos de la red en ejecución en segundo plano en tu actividad,
esta podría crear ese subproceso en onCreate() y luego detenerlo en
onDestroy().
● El ciclo de vida visible de una actividad transcurre entre la llamada a
onStart() y la llamada a onStop(). Durante ese tiempo, el usuario puede ver
la actividad en pantalla e interactuar con ella. Por ejemplo, se llama a
onStop() cuando se inicia una nueva actividad y esta ya no está visible. Entre
estos dos métodos, puedes conservar los recursos necesarios para mostrarle
la actividad al usuario más tarde. El sistema podría llamar a onStart() y
onStop() muchas veces durante el ciclo de vida completo de la actividad, ya
que la actividad pasa de ser visible y a estar oculta para el usuario. No uses
estos métodos para hacer acciones que sólo se realizar una vez.
● El ciclo de vida en primer plano de una actividad transcurre entre la llamada
a onResume() y la llamada a onPause(). Durante ese tiempo, la actividad se
encuentra al frente de todas las demás actividades en la pantalla y tiene el
foco en la interacción del usuario. Con frecuencia, una actividad puede entrar
y salir de primer plano, por ejemplo, se llama a onPause() cuando el
dispositivo entre en suspensión o cuando aparece un diálogo. Dado que este
estado puede cambiar con frecuencia, el código en estos métodos debe ser
bastante liviano para evitar las transiciones lentas que hacen que el usuario
deba esperar.