Manual Mca006. Manual Mca006 CURSO ANDROID DESARROLLO de APLICACIONES MÓVILES, 24 horas



Documentos relacionados
Mi Primer Proyecto en Android Studio

INTRODUCCIÓN.

Practica 1 Estructura De Un Proyecto En ANDROID

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


Programación Android. Alejandro Alcalde. elbauldelprogramador.com

Ejercicio 18. Configuración de Widgets en Android. Android Con Java. Ejercicio 18. Configuración de Widgets en Android. Curso de Android con Java

Crear una Activity en Android. Paso por paso

ANDROID BÁSICO - E-LEARNING - EN LÍNEA

Desarrollo de apps para móviles Android. Entorno de desarrollo

Tutorial 1. Instalación del entorno de desarrollo de Android. Curso de perfeccionamiento: Programación de Android TUTORIAL 1: INSTALACIÓN DEL SOFTWARE

Entorno de desarrollo Instalación y configuración

Con este tutorial podrás aprender a cómo empezar a crear apps en Android, empezaremos con algo muy simple para que poco a poco vayas conociendo.

1.1. Instalación del entorno de desarrollo

PRACTICAS DE ANDROID 12 - Lanzar un segundo "Activity" y pasar parámetros Problema:

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

COMO CREAR UN PROYECTO EN ANDROID. Para crear un proyecto en androide se necesitamos los siguientes software para realizar lo en un simulador.

Microsoft Access proporciona dos métodos para crear una Base de datos.

Operación de Microsoft Excel

Programación en Android LSUB, GSYC, URJC

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:

Operación Microsoft Access 97

1. El entorno de desarrollo Eclipse

Objetivos y Temario CURSO DESARROLLO APLICACIONES ANDROID 4.0

Taller Caldum Introducción al desarrollo Android

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

Instalación De ANDROID STUDIO

Desarrollo de apps para móviles Android. Creación de aplicaciones para móviles/tablets Android

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

STRATO LivePages Inicio rápido

Anexo IV Configuración del Entorno de Desarrollo. Guía de puntos de interés de la Ciudad de Madrid

CODIGO PROYECTO: AppPixelproServicioWeb Proyecto Android - Servicio Web

ELABORACIÓN DE TABLEROS DINÁMICOS DE COMUNICACIÓN CON EL PROGRAMA EDITOR TICO

POWER POINT. Iniciar PowerPoint

PROGRAMA DE MATERIA DATOS DE IDENTIFICACIÓN DESCRIPCIÓN GENERAL OBJETIVO (S) GENERAL (ES) OPTATIVA PROFESIONALIZANTE II

SALVADOR GÓMEZ OLIVER

NORMA 34.14(SEPA) 05/11/2013

ALMACENAMIENTOS DE DATOS EN ANDROID CON SQLITE

Guía de instalación del software de la asignatura

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

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

MODELO DE IMPLEMENTACIÓN

V Manual de Portafirmas V.2.3.1

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

Introducción a Google Calendar Breve guía sobre algunas de sus funcionalidades destacables.

Ejercicio 4. Manejo de Layouts en Android. Android Con Java. Ejercicio 4. Manejo de Layouts en Android. Curso de Android con Java

ADVISOR MODELO DE DESARROLLO

Capítulo 9. Archivos de sintaxis

Notas para la instalación de un lector de tarjetas inteligentes.

UNIVERSIDAD COOPERATIVA DE COLOMBIA POSTGRADO MULTIMEDIA PARA LA DOCENCIA ELECTIVA I CREACIÓN DE AMBIENTES VIRTUALES

VideoSoftPHONE Active Contact

En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas.

Ajustes del Curso en egela (Moodle 2.5)

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

Para crear una lista como la anterior, primero escribe la información, y después selecciona el texto y aplícale el formato de viñetas.

Tutorial: Instalación de Eclipse para programar Android en Windows

Tema 2: Introducción a Android

Índice. Herramientas de desarrollo. Historia Qué es Android? Arquitectura del sistema. Componentes Android Modelos de Negocio

Cómo abrir Unidades MALTED

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

