Hola Android. Introducción al desarrollo de aplicaciones para Android



Documentos relacionados
Capitulo 4: Componentes Android

Desarrollo de apps para móviles Android. Conceptos básicos de las aplicaciones Android

Crear una Activity en Android. Paso por paso

Programación Android. Alejandro Alcalde. elbauldelprogramador.com

Android Creación de una aplicación sencilla: Forwarding - Página 1 -

Unidad II. Interfaz Grafica (continuación ) Basado en clases de Ing. Carlos A. Aguilar

Curso de Android con Java

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales.

U2. Introducción al desarrollo de aplicaciones móviles Smartphone y Android Desarrollo de Aplicaciones III TIC-UTSV Enero 2015 I.S.C.

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

PS.Vending Almacén Pocket PC

Ajustes del Curso en egela (Moodle 2.5)

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación

Capitulo 5. Implementación del sistema MDM

MANUAL DE USUARIO DE EGROUPWARE MANUAL DE USUARIO EGROUPWARE

Capítulo 1 Documentos HTML5

Visor de presupuestos en Android


GENERACIÓN DE TRANSFERENCIAS

Capítulo V. Implementación

Mi Primer Proyecto en Android Studio

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

V Manual de Portafirmas V.2.3.1

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

Contenido. cursos.cl / Teléfono:

MANUAL COPIAS DE SEGURIDAD

Ejercicios - Servicios

Programación Orientada a Objetos con Java

Manual para el uso del Correo Electrónico Institucional Via Webmail

Especialista Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles. Plataforma Android. Sesión 1: introducción a Android

GUÍA DE USUARIO DEL CORREO

Tema 2: Introducción a Android

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

Objetivo: Informar al alumno los elementos que componen el entorno del programa Microsoft Office PowerPoint.

Vamos a comenzar creando un nuevo proyecto de Android utilizando los siguientes parámetros en el cuadro de diálogo:

WINDOWS : TERMINAL SERVER

Android Con Java. Ejercicio 2. Ciclo de Vida de las Actividades en Android. Ejercicio 2. Ciclo de Vida de las Actividades en Android

UNIVERSIDAD TECNICA DEL NORTE

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Introducción a la extensión de scripting en gvsig 2.0

Manual de usuario clientes portal web KRCC. Fecha:

O C T U B R E SOPORTE CLIENTE. Manual de Usuario Versión 1. VERSIÓN 1 P á g i n a 1

INSTRUCTIVO DE ADMINISTRADOR ALFRESCO COMMUNITY 4.2

Correo Electrónico: Webmail: Horde 3.1.1

NORMA 34.14(SEPA) 05/11/2013

MANUAL DEL USUARIO: EDITOR E-COMMERCE

ENTORNO DE DESARROLLO MICROSOFT.NET 2010

MANUAL DE INICIACIÓN A JOVELLANOS VIRTUAL J. A. Espejo coordinador.tic@iesjovellanos.org 1

CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO

MANUAL DE USUARIO DE CUENTAS DE CORREO

DBmessage TM. Manual de usuario

Manual de Usuario SMS Inteligente

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo

Cuando hacemos uso de los grupos, se tendrán los permisos asignados al grupo, en todas las carpetas y documentos del sitio.

LiLa Portal Guía para profesores

LY Conversations Social ERP

Servicios Educativos Del Estado De Chihuahua Sistema Integral de Presupuestos y Materiales. Indice. Introducción Barra de Herramientas...

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

Introducción a la Firma Electrónica en MIDAS

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

Conciliación bancaria en CheqPAQ Cargado de estado de cuenta

MANUAL DE USUARIO FACTURACIÓN ELECTRÓNICA

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa Configuración Internet Explorer para ActiveX...

Internet Information Server

INTRODUCCIÓN.

Programación en Android LSUB, GSYC, URJC

MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA

Para esta Addenda no es necesario configurar nada en particular en Parámetros de la Empresa.

Guía de Apoyo Project Web Access. (Jefe de Proyectos)

Nombre: Francis Ariel Jiménez Zapata. Matricula: Tema: Trabajando con Windows Server Materia: Sistema Operativo II.

