Hola, bienvenidos sean a este nuevo post. Hoy ahondaremos sobre algunos cosas seguramente observadas en el momento de utilizar a Android Studio, especialmente con nuestro primer app en este post, si miramos nuestra primera app, van a tener muchos recursos disponibles, veamos algunos de ellos con una breve descripcion:
- AndroidManifest.xml, ofrece una descripcion de la aplicacion, nombre, paquete, icono, actividades, intenciones, permisos necesarios de la aplicacion, version minima de Android, el paquete Java y la version de la aplicacion entre otras cosas
- Java, carpeta donde se contiene el codigo fuente de la app
- MainActivity, clase Java con el codigo de la actividad inicial
- ApplicationTest, clase Java utilizada para insertar codigo de testeo mediante la API JUnit
- res, carpeta donde se guardan los recursos utilizados
- drawable, carpeta donde se almacenan imagenes y descriptores de imagenes en XML
- mipmap, es similar a res y drawable pero a diferencia de las otras dos carpetas los elementos no son reescalados a la densidad grafica del dispositivo sino se buscara el grafico mas parecido a la densidad del dispositivo, aqui en general se guardan los iconos de la aplicacion
- layout, se almacenan ficheros XML con vistas de la aplicacion y estas permiten configurar las diferentes pantallas de la interfaz de nuestra app
- menu, archivos XML con los menus de cada actividad
- values, en esta carpeta estaran almacenados todos los valores de la app mediante ficheros XML, en ellos podremos cambiar desde los colores hasta los textos sin necesidad de ingresar al codigo fuente
- anim, contiene archivos XML con animaciones de vistas (Tween)
- animator, almacena archivos XML con animaciones de propiedades
- xml, ficheros XML adicionales requeridos por la aplicacion
- raw, archivos adicionales en formato distinto a XML
- Gradle scripts, es el lugar donde se hace la magia, es decir donde existen ficheros Gradle los cuales nos permiten compilar y construir la app, mas adelante ahondaremos en este aspecto
Aca podemos ver un ejemplo de los recursos antes mencionados

Hasta aqui hemos visto los recursos disponibles, de manera muy basica su utilidad y los elementos almacenados en ellos ahora pasaremos a hablar sobre los componentes de la app:
- View (vista), las vistas son los elementos componentes de la interfaz del usuario en la app, puede ser un boton o una entrada de texto, estas son descendientes de la clase view y por ende pueden ser definidas por el tipo Java pero mas habitual es utilizar archivos XML y dejar a Android Studio crear los objetos por medio de este archivo
- Layout (diagrama), es un conjunto donde se agrupan las vistas de una determinada forma, disponemos de varias formas de hacerlo, una es lineal, otra es tipo cuadricula o por posicion absoluta de cada vista, tambien son descendientes de la clase view pero habitualmente se definen por archivos XML
- Activity (actividad), la actividad es la pantalla de aplicacion donde se acumulan todos los elementos basicos de visualizacion, estas trabajaran para un objetivo comun y estas perteneceran a una clase descendiente de activity
- Service (servicio), es un proceso ejecutado sin la necesidad de interactuar con el usuario, similar a los daemons en Linux o servicios en Windows, existen de dos formas: locales, los cuales se ejecutan en el mismo proceso y remotos, los cuales son ejecutados en procesos separados
- Intent (intencion), se utiliza para realizar algun tipo de accion, por ejemplo pueden ser: Lanzar una actividad, lanzar un servicio, enviar un anuncio broadcast y/o comunicarnos con un servicio
- Fragment (fragmento), esta formado por la union de varias vistas para crear un bloque funcional de la interfaz del usuario, esto fue creado por la aparicion de las tablets y sus tamaños mas grandes de pantallas con respecto a los dispositivos moviles
- Broadcast receiver (receptor de anuncios), recibe anuncios broadcast y reacciona ante ellos, estas pueden ser bateria baja, una llamada entrante o por una aplicacion X, esto lo veremos mas adelante
- Content provider (receptor de contenido), es utilizado para compartir datos sin necesidad de comprometer la seguridad de los ficheros, esto nos permitira acceder a informacion de otras aplicaciones, contactos o enviar datos a otra aplicacion, lo veremos mas adelante
Ahora hablaremos un poco sobre como depurar nuestras apps, primero vamos a ver la depuracion por el entorno de desarrollo, abramos nuestro Android Studio y abramos nuestra app creada, vayan hasta la MainActivity