Capitulo 4: Componentes Android

GENERACIÓN DE ANTICIPOS DE CRÉDITO

Instalación del entorno de desarrollo

ANDROID INTERMEDIO - E-LEARNING - EN LÍNEA

Instrucciones para Integración con PayPal

Entorno de Desarrollo - 1 -

Programación Android. Rafael Morón Abad

Instructivo - Instalación y Uso de PDF Creator

Acronis License Server. Guía del usuario

Temas. CopyRight emmmnmmma - All rights reserved 2

5.- Crear páginas web con Nvu

... Formas alternativas de escribir un texto. Columnas. anfora CAPÍTULO 4

Eurowin 8.0 SQL. Manual de la FIRMA DIGITALIZADA

Movistar Tu Web Manual de Usuario

SMS Gestión. manual de uso

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

GENERACIÓN DE TRANSFERENCIAS

Ejercicios - Persistencia en Android: proveedores de contenidos y SharedPreferences

Sistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema

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

UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO

DBmessage TM. Manual de usuario

Roberto Quejido Cañamero

A25. Informática aplicada a la gestión Curso 2005/2006 Word Tema 3. Formato de sección.

Internet Information Server

2_trabajar con calc I

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

Introducción a los sitios de SharePoint en Office 365

MANUAL DE USUARIO FACTURACIÓN ELECTRÓNICA

Ejecutar el instalador y seleccionar los paquetes necesarios. En nuestro caso son los siguientes: Android SDK Tools (ya vendrá instalado) Android SDK

Tobii Communicator 4. Introducción

Oficina Online. Manual del administrador

Tarea 1 Programación José Luis Comesaña

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS

UD6. Diseño de presentaciones

LiLa Portal Guía para profesores

CASO PRÁCTICO. ANÁLISIS DE DATOS EN TABLAS DINÁMICAS

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Cómo creo las bandejas del Registro de Entrada /Salida y de Gestión de Expedientes?

Transcripción:

Sé diferente, intégrate Mca006 Manual Mca006 CURSO ANDROID DESARROLLO de APLICACIONES MÓVILES, 24 horas Autor: Olrando Gutiérrez Fecha: 10 / 05 / 2013 Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 1

INDICE Pag. 3 Lección 1 Ambiente de Programación Android: Java Development Kit, Eclipse Juno, SDK de Android, Pluggin de Android para Eclipse Pag. 6 Pag. 17 Pag. 18 Pag. 23 Pag. 31 Lección 2 Estructura de un proyecto Android Lección 3 Componentes de una aplicación Android Lección 4 Desarrollando la primera aplicación en Android Lección 5 Layouts: Frame, Linear, Table, Grid, Relative Lección 6 Controles: Propiedades, Eventos, Personalización Pag. 33 Lección 7 Controles básicos: Button, TogleButton, ImageButton, ImageView, TextView, EditText, Objetos Tipo Spanned, Formatos en objetos de texto, CheckBox, RadioBotton Pag. 42 Lección 8 Controles de Selección: Adaptadores, Listas desplegables tipo Spinner, Listas fijas tipo ListView, GridView Pag. 46 Lección 9 Controles personalizados: Extendiendo la función de un control existente, Combinando varios controles para crear uno más complejo, Diseñando un control desde cero Pag. 64 Pag. 69 Pag. 79 Pag. 80 Lección 10 Pestañas (Tabs) Lección 11 Fragments Lección 12 Action Bar: Introducción, Tabs Lección 13 Menús: Menús y Sub Menús básicos, Menús contextuales, Opciones Avanzadas Pag. 90 Pag. 94 Pag. 102 Pag. 104 Pag. 111 Lección 14 Widgets Lección 15 Preferencias: SharedPreferences, PreferenceActivity Lección 16 Localización: Mecanismos, Proveedores, GPS Lección 17 Mapas : Comparación v1 y v2, Introducción v2, Objeto Google Map, Métodos Lección 18 Notificaciones: Toast, Barra de Estado, Diálogos Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 2

