Esta vez de vamos a echar un vistazo a la estructura de una aplicación Android, ya que es importante saber que es cada elemento antes de ponerse a programar.
Para empezar, necesitaremos tener configurado Eclipse tal y como explicaba en mi anterior post de Introducción a android una vez que tengamos Eclipse y la SDK de Android configurados, es el momento de crear un proyecto Android.
En Eclipse:
File->New..-> Android Project
En caso que no encontremos esa opción en la lista de proyectos, debemos de irnos a “Other…” y seleccionar “Android” a partir de ahí, tal y como se muestra en la figura.
A continuación nos aparecerá una pantalla, en la que tenemos que introducir información sobre nuestro proyecto tales como el nombre del proyecto, el paquete que alojará las clases principales, el nombre de la clase principal (Activity name) y el nombre de la Aplicación que aparecerá en el emulador/dispositivo Android.
Acaba de aparecer un término nuevo, para aquellos que estén acostumbrados a trabajar en Java: Activity. Más adelante haré un detallado glosario de los términos que usa Android. Por ahora, con que tengamos en cuenta que una Activity es un elemento sobre el que se construye la aplicación y que tiene un ciclo de vida bastante complejo. Estas Activities son pantallas de la aplicación, en las que podemos cargar elementos de la interfaz de usuario y capturar eventos. También son los puntos entrantes de la aplicación y puede haber más de una Activity por proyecto.
Pongamos un ejemplo para que se vea más claro.
Supongamos que tenemos una aplicación de gestión de emails. Esta aplicación, tendrá 2 pantallas, una en la que podremos ver nuestros correos entrantes, y otra en la que podremos escribir nuestro correo para enviarlo. Cada una de estas pantallas es una Activity ya que tiene funcionalidades diferentes.
Bueno, espero que haya quedado un poco más claro, de todas formas, estos términos irán apareciendo en los próximos tutoriales, así que ya os iréis acostumbrando a escucharlos y manejarlos.
Continuemos por donde lo habíamos dejado: Acabamos de crear un proyecto Android, veamos que es lo que ha creado Eclipse.
En la imagen he desplegado las carpetas para que podamos ver su contenido de un solo golpe de vista.
En la carpeta src podemos encontrar el código fuente de la aplicación. El sistema de paquetes es igual que el de java, se suele crear paquetes que alberguen clases con una misma funcionalidad, así el código es más legible. Ahora mismo tenemos las clases que ha creado Eclipse por defecto: deMalagana.java que es la clase principal y Activity de la aplicación, y la clase R.java.
La clase R.java es muy peculiar, ya que nosotros no podemos modificarla manualmente, de hecho, se genera automaticamente cada vez que modificamos los ficheros de recursos. Esta clase se podría considerar el nexo de unión entre los recursos y el XML y las clases puramente Java. Ya veremos más adelante este tema.
Si seguimos mirando la estructura, nos encontraremos con las librerías Android (android.jar), que nos dan toda la funcionalidad del sistema. Estas librerías dependen del SDK con el que estemos trabajando. Intentad siempre estar actualizados en este tema, para ello visitad regularmente la página de desarrolladores Android:
Continuemos con los elementos del proyecto de Android.
Nos encontramos ahora con la carpeta res, esta carpeta almacena, mediante un sistema de subcarpetas, los recursos de la aplicación, desde imágenes hasta los elementos .xml que compondrán el Interfaz de Usuario y la funcionalidad del mismo.
Ahora mismo tenemos solo tres subcarpetas:
drawable-> Aquí se almacenan todos los ficheros de imágenes.
layout-> En esta carpeta se guardan los ficheros .xml que compondrán el interfaz de usuario
values->Esta es una carpeta-un-poco-de-todo. Ahora mismo tenemos un fichero string.xml en el cual almacenamos todas las cadenas de texto que aparecerán en la aplicación, pero también podremos tener valores de atributos de los elementos de aplicación o los estilos de estos mismos elementos.
Para terminar, tenemos el fichero AndroidManifest.xml indispensable en toda aplicación Android. En este fichero se almacenan los parámetros de configuración de la aplicación, desde los privilegios que le podemos asignar, hasta cual es la Activity principal.
Documentación y ApiDemos
Donde encontrar documentación
Puedes encontrarl una completa documentación del SDK localmente en:
…\adt-bundle-windows-…\sdk\docs\index.html
Se incluye la descripción de todas las clases (Develop > Reference), conceptos clave y otro tipo de recursos. Esta documentación también está disponible en línea a través de Internet:
Muchos de los recursos utilizados en este libro puedes encontrarlos en:
Para resolver dudas puntuales sobre programación te recomendamos la Web de preguntas y respuestas:
La aplicación ApiDemos
Otra opción muy interesante para aprender nuevos aspectos de programación consiste en estudiar ejemplos. Con este propósito se ha incluido en el SDK de Android una aplicación, ApiDemos. Está formada por cientos de ejemplos, donde no solo podrás ver las funcionalidades disponibles en el API de Android, sino que además podrás estudiar su código.
Para crear un proyecto con esta aplicación sigue los siguientes pasos: Selecciona File > New > Project… e indica Android Sample Project. Pulsa Next y aparecerá un cuadro de diálogo similar al siguiente:
Has de seleccionar un nivel de API para crear el proyecto. A continuación selecciona uno de los proyectos de ejemplo: en nuestro caso ApiDemos. Pulsa Finish para crear el proyecto.
Si no ha habido ningún error ya puedes ejecutar ApiDemos. Verás como los diferentes ejemplos se organizan por carpetas. En el nivel superior tenemos:
Accessibility: Aspectos de accesibilidad, como trackball, touch o texto a voz.
Animation: Gran variedad de efectos y animaciones.
App: Trabajando a nivel de aplicación con Activity, Alarm, Dialog, Service, etc.
Content: Describe cómo leer datos desde ficheros, recursos y archivos XML.
Graphics: Gran cantidad de ejemplos gráficos tanto en 2D como en 3D.
Media: Reproducción de audio y vídeo con las clases MediaPlayer y VideoView.
NFC: Ejemplos de uso de Near Field Communication.
OS: Servicios del sistema operativo. Incluye sensores, vibrador o envio de SMS.
Preference: Varios ejemplos de uso de preferencias.
Text: Diferentes ejemplos de manipulación y visualización de texto.
Views: Android utiliza como elemento básico de representación la clase View (vista). Tenemos a nuestra disposición gran cantidad de descendientes de esta clase para representar una interfaz gráfica (botones, cajas de texto, entradas...). Visualiza estos ejemplos para mostrar las diferentes posibilidades.
Una vez seleccionado un ejemplo, si quieres estudiar su código, búscalo en la carpeta src. Para organizar mejor el código se han creado diferentes espacios de nombre de paquetes.
NOTA: En algunas versiones del SDK, al compilar ApiDemos, aparecen errores de compilación. Para solucionarlo, puedes probar con otra versión de o intenta corregir los errores.
NOTA: Si cuando ejecutas la aplicación no te deja y te indica el siguiente error:
Ocurre porque una aplicación con el mismo nombre de paquete (com.example.android.apis) ya existe y además ha detectado que la aplicación ha sido firmada con un certificado digital diferente al que estáis utilizando vosotros. Si hubiera sido creado por el mismo desarrollador reemplazaría la aplicación ya instalada por la que queremos instalar.
Se soluciona desinstalando antes la aplicación. Tienes dos opciones:
- Como lo haces habitualmente en tu dispositivo: Ajustes/Aplicaciones/ ApiDemos/Desinstalar
- Desde la línea de comando:
adb uninstall com.example.android.apis
NOTA: Este mismo problema también te ocurrirá cuando tengas instalado el entorno de desarrollo (Eclipse) en dos PC. Cada entorno de desarrollo tiene un certificado digital diferente. Cuando trates de instalar una aplicación en tu dispositivo físico, te aparecerá un error, si la aplicación ya ha sido instalada con el otro entorno.









