1. INSTRUCCIONES Y ESTRUCTURAS
MÁS IMPORTANTES DE UN SDK
PARA DISPOSITIVOS MÓVILES Universidad Politécnica de Tecámac
Jazmín Reyes B.
2817IS
Ingeniería en Software
2. SDK
Cuando se desarrolla una aplicación (para dispositivos móviles o de escritorio), es importante contar con
herramientas adecuadas que nos asistan durante el proceso para ahorrar tiempo y esfuerzo sin
descuidar la calidad del resultado final. Si sólo nos valiéramos de un lenguaje de programación, un
editor, un compilador y nuestra propia capacidad de resolución de problemas, deberíamos invertir
demasiado tiempo en funciones que podrían ser elementales.
Un SDK (Software Development Kit), o kit de desarrollo de software, es un conjunto de herramientas que
ayudan a la programación de aplicaciones para un entorno tecnológico particular. Es decir, las
aplicaciones desarrolladas sobre el SDK estarán destinadas a algún sistema operativo, plataforma
hardware, consola de videojuegos o paquete de software en especial. Son muchos los recursos que
puede contener un SDK.
3. COMPONENTES DE UNA APLICACIÓN ANDROID
ACTIVITY
Éste es el componente principal de la interfaz gráfica de una aplicación en Android. A cada Activity se
le asigna una ventana en la cual se dibuja la interfaz de usuario, con la que el usuario podrá interaccionar para
realizar las diversas acciones que hayamos contemplado en la aplicación.
Por lo general, una aplicación está formada por diferentes Activities, que están más o menos ligadas entre sí.
Cuando se suceden varias, éstas se van almacenando en una pila mediante el mecanismo de LIFO (Last In – First
Out: la última que entra en la pila es la primera que sale) y cuando el usuario pulsa el botón atrás, se extrae la
Activity actual de la pila y se reanuda la anterior Activity situada allí.
Cada Activity que creemos, la tenemos que definir en el AndroidManifest.xml (explicamos este fichero en un
siguiente apartado) con la etiqueta <activity>.
Para iniciar una Activity, podemos utilizar dos métodos (como veremos más adelante):
Método Context.startActivity()
Método Context.startActivityForResult(), cuando queramos que se devuelva algún resultado.
4. SERVICE
Los services (servicios) son componentes sin interfaz gráfica que se ejecutan en segundo plano.
Son llamados a través de otro componente, como puede ser una Activity, y seguirán ejecutándose en
segundo plano aunque la Activity haya finalizado o, incluso, aunque hayamos salido de la aplicación.
Cada servicio que creemos lo tenemos que declarar en el AndroidManifest.xml mediante la etiqueta
<service> . Para ser iniciados podemos usar dos métodos:
Método Context.startService()
Método Context.bindService()
COMPONENTES DE UNA APLICACIÓN ANDROID
5. COMPONENTES DE UNA APLICACIÓN ANDROID
INTENT
Un Intent es el elemento básico de comunicación entre los componentes que estamos describiendo, es decir, mediante un Intent se podrá
llamar a una Activity, iniciar un servicio, enviar un mensaje broadcast, iniciar otra aplicación, etc.
Su uso más importante es para iniciar Activities, por lo que puede considerarse como la unión entre Activities. Más adelante veremos
cómo hacer esto.
Los objetos Intent están formados por un paquete de información. Contienen información de interés para el componente que la recibe,
como la acción que será ejecutada y los datos necesarios, más la información de interés para el sistema Android, como la categoría del
componente que manejará el Intent y las instrucciones de cómo lanzar la Activity.
Principalmente pueden contener lo siguiente:
Nombre de componente: el nombre del componente que manejará el Intent. Es una combinación del nombre de la clase del componente
y el nombre del paquete especificado en el AndroidManifest.xml de la aplicación donde reside el componente.
ACTION_CALL: Inicia una llamada telefónica.
ACTION_EDIT: Muestra datos para que el usuario pueda editarlos (como los datos de un contacto).
ACTION_MAIN: Indica la Activity principal de una aplicación, la que se ejecutará al iniciarse.
6. COMPONENTES DE UNA APLICACIÓN ANDROID
CONTENT PROVIDER
Un Content Provider es un componente destinado a compartir datos entre aplicaciones. Dichos datos
pueden ser almacenados en el sistema de archivos, en una base de datos SQLite o en cualquier otro lugar
que sea accesible desde nuestra aplicación.
Un ejemplo de Content Provider es el que utiliza Android para gestionar la información de un contacto,
mediante el cual cualquier aplicación podrá acceder a estos datos haciendo una petición al método query()
sobre la interfaz ContentResolver.
7. COMPONENTES DE UNA APLICACIÓN ANDROID
BROADCAST RECEIVER
Un Broadcast Receiver es un componente que detecta y reacciona frente a mensajes globales del
sistema, como puede ser batería baja, SMS recibido, llamada recibida, etc. Además de esto, una aplicación
también puede iniciar un Broadcast Receiver.
Al igual que ocurría con los Services, un Broadcast Receiver tampoco muestra ninguna interfaz gráfica.
Al igual que los servicios y Activities, los Broadcast Receiver también los tenemos que registrar, pero esta
vez tenemos dos formas de hacerlo:
Método Context.registerReceiver()
declarándolos en el AndroidManifest.xml con la etiqueta <receiver>
8. ESTRUCTURA DE UNA APP
Directorio SRC
Se encuentra toda la lógica de aplicación, todas las clases programadas en JAVA. Dentro de ella puedes definir
distintos paquetes, donde puedes dividir en capas tus reglas de negocio.
Android Library
Aquí se encuentran todas las librerías propias del SDK de android, dependiendo la versión elegida al crear el proyecto
tendrá una versión u otra.
Directorios RES
Se encuentran todos los archivos con los recursos que usan la aplicación. Las imágenes, archivos de idiomas, estilos,
etc.. Un pequeños listado de estos puede ser:
Drawable Carpeta con todas las imágenes de la app. Se subdivide en múltiples carpetas desde la versión 1.6, que contienen las imágenes en
distintas resoluciones y tamaños que se usarán dependiendo el dispositivo usado.
Directorio layout se encuentran las distintas “pantallas” de la aplicación, es decir, los archivos xml con las interfaces visual asociadas a las
activities.
Values Carpeta con los xml de contenido de la app. En ella puede haber definidas las constantes de la aplicación, dando la posibilidad del
multidioma.
9. ESTRUCTURA DE UNA APP
DIRECTORIO BIN
Se encuentran todos los archivos generados por la propia app. Como sabeis, android usa la máquina virtual
dalvik, primero se traduce a los típicos archivos .class de java y posteriormente es traducido a los archivo
.dex propios de android. El ejecutable de la aplicación "apk", sería el equivalente a los "exe" de windows.
Es el archivo que deberías instalar en cualquier teléfono android para probar la aplicación.
DIRECTORIO GEN
En esta carpeta esta el archivo R.class, éste contiene lo identificadores los recursos usados por tu
proyecto: imágenes, layout, etc..
10. ESTRUCTURA DE UNA APP
DIRECTORIO ASSESTS
Carpeta donde se encuentran los archivos auxiliares de tu aplicación: imágenes, audios, vídeos... la
diferencia con los que se encuentran con la carpeta "RES", es que los archivos incluidos aquí no generarán
un identificador dentro del archivo R.class anteriormente descrito. Para usar estos archivos, en vez de
referenciarlos por un ID, habría que usar la ruta física como cualquier otro archivo
DIRECTORIO LIB
Se encuentran las librerías externas importados que necesites. Por ejemplo, si deseas meter publicidad en
tu app, aquí ira la librería necesaria para ello.
ANDOID MANIFEST
Archivo básico de configuración de toda aplicación android. En el se definen todas las activities de la
app, sus permisos, etc..