LECCION 1 Ambiente de Programación Android: Java Development Kit, Eclipse Juno, SDK de Android, Pluggin de Android para Eclipse Ambiente de desarrollo en Android A continuación se describen los pasos básicos para disponer en el equipo del ambiente y las herramientas necesarias para comenzar a programar aplicaciones para la plataforma Android. Paso 1. Descargar e instalar Java. Se debe instalar alguna versión del JDK (Java Development Kit) de Java, la misma se encuentra disponible en el sitio web de Oracle http://www.oracle.com/technetwork/java/javase/downloads/index.html. Por ejemplo, se puede descargar la versión 7 update11, la cual dependde de la versión concreta del sistema de operación. Por ejemplo, para Windows 64 bits se puede descargar el ejecutable marcado como Windows x64 cuyo nombre de archivo es jdk-7u11-windows-x64.exe. La instalación no tiene ninguna dificultad ya que es un instalador estándar de Windows donde tan sólo hay que aceptar las opciones que ofrece por defecto. Paso 2. Descargar e instalar Eclipse. Eclipse es un IDE (Integrated Development Environment), Ambiente Integrgrado de Desarrollo para múltiples lenguajes de Programación y es muy utilizado con el lenguaje Java. Se puede descargar por ejemplo la versión 4.2.1 [Eclipse Juno SR1], o cualquier versión más actualizada desde http://www.eclipse.org/downloads/. Se requiere instalar la versión Eclipse IDE for Java Developers, y por supuesto descargar la versión apropiada para el sistema de operación (Windows/Mac OS/Linux, y 32/64 bits). La instalación consiste simplemente en descomprimir el zip descargado en la ubicación deseada. Para ejecutarse se accede al archivo eclipse.exe dentro de la ruta donde se haya descomprimido la aplicación, por ejemplo c:\eclipse\eclipse.exe. Durante la primera ejecución de la aplicación sepreguntará cuál será la carpeta donde se requiere almacenar los proyectos. Se indicara la ruta deseada y se marcara un check Use this as the default para que no vuelva a preguntarlo. Paso 3. Descargar el SDK de Android. El SDK Software Development Kit, Herramaienta de Desarrollo de Softwarte, de la plataforma Android se puede descargar desde http://developer.android.com/sdk/index.html (por ejemplo se puede utilizar la versión r21, que Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 3

funciona perfectamente con Eclipse 4.2.1). Con las últimas versiones, Google proporciona un paquete que contiene Eclipse, el SDK y varios de los componentes necesarios ya instalados (el paquete se llama ADT Bundle for Windows ), pero para descargar e instalar cada elemento por separado, se utiliza el enlace Use an existing IDE y se descarga el ADT pulsando sobre el botón Download the SDK Tools for Windows. Una vez descargado, bastará con ejecutar el instalador estándar de Windows. Paso 4. Descargar el plugin Android para Eclipse. Google pone a disposición de los desarrolladores un plugin para Eclipse llamado Android Development Tools (ADT) que facilita en gran medida el desarrollo de aplicaciones para la plataforma. Se puede descargar mediante las opciones de actualización de Eclipse, accediendo al menú Help / Install new software e indicando el siguiente URL de descarga: https://dl-ssl.google.com/android/eclipse/ Se seleccionan los dos paquetes disponibles Developer Tools y NDK Plugins y se pulsa el botón Next> para comenzar con el asistente de instalación. Durante la instalación Eclipse requerirá la aceptación de la licencia de los componentes de Google que se van a instalar y es posible que aparezca algún mensaje de warning que simplemente se puede aceptar para continuar con la instalación. Finalmente el instalador solicitará la reinicialización de Eclipse. Paso 5. Configurar el plugin ADT. Una vez instalado el plugin, se debe configurar indicando la ruta donde se ha instalado el SDK de Android. Para ello, se irá a la ventana de configuración de Eclipse (Window / Preferences ), y en la sección de Android se indicara la ruta donde se ha instalado. Finalmente se pulsa OK para aceptar los cambios. Si aparece algún mensaje de warning el mismo se acepta, ya que se son problemas que se solucionarán en el siguiente paso. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 4