Office Online Office Online

SERVICIOS PARA EL DISEÑO E IMPLEMENTACIÓN DEL PROGRAMA INTEGRAL DE TRANSFORMACIÓN DIGITAL DE LA PROVINCIA DE LUGO: TRANSFORM@TIC

II. Relación con Terceros

Manual de Ayuda. Sistema de Comercializacion RUBROS SRL - Desarrollado por Pragmatia

Manual de NetBeans y XAMPP

MODELO DE IMPLEMENTACIÓN

Menús. Gestor de Menús

1. En el portal del correo institucional, dar clic en el servicio Outlook Web App :

ÍTEMS DEL MENÚ CREACIÓN Y GESTIÓN (Última revisión: lunes, 9 de marzo de 2009)

Manual de uso. Manual de uso - citanet 1

Introducción XO Introducción Generalidades de la Interfaz Gestión de datos en la XO: Journal

Comisión Nacional de Bancos y Seguros

Guía de uso del Cloud Datacenter de acens

Resumen ÁREA DE FACTURACIÓN::INFORMES::Pedidos Detalle Resumen ÁREA DE

CAPITULO V. HERRAMIENTA CASE (Rational Rose, C++)

MANUAL DE FACTURACIÓN TOUCH SCREEN

MANUAL DE USUARIO PLAN GENÉRICO DE AUTOCONTROL EN HOSTELERÍA ASOCIACIÓN DE EMPRESARIOS DE HOSTELERÍA DE GIPUZKOA 1

Eurowin 8.0 SQL. Manual del módulo TALLAS Y COLORES

Acronis License Server. Guía del usuario

Manual del Usuario. Portal Web Para uso exclusivo de Ministros de Estado.

Guía N 1: Fundamentos básicos(i)

CONFIGURACIÓN TERMINAL SERVER EN WINDOWS 2003

El protocolo IMAP ofrece la descarga de correos en modo sólo lectura, es decir descarga sólo una copia del correo y no permite el borrado.

Capítulo 9. Archivos de sintaxis

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation.

Sección de Introducción.

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

MANUAL DE USO DE LA APLICACIÓN

Transcripción:

Hola Android. Introducción al desarrollo de aplicaciones para Android Las aplicaciones para el sistema operativo móvil Android son desarrolladas en el lenguaje de programación Java en conjunto con el SDK de Android que ofrece una plataforma de desarrollo y las herramientas necesarias para generar una aplicación. Por lo general, una aplicación de Android se compone por tres principales elementos: Uno o más componentes, un archivo manifiesto y un documento de diseño de la interfaz de usuario. Componentes Los componentes de una aplicación son los principales bloques de desarrollo de una aplicación de Android y es a través de estos que el sistema tiene acceso a la aplicación. Existen cuatro tipos distintos de componentes: Actividades (Activities), Servicios (Services), Proveedores de Contenido (Content Providers) y Receptores de Señal (Broadcast Receivers). Cada tipo de componente cuenta con un propósito específico y distinto ciclo de vida que determina como el componente es creado y destruido. Estos componentes son activados por mensajes del sistema llamados Intents que buscan un componente que cumpla con las características requeridas para cumplir con alguna tarea solicitada. En nuestro caso nos centraremos en un solo tipo de componente, las Actividades. En resumen una Actividad es una pantalla que cuenta con una interfaz de usuario que permite la interacción del usuario con la aplicación para llevar a cabo alguna tarea en particular. Una aplicación puede estar conformada por una o más Actividades las cuales a pesar de que trabajan en conjunto en una aplicación son independientes unas de otras por lo cual puede ser llamadas por otras aplicaciones. Por ejemplo, una aplicación de correo electrónico puede estar compuesta por una Actividad que muestra una lista de correos, una Actividad para leer los correos y una Actividad para redactar nuevos correos. Las Actividades son implementadas como subclases de la clase Activity. El ciclo de vida de una Actividad toma lugar entre la llamada a la Actividad y el momento en que es destruida. Este se ve afectado directamente por como se relaciona con otras Actividades. El ciclo de vida de una Actividad se compone por siete estados: Created, Restarted, Started, Resumed, Paused, Stopped y Destroyed. Una Actividad entra en estado Created en el momento en el que esta es llamada por el sistema y es creada. Una vez creada la Actividad esta es inicializada y entra en estado de Started para inmediatamente después pasar al estado Resumed indicando que la Actividad se encuentra actualmente en ejecución en el primer plano de la pantalla y tiene la atención del usuario. Cuando otra Actividad pasa al primer plano y obtiene la atención del usuario nuestra Actividad es pausada y entra en el estado Paused siempre y cuando esta aun siga siendo visible en el fondo, de lo contrario, cuando esta no es visible, es pausada y posteriormente detenida entrando al estado Stopped. Cabe resaltar que cuando una Actividad se encuentra pausada o detenida, el sistema puede eliminar el proceso en caso de requerir más memoria para la Actividad que se encuentre de momento en primer plano.