Recuerden el camino es app -> src -> main -> java -> com.tinchicus.myapplication -> MainActivity, ahi agregaremos las siguientes lineas al codigo fuente:
Object o = null;
o.toString();
Deberia quedar algo asi:

Una vez modificado el codigo, procederemos a grabarlo por medio de Ctrl + S y luego ejecutaremos la app por medio de Run -> Run app o Mayus + F10, como hemos visto en otros posts, luego nos pedira seleccionar un dispositivo para verificarlo, utilizaremos nuestro equipo virtual creado en este post

Una vez seleccionado, comenzara la ejecucion y en nuestro equipo virtual aparecera el siguiente error

Si le dan Ok se cerrara la app pero no cierren el equipo virtual, vuelvan al Android Studio y esta vez agregaremos un breakpoint (punto de detencion) simplemente clickeando como se ve en la parte remarcada, es decir donde esta el punto rojo, sobre la misma linea y deberia quedar como la imagen de abajo

Ahora procederemos a ejecutar en modo depuracion (debug), para eso van a Run -> Debug app o presionan Mayus + F9

Si no cerraron el equipo virtual ahora les aparecera de la siguiente forma

Seleccionan ese dispositivo y dan Ok pero ahora en el dispositivo aparecera de la siguiente forma

Ahora la app quedara expectante a las modificaciones efectuadas en la app por medio del Android Studio, si volvemos a este programa y utilizamos el Run->Stepover o presionan F8

A medida que avanzamos en el codigo fuente, el Android Studio nos ira mostrando algunso datos como para evaluar nuestros posibles errores

Esto va a ser una de las herramientas mas necesarias porque como todo programador sabe los programas van de la mano con los errores, tanto de sintaxis como humanos, siendo estos ultimos los mas habituales 😃, ahora veamos por ultimo como es la depuracion con mensajes Log, los logs son los medios mas normales donde los programas, app o todo aquello vinculado a un sistema informatico o de programacion va almacenando todos los pasos ejecutados por el mismo, Android Studio no iba a ser la excepcion y este lo almacena en un medio llamado LogCat pero nosotros tambien disponemos de algunos medios para generar mensajes en este log, veamos algunos:
- Log.e(), es para errores
- Log.w(), es para avisos
- Log.i(), es para informacion
- Log.d(), es para depuracion
- Log.v(), es para mostrar toda la informacion (verbose)
Vamos a ver un ejemplo de como dejar un mensaje en el Logcat, volvamos a nuestra app, en ella vamos a hacer dos acciones primero vamos a agregar la siguiente linea:
Log.d("Hola Mundo!","Entramos en onCreate()");
En la siguiente ubicacion

Si todo sale bien, como a mi me sucedio les aparecera subrayada en este caso deberan presionar Alt+Enter lo cual hara descargar la clase Java de Log y automaticamente agregara la etiqueta tag y msg, luego agregaremos la dos barras de dividir (/) para anular las lineas agregadas anteriormente, esto se llama habitualmente «remarcar», es decir anular las lineas para no ser leidas en nuestro programa y por ende ignorarlas, esto evitara generar un error cuando ejecutemos la app, antes de ejecutarla debemos ir al siguiente boton

Ahi debemos elegir Edit configuration, con ello pasaremos al siguiente cuadro

Y deben habilitar las dos opciones resaltadas en la imagen, esto nos permitira ver el LogCat sino no aparecera nada, una vez tildadas presionen Ok y ahora si elegimos Run->Run app donde se ejecutara la app como vinimos haciendo hasta ahora pero si vamos hacia abajo y elegimos LogCat podremos ver todos los procesos almacenados en el Log

Si buscamos la linea, esta aparecera como se resalta en la imagen, como pueden ver esta es una gran forma de poder dejar un indicio de cuando queremos hacer un seguimiento de un proceso X, o un momento del programa, en fin todo aquello que deseemos registrar para luego hacer un seguimiento de nuestra app.
Hasta aqui hemos visto una breve explicacion de algunos recursos aparecidos, cual es su funcion (de una forma muy basica), cuales son los componentes de una app y por ultimo como podemos efectuar una depuracion de nuestra app por medio de Android Studio o el LogCat donde se registran los procesos espero les haya sido util, sigueme en Twitter, Facebook o Google+ para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.
Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Tambien podes donar
Es para mantenimiento del sitio, gracias!
$1.50