Paso 6. Instalar las Platform Tools y los Platforms necesarios. Además del SDK de Android comentado en el paso 2, que contiene las herramientas básicas para desarrollar en Android, también se deben descargar las llamadas Platflorm Tools, que contiene herramientas específicas de la última versión de la plataforma, y una o varias plataformas (SDK Platforms) de Android, que no son más que las librerías necesarias para desarrollar sobre cada una de las versiones concretas de Android. Así, si se requiere desarrollar por ejemplo para Android 2.2 se tendrá que descargar su plataforma correspondiente. Se recomienda instalar al menos 2 plataformas: la correspondiente a la última versión disponible de Android, y la correspondiente a la mínima versión de Android que se requiere soporte la aplicación. Para ello, desde Eclipse se debe acceder al menú Window / Android SDK Manager. En la lista de paquetes disponibles se seleccionan las Android SDK Platform-tools, las plataformas Android 4.2 (API 17) y Android 2.2 (API 8), y el paquete extra Android Support Library, que es una librería permintiendo utilizar en versiones antiguas de Android características introducidas por versiones más recientes. Se pulsa el botón Install packages y se espera a que finalice la descarga. Paso 7. Configurar un AVD. A la hora de probar y depurar aplicaciones Android no se tiene que hacer necesariamente sobre un dispositivo físico, sino que se puede configurar un emulador o dispositivo virtual (Android Virtual Device, o AVD) donde poder realizar fácilmente estas tareas. Para ello, se accede al AVD Manager (menú Window / AVD Manager), y en la Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 5

sección Virtual Devices se pueden añadir tantos AVD como se necesiten (por ejemplo, configurados para distintas versiones de Android o distintos tipos de dispositivo). Se recomienda configurar al menos dos AVD, uno para la mínima versión de Android a soportar, y otro para la versión más reciente disponible. Para configurar el AVD tan sólo de debe indicar un nombre descriptivo, la versión de la plataforma Android que utilizará, y las características de hardware del dispositivo virtual, como por ejemplo su resolución de pantalla o el tamaño de la tarjeta SD. Además, se marcará la opción Snapshot, que permitirá arrancar el emulador más rápidamente en futuras ejecuciones. Y con este paso ya se tienen preparadas todas las herramientas necesarias para comenzar a desarrollar aplicaciones Android. LECCION 2 Estructura de un proyecto Android Para crear un proyecto Android desde Eclipse se utiliza File -> New -> Project Aparece una ventana de selección donde se indica Android y luego se escoge Android Application Project. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 6

En la siguiente ventana se indica el nombre de la aplicación, el nombre del proyecto y el paquete java que se utilizara para las clases java. Se tiene que seleccionar además la mínima versión del SDK que aceptará la aplicación al ser instalada en un dispositivo (Minimum Required SDK), la versión del SDK para la que se desarrollara (Target SDK), y la versión del SDK con la que se compilara el proyecto (Compile with). Las dos últimas suelen coincidir con la versión de Android más reciente. El resto de opciones se deja con los valores por defecto Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 7

Al pulsar el botón Next, se accede al siguiente paso del asistente, donde se tiene que indicar si durante la creación del nuevo proyecto se requiere crear un icono para la aplicación (Create custom launcher icon) y si se requiere crear una actividad inicial (Create activity). También se puede indicar si el proyecto será del tipo Librería (Mark this Project as a library). En este primer ejemplo se dejan todas las opciones marcadas por defecto como se ve en la siguiente imagen y se pulsa Next. En la siguiente pantalla del asistente se configura el icono que tendrá la aplicación en el dispositivo. Se puede seleccionar la imagen, texto o dibujo predefinido que aparecerá en el icono, el margen, la forma y los colores aplicados. En este ejemplo, se deja todo por defecto y se avanza al siguiente paso pulsando Next. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 8

En la siguiente pantalla del asistente se elege el tipo de Actividad principal de la aplicación. Una actividad es una ventana o pantalla de la aplicación. En este paso también se dejan todos los valores por defecto, indicando así que la pantalla principal será del tipo BlankActivity. Por último, en el último paso del asistente se indican los datos de la actividad principal que se acaba de elegir, indicando el nombre de su clase java asociada y el nombre de su layout xml (es la interfaz gráfica de la actividad). Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 9