La clase Activity cuenta con un método de retorno específico para cada uno de estos estados que, de ser necesario, deben ser implementados para manejar cada uno de los estados en una Actividad. Estos métodos son oncreate(), onrestart(), onstart(), onresume(), onpause(), onstop() y ondestroy(). A continuación se muestra un diagrama del ciclo de vida de una Actividad y como se interrelaciona cada uno de estos métodos: En una Actividad trabajaremos principalmente con los métodos oncreate(), onpause() y onresume(). Dado a que el método oncreate() es únicamente llamado al iniciar la Actividad, este es aprovechado para realizar las configuraciones iniciales de la Actividad. En el método onresume() regresamos la Actividad al estado en el que se encontraba antes de que la misma fuera

detenida o pausada. Finalmente, en el método onpause(), como su nombre lo indica, pausamos la Actividad, esto incluye liberar algunos recursos de memoria que pudieran estar ocupados por sonidos o gráficos. Además, como anteriormente mencionamos, al detener o pausar la Actividad esta puede ser eliminada por el sistema en caso de requerirlo y es por esto que es importante que en este mismo método aprovechemos para guardar el estado actual de la Actividad de tal manera que el usuario pueda encontrarla en el estado que se encontraba antes de que la misma pasará a segundo plano sin importar que esta haya tenido que ser destruida por el sistema o no. Por último, una Actividad puede contar con un elemento más que es indispensable para su funcionamiento, estas son las vistas. La vista define la interfaz que el usuario podrá ver en la pantalla y mediante la cuál interactuará con la Actividad. Una vista puede ser definida de dos maneras, la primera es mediante un documento de diseño del cuál hablaremos más adelante y la segunda es mediante programación dentro del mismo código de la Actividad. Para esta última Android cuenta con diversas clases predeterminadas para el manejo de vistas específicas. Para mayor información en relación a las Actividades da clic aquí Archivo Manifiesto El archivo Manifiesto es esencial para toda aplicación y por ello no puede faltar en ningún caso. Este proporciona al sistema toda la información relevante que requiere con respecto a nuestra aplicación antes de ejecutar la misma. El manifiesto informa al sistema sobre el nombre del paquete de la aplicación, los componentes que la componen, los permisos que esta requiere y la plataforma mínima requerida para que la aplicación corra sin problema alguno. Este archivo de extensión.xml debe tener por nombre AndroidManifest.xml; este se compone por diversos elementos y atributos que en conjunto definen a la aplicación. Existen más de 20 elementos diferentes con sus respectivos atributos de los cuales 2 deben de estar presentes en todo manifiesto para su correcta funcionalidad, los elementos <manifest> y <application>. A continuación se presenta una lista de los elementos y una breve descripción de cada uno: <action>: Añade una acción a un <intent- filter> indicando el tipo de acción a la que responde el filtro. <activity>: Declara y describe una Actividad que forma parte de la aplicación. Todas las Actividades que conforman la aplicación deben de ser declaradas en el manifiesto para que el sistema las reconozca. <activity- alias>: Permite identificar a una Actividad en particular como una entidad independiente de la Aplicación. <application>: Declara y describe una aplicación, contiene también la definición de los componentes de la aplicación. Este elemento es requerido en el manifiesto y puede ser incluido solo una vez. <category>: Asigna una categoría a un <intent- filter> indicando el tipo de categoría a la que responde el filtro. <compatible- screens>: Especifica las configuraciones de pantalla con las que es compatible la aplicación.

<data>: Agrega una especificación de datos a un <intent- filter>. Esta especificación puede ser un tipo de dato (MIME type) o un URI. <grant- uri- permission>: Especifica los subconjuntos de datos a los cuales se les puede otorgar este permiso dentro de un proveedor de contenido. <instrumentation>: Crea una instancia de la clase Instrumentation la cual permite monitorear la interacción de la aplicación con el sistema. Este debe de ser creado antes que cualquier otro componente de la aplicación. <inten- filter>: Especifica los Intents a los cuales responde cierto componente en específico. <manifest>: La raíz del manifiesto. Este debe contener un elemento <application> y especificar el namespace de Android (xlmns:android) y el paquete de la aplicación. <meta- data>: Identificador para un elemento adicional de información que se envía al componente padre. <path- permission>: Define el directorio y los permisos requeridos para acceder a un subconjunto de datos en específico dentro de un proveedor de contenido. <permission>: Establece un permiso de seguridad que puede ser utilizado para limitar el acceso a componentes o funciones específicas de esta u otras aplicaciones. <permission- group>: Declara el nombre de un grupo de permisos relacionados. <permission- tree>: Declara el nombre base para un árbol de permisos. <provider>: Declara y describe un proveedor de contenido que forma parte de la aplicación. Todos los proveedores de contenido de la aplicación deben de ser declarados en el manifiesto para que el sistema los reconozca. <receiver>: Declara y describe un receptor de señal como un componente de la aplicación. <service>: Declara y describe un servicio que forma parte de la aplicación. Todos los servicios de la aplicación deben ser declarados en el manifiesto para que el sistema los reconozca. <supports- gl- texture>: Declara un formato de compresión de texturas de GL que es compatible con la aplicación. <supports- screens>: Especifica los tamaños de pantalla con los cuales es compatible de la aplicación y habilita el modo de compatibilidad de pantalla para los casos en que el tamaño de la pantalla es mayor al compatible. <uses- configuration>: Especifica los requerimientos de hardware y software que requiere la aplicación (TouchScreen, Teclado, TrackBall) para evitar que la aplicación sea instalada en dispositivos no compatibles. <uses- feature>: Declara un solo requerimiento de hardware o software por parte de la aplicación(cámara, Bluetooth, versión de OpenGL ES). <uses- library>: Especifica una librería en específico requerida por la aplicación de tal manera que el sistema incluya su código en el loador del paquete de la aplicación. <uses- permission>: Solicita permisos requeridos por la aplicación para que esta se ejecute de manera correcta.

<uses- sdk>: Especifica la compatibilidad de la aplicación con diversas versiones de la plataforma de Android. Como se mencionó anteriormente, cada elemento posee su propio grupo de atributos que pueden ser definidos dentro del manifiesto, sin embargo no entraremos en detalle con ellos, basta con decir que si estos atributos no son definidos en el manifiesto entonces se les asigna un valor por defecto. Otro punto importante a destacar es que, a excepción de algunos atributos del elemento <manifest>, el nombre de los atributos es antecedido por el prefijo android:. Para mayor información en relación al archivo manifiesto da clic aquí. Interfaz de Usuario (Layouts XML) Android es muy flexible en la definición y manejo de la interfaz de usuario de una aplicación. Para esto nos brinda dos métodos que podemos implementar en conjunto o por separado. El primero de estos métodos es la definición de los elementos de la interfaz de usuario mediante un documento de diseño o layout en XML y el segundo método es crear instancias de los elementos de la interfaz mediante código en la aplicación. Android proporciona su propio vocabulario XML que corresponde a la clase Vista y sus subclases facilitando la creación de interfaces y sus elementos (botones, vistas, campos de texto, etiquetas, etc.) Una de las principales ventajas del manejo de la interfaz en un layout en XML es que se tiene por separado la presentación de la aplicación de su funcionalidad de tal manera que si se requiere hacer ajustes a la interfaz los cambios se hacen directamente en el layout sin tener que tocar el código de la aplicación. A su vez esto nos da la posibilidad de crear diferentes layouts que correspondan a diversas orientaciones y configuraciones de pantalla y lenguajes lo cual permite a la aplicación adaptarse a múltiples dispositivos. Cada layout debe contener únicamente un elemento raíz el cual debe ser un objeto de la clase View o ViewGroup. Una vez definido podemos incluir elementos adicionales dentro de este. Cada elemento posee diversos atributos que ayudan a definir tanto su posición en la pantalla, como su tamaño y otros atributos propios de cada elemento en particular. Una vez definido el layout en XML se graba el archivo bajo el directorio res/layout/ del proyecto para que pueda ser compilado como un recurso de la aplicación. Estos recursos deben ser cargados desde el código de la aplicación para ser implementados como instancias de la clase View. Esto se realiza en el método oncreate() de la Actividad implementando el método setcontentview() el cual recibe como parámetro la referencia al layout en el siguiente formato: R.layout.nombre_del_archivo, donde R es la referencia a los recursos de la aplicación, layout indica que queremos accesar a los layouts dentro de los recursos y nombre_del_archivo es el nombre del archivo del layout que se quiere implementar.