Una vez configurado todo, se pulsa el botón Finish y Eclipse creará toda la estructura del proyecto y los elementos indispensables que debe contener. En la siguiente imagen se visualizan los elementos creados inicialmente para un nuevo proyecto Android: Carpeta /src/ Esta carpeta contendrá todo el código fuente de la aplicación, código de la interfaz gráfica, clases auxiliares, etc. Inicialmente, Eclipse creará el código básico de la pantalla (Activity) principal de la aplicación, que en el ejemplo era PpalActivity, y siempre bajo la estructura del paquete java definido. Carpeta /res/ Contiene todos los archivos de recursos necesarios para el proyecto: imágenes, vídeos, cadenas de texto, etc. Los diferentes tipos de recursos se distribuyen entre las siguientes subcarpetas: Carpeta Descripción Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 10

/res/drawable/ Contiene las imágenes [y otros elementos gráficos] usados en por la aplicación. Para definir diferentes recursos dependiendo de la resolución y densidad de la pantalla del dispositivo se suele dividir en varias subcarpetas: /drawable-ldpi (densidad baja) /drawable-mdpi (densidad media) /drawable-hdpi (densidad alta) /drawable-xhdpi (densidad muy alta) /res/layout/ Contiene los archivos de definición XML de las diferentes pantallas de la interfaz gráfica. Para definir distintos layouts dependiendo de la orientación del dispositivo se puede dividir en dos subcarpetas: /layout (vertical) /layout-land (horizontal) /res/anim/ /res/animator/ Contienen la definición de las animaciones utilizadas por la aplicación. /res/color/ Contiene archivos XML de definición de colores según estado. /res/menu/ Contiene la definición XML de los menús de la aplicación. /res/xml/ Contiene otros archivos XML de datos utilizados por la aplicación. /res/raw/ Contiene recursos adicionales, normalmente en formato distinto a XML, que no se incluyan en el resto de carpetas de recursos. /res/values/ Contiene otros archivos XML de recursos de la aplicación, como por ejemplo cadenas de texto (strings.xml), estilos (styles.xml), colores (colors.xml), arreglos de valores (arrays.xml), etc. No todas estas carpetas tienen por qué aparecer en cada proyecto Android, tan sólo las que se necesiten. Como ejemplo, para un proyecto nuevo Android, se crean por defecto los siguientes recursos para la aplicación: Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 11

Como se puede observar, existen algunas carpetas en cuyo nombre se incluye un sufijo adicional, como por ejemplo values-v11 y values-v14. Estos, y otros sufijos, se emplean para definir recursos independientes para determinados dispositivos según sus características. De esta forma, por ejemplo, los recursos incluidos en la carpeta values-v11 se aplicarían tan sólo a dispositivos cuya versión de Android sea la 3.0 (API 11) o superior. Al igual que el sufijo v existen otros muchos para referirse a otras características del terminal. Entre los recursos creados por defecto, cabe destacar el layout activity_ppal.xml, que contiene la definición de la interfaz gráfica de la pantalla principal de la aplicación. Doble clic sobre el archivo, Eclipse mostrará esta interfaz en su editor gráfico (tipo arrastrar y soltar) y como se puede comprobar, en principio contiene tan sólo una etiqueta de texto centrada en pantalla con el mensaje Hello World!. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 12

Existen dos maneras de trabajar, la primera utilizando el editor gráfico, y la segunda manipulando directamente el archivo XML asociado. En este caso, el XML asociado sería el siguiente: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context=".ppalactivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" /> </RelativeLayout> Carpeta /gen/ Contiene una serie de elementos de código generados automáticamente al compilar el proyecto. Cada vez que se genera el proyecto, la maquinaria de compilación de Android genera automáticamente una serie de archivos fuente java dirigidos al control de los recursos de la aplicación. Importante: dado que estos archivos se generan automáticamente tras cada compilación del proyecto es importante que no se modifiquen manualmente bajo ninguna circunstancia. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 13

El elemento más importante de los archivos generados es R.java, donde se define la clase R. La clase R contiene las constantes con los ID de todos los recursos de la aplicación incluidos en la carpeta /res/, de forma que se pueda acceder fácilmente a estos recursos desde el código a través de el ID. Así, por ejemplo, la constante R.drawable.ic_launcher contendrá el ID de la imagen ic_launcher.png contenida en la carpeta /res/drawable/. A continuación como ejemplo se muestra la clase R creada por defecto para un proyecto nuevo: package gala.curso; public final class R { public static final class attr { public static final class dimen { /** Default screen margins, per the Android Design guidelines. Customize dimensions originally defined in res/values/dimens.xml (such as screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here. */ public static final int activity_horizontal_margin=0x7f040000; public static final int activity_vertical_margin=0x7f040001; public static final class drawable { public static final int ic_launcher=0x7f020000; public static final class id { Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 14

public static final int action_settings=0x7f080000; public static final class layout { public static final int activity_ppal=0x7f030000; public static final class menu { public static final int ppal=0x7f070000; public static final class string { public static final int action_settings=0x7f050001; public static final int app_name=0x7f050000; public static final int hello_world=0x7f050002; public static final class style { /** Base application theme, dependent on API level. This theme is replaced by AppBaseTheme from res/values-vxx/styles.xml on newer devices. Theme customizations available in newer API levels can go in res/values-vxx/styles.xml, while customizations related to backward-compatibility can go here. Base application theme for API 11+. This theme completely replaces AppBaseTheme from res/values/styles.xml on API 11+ devices. API 11 theme customizations can go here. Base application theme for API 14+. This theme completely replaces AppBaseTheme from BOTH res/values/styles.xml and res/values-v11/styles.xml on API 14+ devices. API 14 theme customizations can go here. */ public static final int AppBaseTheme=0x7f060000; /** Application theme. All customizations that are NOT specific to a particular API-level can go here. */ public static final int AppTheme=0x7f060001; Carpeta /assets/ Contiene todos los demás archivos auxiliares necesarios para la aplicación (y que se incluirán en el paquete), como por ejemplo archivos de configuración, de datos, etc. La diferencia entre los recursos incluidos en la carpeta /res/raw/ y los incluidos en la carpeta /assets/ es que para los primeros se generará un ID en la clase R y se deberá acceder a ellos con los diferentes métodos de acceso a recursos. Para los segundos sin embargo no se generarán IDs y se podrá acceder a ellos por su ruta como a cualquier otro archivo del sistema. Se utilizara uno u otro según las necesidades de la aplicación. Carpeta /bin/ Contiene los elementos compilados de la aplicación y los archivos auxiliares; es generada automáticamente y no debería ser modificada. Cabe destacar el archivo con extensión.apk, que es el ejecutable de la aplicación que se instalará en el dispositivo. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 15

Carpeta /libs/ Contiene las librerías auxiliares, normalmente en formato.jar utilizadas en la aplicación Android. Archivo AndroidManifest.xml Contiene la definición en XML de los aspectos principales de la aplicación, como por ejemplo su identificación (nombre, versión, icono, ), sus componentes (pantallas, mensajes, ), las librerías auxiliares utilizadas, o los permisos necesarios para su ejecución.. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="gala.curso" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="8" android:targetsdkversion="17" /> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="gala.curso.ppalactivity" 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> Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 16

</manifest> LECCION 3 Componentes de una aplicación Android A continuación de enumeran los distintos tipos de componentes de software con los que se puede construir una aplicación Android. En Java o.net se manejan conceptos como ventana, control, eventos o servicios como los elementos básicos en la construcción de una aplicación. En Android se dispone también de esos mismos elementos básicos aunque con un pequeño cambio en la terminología y el enfoque. Activity Las actividades (activities) representan el componente principal de la interfaz gráfica de una aplicación Android. Se puede pensar en una actividad como el elemento análogo a una ventana o pantalla en cualquier otro lenguaje visual. View Las vistas (view) son los componentes básicos con los que se construye la interfaz gráfica de la aplicación, análogo por ejemplo a los controles de Java o.net. De inicio, Android pone a disposición una gran cantidad de controles básicos, como cuadros de texto, botones, listas desplegables o imágenes, aunque también existe la posibilidad de extender la funcionalidad de estos controles básicos o crear nuevos controles personalizados. Service Los servicios (service) son componentes sin interfaz gráfica que se ejecutan en segundo plano (background). En concepto, son similares a los servicios presentes en cualquier otro sistema de operación. Los servicios pueden realizar cualquier tipo de acciones, por ejemplo actualizar datos, lanzar notificaciones, o incluso mostrar elementos visuales (p.ej. actividades) si se necesita en algún momento la interacción con del usuario. Content Provider Un proveedor de contenidos (content provider) es el mecanismo que se ha definido en Android para compartir datos entre aplicaciones. Mediante estos componentes es posible compartir determinados datos de una aplicación sin mostrar detalles sobre su almacenamiento interno, su estructura, o su implementación. De la misma forma, una aplicación podrá acceder a los datos de otra a través de los content provider que se hayan definido. Broadcast Receiver Un broadcast receiver es un componente destinado a detectar y reaccionar ante determinados mensajes o eventos globales generados por el sistema (por ejemplo: Batería baja, SMS recibido, Tarjeta SD insertada, ) o por otras aplicaciones (cualquier aplicación puede generar mensajes (intents, en terminología Android) broadcast, es decir, no dirigidos a una aplicación concreta sino a cualquiera que quiera escucharlo). Widget Los widgets son elementos visuales, normalmente interactivos, que pueden mostrarse en la pantalla principal (home screen) del dispositivo Android y recibir actualizaciones periódicas. Permiten mostrar información de la aplicación al usuario directamente sobre la pantalla principal. Intent Un intent es el elemento básico de comunicación entre los distintos componentes Android descritos anteriormente. Se pueden entender como los mensajes o peticiones que son enviados entre los distintos componentes de una aplicación o entre distintas aplicaciones. Mediante un intent se puede mostrar una actividad desde cualquier otra, iniciar un servicio, enviar un mensaje broadcast, iniciar otra aplicación, etc. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 17

LECCION 4 Desarrollando la primera aplicación en Android A modo de ilustrar con un ejemplo, el desarrollo de aplicaciones en Android, se van a diseñar dos actividades, en la primera se coloca un código de curso y un botón con una acción de mostrar el valor introducido en la segunda actividad. La primera actividad se muestra en la siguiente figura: El resultado de presionar el botón Bienvenido es la muestra de la siguiente actividad El primer paso es es diseñar la pantalla principal. En Android, el diseño y la lógica de una pantalla están separados en dos arechvos distintos. Por un lado, en el archivo /res/layout/activity_ppal.xml se tiene el diseño puramente visual de la pantalla definido como archivo XML y por otro lado, en el archivo /src/gala.curso/ppalactivity.java, se encuentra el código java que determina la lógica de la pantalla. A lo largo del manual se utilizaran estos archivos en esto directorios, pero los nombres pueden ser cambiados a gusto de los desarrolladores. Se va a modificar en primer lugar el aspecto de la ventana principal de la aplicación añadiendo los controles (views) requeridos. Para ello, se edita el contenido del archivo activity_ppal.xml por el siguiente: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/llppal" android:layout_width="match_parent" android:layout_height="match_parent" Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 18

android:orientation="vertical" > <TextView android:id="@+id/tvcurso" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/curso" /> <EditText android:id="@+id/etcurso" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputtype="text"> </EditText> <Button android:id="@+id/bbienvenido" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/bienvenido" /> </LinearLayout> En este XML se definen los elementos visuales que componen la interfaz de la pantalla principal y se especifican todas sus propiedades. El primer elemento es LinearLayout. Los layout son elementos no visibles que determinan cómo se van a distribuir en el espacio los controles incluidos en su interior. Los programadores java, y más concretamente de Swing, conocen este concepto perfectamente. En este caso, un LinearLayout distribuirá los controles simplemente uno tras otro y en la orientación que indique su propiedad android:orientation, que en este caso será vertical. Dentro del layout se incluyen 3 controles: una etiqueta (TextView), un cuadro de texto (EditText), y un botón (Button). En todos ellos se han establecido las siguientes propiedades: android:id. ID del control, con el que se podrá identificarlo más tarde en el código. El identificador se escribe precedido de @+id/. Esto tendrá como efecto que al compilarse el proyecto se genere automáticamente una nueva constante en la clase R para dicho control. Así, por ejemplo, como el cuadro de texto tiene el ID EtCurso, se puede más tarde acceder a él desde el código referenciando la constante R.id.EtCurso. android:layout_height y android:layout_width. Dimensiones del control con respecto al layout que lo contiene. Esta propiedad tomará normalmente los valores wrap_content para indicar que las dimensiones del control se ajustarán al contenido del mismo, o bien match_parent para indicar que el ancho o el alto del control se ajustará al ancho o alto del layout contenedor respectivamente. Además de estas propiedades comunes a casi todos los controles, en el cuadro de texto se establece también la propiedad android:inputtype, que indica qué tipo de contenido va a albergar el control, en este caso texto normal (valor text ), aunque podría haber sido una contraseña (textpassword), un teléfono (phone), una fecha (date),. Por último, en la etiqueta y el botón se ha establecido la propiedad android:text, que indica el texto que aparece en el control. Se tienen dos alternativas a la hora de hacer esto. En Android, el texto de un control se puede especificar directamente como valor de la propiedad android:text, o bien utilizar alguna de las cadenas de texto definidas en los recursos del proyecto (en el archivo strings.xml), en cuyo caso se indica como valor de la propiedad android:text su identificador precedido del prefijo @string/. Dicho de otra forma, la primera alternativa habría sido indicar directamente el texto como valor de la propiedad, por ejemplo en la etiqueta de esta forma: <TextView android:id="@+id/tvcurso" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="indique el codigo del curso: " /> Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 19

Y la segunda alternativa, la utilizada en el ejemplo, consistiría en definir primero una nueva cadena de texto en el archivo de recursos /res/values/strings.xml, por ejemplo con identificador curso y valor Indique el código del curso :. <?xml version="1.0" encoding="utf-8"?> <resources> <string name="curso">indique el codigo del curso : </string> </resources> Y posteriormente indicar el identificador de la cadena como valor de la propiedad android:text, siempre precedido del prefijo @string/, de la siguiente forma: <TextView android:id="@+id/tvcurso" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/curso" /> Esta segunda alternativa permite tener perfectamente localizadas y agrupadas todas las cadenas de texto utilizadas en la aplicación, lo que podría facilitar por ejemplo la traducción de la aplicación a otro idioma. A continuación se define la interfaz de la segunda pantalla, creando un nuevo archivo llamado activity_bienvenido.xml, y añadiendo esta vez tan solo una etiqueta (TextView) para mostrar el mensaje personalizado de bienvenida al usuario. Para añadir el archivo, se pulsa el botón derecho del ratón sobre la carpeta de recursos /res/layout y se pulsa la opción New Android XML file. En el cuadro de diálogo que aparece se indica como tipo de recurso Layout, se indica el nombre del archivo (con extensión.xml ) y como elemento raíz se seleccion LinearLayout. Finalmente se pulsa Finish para crear el archivo. Eclipse creará entonces el nuevo archivo y lo abrirá en el editor gráfico, aunque se accederá a la pestaña de código para modificar directamente el contenido XML del archivo. Para esta segunda pantalla el código del archivo es el siguiente : <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/tvbienvenido" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" /> </LinearLayout> Una vez definida la interfaz de las pantallas de la aplicación se debe implementar la lógica de la misma. Como ya se ha comentado, la lógica de la aplicación se definirá en archivos java independientes. Para la pantalla principal el archivo se llama PpalActivity.java. La documentación en el código indica los pasos seguidos en la implementación del ejemplo. package gala.curso; Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 20