Para mayor información en relación al desarrollo de layouts en XML da clic aquí. Actividad HolaAndroid A continuación crearemos una aplicación Hola Mundo con el fin de poner en práctica los conceptos anteriores. Nuestra aplicación consta de una Actividad que simplemente muestra el mensaje Hola Android!. Empezamos por crear un nuevo proyecto de Android para la plataforma 2.1, nombramos a este proyecto Hola Mundo. Dentro del paquete de la aplicación agregamos una clase de Java y la nombramos HolaMundo.java. La clase HolaMundo extiende a la clase Activity y se compone de una vista que muestra el mensaje Hola Android! en pantalla. A continuación definimos la Actividad HolaMundo. import android.app.activity; import android.os.bundle; public class HolaMundo extends Activity { /** * Método oncreate sobrescrito de la Activity. * Llamado cuando la Actividad se crea por primera vez, * en este se realiza la configuración de la Actividad. * @param savedinstancestate es el estado de la última ejecución de la * Actividad. */ @Override public void oncreate(bundle savedinstancestate) { //Sobrescribe el método oncreate de la clase Activity super.oncreate(savedinstancestate); //Establece la vista de la Actividad setcontentview(r.layout.main); } } En las primeras dos líneas importamos algunos de las clases que la Actividad requiere para su funcionamiento. Posteriormente definimos a la clase HolaMundo la cual extiende a la clase Activity. Dentro de nuestra clase únicamente sobrescribimos el método oncreate(). En el método oncreate de la Actividad hacemos un llamado al método oncreate de la clase padre (clase Activity) y establecemos la vista de la Actividad con la ayuda del método setcontentview() el cual recibe como parámetro la referencia a el layout que contiene nuestra vista que en este caso es un layout llamado main, a continuación definiremos este layout. Al generar un nuevo proyecto, por defecto se genera un layout en XML llamado main.xml. Este layout lo podemos encontrar en la carpeta de

recursos de la aplicación dentro de la carpeta layout. El layout estará compuesto por una vista de texto en la cual se despliega el mensaje Hola Android!. A continuación definimos el layout main. <?xml version= 1.0 encoding= utf- 8?> <TextView xmlns:android= http://schemas.android.com/apk/res/android android:id= @+id/textview android:layout_width= fill_parent android:layout_height= fill_parent android:text= @string/hello /> El elemento TextView corresponde a la vista de texto de la aplicación donde se, mostrará el mensaje. Dado a que el elemento TextView es el elemento raíz de nuestra interfase en el se define el namespace de android para su implementación en el resto del archivo. El atributo id de la vista de texto asigna un número identificador a la vista de tal manera que esta pueda ser referenciada desde el código, la arroba(@) identifica al string del ID como un recurso de ID mientras el signo de suma(+) señala que se esta creando un nuevo ID y debe ser agregado a los recursos de la aplicación. Los atributos layout_width y layout_height establecen respectivamente el ancho y alto de la vista, en este caso se les asigna el valor fill_parent que indica que esta se ajustará a las dimensiones que la vista padre se lo permita. Finalmente, el atributo text establece el texto que la vista contendrá, en este caso el mensaje Hola Android!, para esto obtenemos el mensaje de los recursos de la aplicación al asignarle el siguiente string al atributo text: @string/hello, donde @string indica que obtendremos el mensaje de los valores de string contenidos en los recursos de la aplicación y hello es el nombre identificador del string que contiene el mensaje. Los valores de string están definidos en un archivo XML llamado strings.xml. Este archivo lo podemos encontrar dentro del directorio res/values/ en nuestro proyecto. Ahora, dado a que obtendremos el mensaje a desplegar en pantalla de un valor string de los recursos de la aplicación es necesario que definamos este valor. Para esto empezamos por abrir el archivo strings.xml que se encuentra en el directorio res/values/ de nuestro proyecto. En el se encuentra previamente definido un string de nombre app_name el cual define el nombre de la aplicación, sin embargo necesitamos definir un valor más para guardar el mensaje Hola Android!, a este nuevo valor los nombraremos hello. El archivo strings.xml quedaría de la siguiente manera: <?xml version= 1.0 encoding= utf- 8?> <resources> <string name= app_name >Hola Mundo</string> <string name= hello > Hola Android!</string> </resources> Como podemos observar, el archivo se compone de únicamente dos valores del tipo string que van dentro de un elemento resources. El primero de ellos, app_name, contiene el nombre de la aplicación que en este caso es Hola

Mundo mientras que el segundo, hello, contiene el mensaje que deseamos que la aplicación despliegue en la pantalla: Hola Android!. Por último definimos el archivo manifiesto de la aplicación. <?xml version= 1.0 encoding= utf- 8?> <manifest xmlns:android= http://schemas.android.com/apk/res/android package= com.jcj.holamundo android:versioncode= 1 android:versionname= 1.0 > <application android:label= @string/app_name android:icon= @drawable/icon > <activity android:name= HolaMundo android:label= @string/app_name > <intent- filter> <action android:name= android.intent.action.main /> <category android:name= android.intent.category.launcher /> </intent- filter> </activity> </application> </manifest> El elemento manifest inicia por definir el namespace de android para su implementación en el resto del archivo. El atributo package define el nombre del paquete raíz de la aplicación(en el caso de este ejemplo es com.jcj.holamundo pero en tu caso será el que tu hayas definido para el proyecto). Los atributos versioncode y versionname indican el número de versión de la aplicación, sin embargo cada uno es implementado con diferentes propósitos, el primero es utilizado por el Android Market para llevar un registro de las versiones de la aplicación y el segundo es desplegado por el Android Market a los usuarios cuando revisan la aplicación. El elemento application define las propiedas de la aplicación, inicia con el atributo label el cual define el nombre de la aplicación que será mostrado en el dispositivo una vez que sea instalada que en este caso será el nombre que previamente definimos en el archivo strings.xml. El atributo icon define el icono de la aplicación el cual lo obtiene de los recursos de la misma. Al crear un proyecto, dentro de los recursos podemos encontrar un icono predefinido en el directorio res/drawable/. El elemento activity define las propiedades de una Actividad, si nuestra aplicación contiene más de una Actividad entonces será necesario definir este elemento para cada Actividad que conforma a la aplicación. En el atributo name se indica el nombre de la clase de la Actividad relativo al paquete definido en el elemento manifest. El atributo label despliega el texto definido en la barra de título de la Actividad si es que esta contiene una.

El elemento intent- filter que esta dentro del elemento activity ayuda a determinar la forma en que el sistema se comunicará con la Actividad. En el caso de este ejemplo, con el elemento action indicamos que la Actividad es la actividad principal de la aplicación y con el elemento category indicamos a el sistema que la Actividad sea añadida al application launcher de Android de tal manera que al presionar el botón de la aplicación en el dispositivo esta Actividad será llamada. Una vez definidos todos estos elementos nuestra aplicación esta lista para ejecutarse. Al compilar y correr la aplicación en un dispositivo o en el emulador deberás obtener lo siguiente: