componentes necesarios de android docx

21
Componentes para programar en android

Upload: grachika

Post on 13-Jun-2015

167 views

Category:

Education


3 download

TRANSCRIPT

Page 1: Componentes necesarios de android  docx

Componentes para programar en android

Page 2: Componentes necesarios de android  docx

Android SDK incluye una completa variedad de herramientas a medida que le ayudarán en el desarrollo de aplicaciones móviles para la plataforma Android. Entre las más importantes encontramos el Emulador de Android y el plugin que se integra con Eclipse, AndroidDevelopment Tools, pero el SDK también incluye una variedad de herramientas para debugging, packaging, y instalar sus aplicaciones en el emulador. A pesar de existir un plugin para Eclipse se puede continuar desarrollando con su editor favorito, ya que a través de línea de comando también se podrá crear, construir y hacer debug de cualquier proyecto Android. Necesitaremos un framework en nuestro caso vamos a utiizar el eclipse  Galileo con Windows de 32 bits.

Componentes de una aplicaciónExisten una serie de elementos clave que resultan imprescindibles para desarrollar aplicaciones en Android. En este apartado vamos a realizar una descripción inicial de algunos de los más importantes. A lo largo del libro se describirán con más detalle las clases Java que implementan cada uno de estos componentes.

 Vista (View)

Las vistas son los elementos que componen la interfaz de usuario de una aplicación. Son por ejemplo, un botón, una entrada de texto,… Todas las vistas van a ser objetos descendientes de la clase View, y por tanto, pueden ser definidos utilizando código Java. Sin embargo, lo habitual va a ser definir las vistas utilizando un fichero XML y dejar que el sistema cree los objetos por nosotros a partir de este fichero.

Layout

Un Layout es un conjunto de vistas agrupadas de una determinada forma. Vamos a disponer de diferentes tipos de Layouts para organizar las vistas de forma lineal, en cuadrícula o indicando la posición absoluta de cada vista. Los Layouts también son objetos descendientes de la clase View.

Una aplicación en Android va a estar formada por un conjunto de elementos básicos de visualización, coloquialmente conocidos como pantallas de la

Componentes para programar en android

Page 3: Componentes necesarios de android  docx

aplicación. En Android cada uno de estos elementos, o pantallas, se conoce como actividad.

Servicio (Service)

Un servicio es un proceso que se ejecuta “detrás”, sin la necesidad de una interacción con el usuario. Es algo parecido a un demonio en Unix o a un servicio en Windows. En Android disponemos de dos tipos de servicios: servicios locales, que pueden ser utilizados por aplicaciones del mismo terminal y servicios remotos, que pueden ser utilizados desde otros terminales.

 Intención (Intent)

Una intención representa la voluntad de realizar alguna acción; como realizar una llamada de teléfono, visualizar una página web.

Los componentes lanzados pueden ser internos o externos a nuestra aplicación. También utilizaremos las intenciones para el intercambio de información entre estos componentes.

En muchas ocasiones una intención no será inicializada por la aplicación, si no por el sistema, por ejemplo, cuando pedimos visualizar una página web. En otras ocasiones será necesario que la aplicación inicialice su propia intención. Para ello se creará un objeto de la clase Intent.

Receptor de anuncios (Broadcast receiver)

Un receptor de anuncios recibe y reacciona ante anuncios de tipo broadcast. Existen muchos originados por el sistema; como por ejemplo Batería baja, llamada entrante,... Aunque, las aplicaciones también puede lanzar un anuncio broadcast. No tienen interfaz de usuario, aunque pueden iniciar una actividad para atender a un anuncio.

Proveedores de Contenido (ContentProvider)

La compartición de información entre teléfonos móviles resulta un tema vital. Android define un mecanismo estándar para que las aplicaciones puedan compartir datos sin necesidad de comprometer la seguridad del sistema de ficheros. Con este mecanismo podremos acceder a datos de otras aplicaciones, como la lista de contactos, o proporcionar datos a otras aplicaciones. Los Content Provider son estudiados en el 0.

Actualmente la versión de  Eclipse es la June y parece que el plugin ADT está dando algunos problemas, ya que tenemos que tener actualizado el SDK y este plugin a la vez y si la instalación ha sido correcta pero no te aperece las opciones de ADT (AndroidDevelopment Tools) prueba con esto dentro del Eclipse pinchando en Windows–>CustomizePerspective, en la pantalla que sale pinchar en la pestaña –>CommandGroupsAvailability y marcar la casilla Android SDK and AVD Manager, de todos modos si no es tu caso, ahora tenemos una fórmula más

Page 4: Componentes necesarios de android  docx

sencilla y es descargar un eclipse con todo esto ya instalado y listo para funcionar si vamos a esta dirección que te lleva a “Getthe SDK” y descargas el ADT (Botón azul que dice: “Downloadthe SDK”).

Y este será el aspecto que tendra nuestro Eclipse ya solo tenenos que actualizar el sdk, bien con el ejecutable que esta en la carpeta descomprimida o desde nuestro eclipse.

Page 5: Componentes necesarios de android  docx

Si queremos hacerlo con otro elcipse por los motivos que sean esta es la otra forma;

Descarga e instalación de Eclipse

1. Visita la web de descargas de Eclipse, y descárgate la última versión..

Descomprime el archivo en el lugar donde quieras instalarlo yo siempre recomiendo directamente en el raíz . Te creará un directorio eclipse.

Page 6: Componentes necesarios de android  docx

Entra en el directorio eclipse y ejecuta eclipse.exe para lanzar la aplicación. La primera vez que arranques, te pedirá que le indiques un directorio donde colocar tu espacio de trabajo (workspace). Selecciona la ruta que quieras, que es donde se guardarán tus proyectos. Marca la opción “Use this as the default…” para que no te vuelva a preguntar más y pulsa OK.

Instalación SDK ( Pre-Requisitos)

SO soportados * Windows XP (32-bit) o Vista (32- or 64-bit) * Mac OS X 10.4.8 o posterior (x86 only) * Linux (probado en Linux Ubuntu Hardy Heron) o 64-bit distros capaces de ejecutar aplicaciones de 32 bit. Soporte para entornos de desarrollo Eclipse IDE: * Eclipse 3.4 (Ganymede) or 3.5 (Galileo) * JDK 5 o JDK 6 (JRE no es suficiente) *AndroidDevelopment Tools plugin (opcional) * Otros entornos de desarrollo o IDEs * JDK 5 o JDK 6 (JRE no es suficiente) * Apache Ant 1.6.5 o posterior para Linux y Mac, 1.7 o superior para Windows * Not compatible withGnuCompilerfor Java (gcj) Requisitos de Hardware *Para el paquete base de SDK, mínimo 600MB de espacio, para cada plataforma instalada en el SDK son unos 100 MB necesarios.

Descarga e instalación de las AndroidDevelopment Tools (ADT)

Descargar el paquete con el SDK apropiado a su sistema. Descargar SDK Android

Page 7: Componentes necesarios de android  docx

Descomprimimos el fichero en una localización adecuada, más adelante se va a necesitar el nombre y la ruta hasta el directorio si queremos configurar el plugin ADT de Eclipse. Para poder ejecutar nuestros desarrollos dentro del SDK debemos instalar alguna de las versiones de Android disponibles. Para lanzar el SDK y gestor de emuladores android AVD Manager existen varias métodos:

·A través del comando <SDK>/tools/.

·Si estamos en Eclipse + ADT seleccionamos Window>Android SDK and AVD Manager.

1. Dentro de Eclipse, selecciona Install New Software, en el menú Help. Aparecerá una nueva ventana.

2. Haz click en  ADD en la pantalla Available Software en la parte superior derecha.

3. En la ventana que aparece, introduce alguna de esta dirección : https://dl-ssl.google.com/android/eclipse/

Si usas Eclipse June utiliza esta:  http://dl.google.com/eclipse/plugin/4.2  

Page 8: Componentes necesarios de android  docx

1. Nos pedirá reiniciar

1. Una vez reiniciado, debemos configurar Eclipse para que acceda al SDK de Android ya instalado. Abre el menú Window y selecciona Preferences. En el apartado Android, en SDK Location debemos introducir la ruta donde hemos descomprimido el SDK de Android

Page 9: Componentes necesarios de android  docx

En windows>>Android SDK and AVD Manager podemos descargar actualizaciones, documentación y ejemplos

Page 10: Componentes necesarios de android  docx

Ejecutar una aplicación Android de prueba

Ahora que ya tenemos el entorno de desarrollo listo, vamos a crear un proyecto Android para ver que todo funciona correctamente. Lo primero que tendremos que hacer es crear un dispositivo virtual Android o AVD (Android Virtual Device) en el que probar las aplicaciones que desarrollemos.

1. Abrimos el menú Windows y seleccionamos Android AVD Manager.2. Introducimos el nombre que le queremos dar al dispositivo virtual,

seleccionamos la versión de Android que usará (en este caso la 2.1) e introducimos el tamaño de la tarjeta de memoria SD que tendrá (128M nos servirá).En la pestaña Hardware podremos añadir opciones para el

funcionamineto del mismo Clicamos en Create AVD y después en Finish.

Page 11: Componentes necesarios de android  docx

Ya tenemos el entorno instalado y 100% operativo.

Herramientas del SDK

El SDK de Android incluye una serie de herramientas especificas para el desarrollo de aplicaciones móviles en la plataforma Android, siendo las más importantes el AndroidEmulator y el ADT de Eclipse.

AndroidDevelopment Tools Plugin : añade extensiones potentes que permiten crear y hacer debug en nuestras aplicaciones rápidamente y con facilidad.

AndroidEmulator: emulador basado en QEMU que permite diseñar, crear y probar nuestras aplicaciones sin usar un dispositivo físico.

Android Virtual Devices (AVDs): son configuraciones especificas del emulador que te permiten modelar mejor el dispositivo actual. Se pueden configurar perfiles de hardware, la plataforma elegida, el tamaño de la memoria SD y otras opciones.

HierarchyViewer: permite probar y optimizar la interface de usuario. Proporciona una representación visual de las clases del layout y un editor ampliado de la visualización.

Layoutopt: herramienta de línea de comando que carga los ficheros XML especificados y analiza las estructuras y herencias del layout según una serie de reglas predefinidas.

Page 12: Componentes necesarios de android  docx

DalvikDebug Monitor – DDM: permite administrar los procesos que corren en una instancia de emulador/dispositivo demás de asistir en la depuración de ellos.

AndroidDebug Bridge – ADB: nos permite instalar aplicaciones (.pak) en una instancia del emulador y acceder a una instancia de emulador usando la línea de comandos.

AndroidAssetPackaging – AAPT: La herramienta “aapt” permite crear archivos “.apk”, los cuales contienen las imágenes binarias de tu código y recursos de tus aplicaciones.

Android Interface DescriptionLanguage – AIDL: lenguaje IDL usado para generar código que permite a dos procesos en un dispositivo funcionando con Android hablar utilizando comunicación interproceso.

SQLite3: Esta herramienta ha sido incluida para comodidad de los desarrolladores. Provee acceso a los archivos de datos “SQLite” creados y usados por las aplicaciones Android.

Traceview: Esta herramienta produce una vista gráfica del análisis de información contenida en bitácoras que puede ser generada desde una aplicación Android.

mksdcard: ayuda a crear una imagen de disco que se puede usar con el emulador, para simular la presencia de una tarjeta de almacenamiento externa (tal como una tarjeta “SD”).

dx: convierte los archivos de “bytecode” estándar (“.class”) en archivos “Androidbytecode” (“.dex”).

Activitycreator : es un “script” que genera archivos “antbuild” que se puede utilizar para compilar aplicaciones Android.

Arquitectura de una Aplicación

Existen 4 tipos de bloques de construcción de cualquier aplicación Android: Componente de interface de usuario que corresponde normalmente a una pantalla. BroadcastReceiver Usados para ejecutar código en reacción a unevento externo. S ervices Es código que se ejecuta en segundo plano (in background). Content Provider Este componente es usado para compartir datos entre diferentes aplicaciones (Persistencia). No necesariamente necesitaremos cada uno de ellos en nuestra aplicación, pero si una combinación de algunos.

Page 13: Componentes necesarios de android  docx

Activity Es el componente mas genérico y más común de la plataforma. Para hacer uso de ella, necesitamos que nuestra clase herede de la superclase Activity. La principal función es la de mostrar elementos de UI que se implementan en una View, descritos en archivos XML, y que pueden reaccionar a los eventos del usuario.

Para pasar de un elemento Activity a otro se utiliza generalmente mediante el método startActivity() o el método startActivityForResult() cuando se necesita una llamada síncrona. La navegación entre pantallas se lleva a cabo mediante una clase especial llamada Intent. La estructura típica de un Intent es: la acción que desea realizar (la intención) y los datos sobre los que actúa.

Intent A un Intent podemos asociarle una acción, unos datos y una categoría. Las actividades pueden declarar el tipo de acciones que pueden llevar a cabo y los tipos de datos que pueden gestionar. Las acciones son cadenas de texto estándar que describen lo que que la actividad puede hacer. Esta acción viene predefinida en la clase Intent, pero es posible definir nuevas acciones para nuestras actividades. La misma actividad puede declarar que el tipo de datos del que se ocupa es, por ejemplo, “vnd.android.cursor.dir/person”. También puede declarar una categoría, que básicamente indica si la actividad va a ser lanzada desde el lanzador de aplicaciones, desde el menú de otra aplicación o directamente desde otra actividad.

 

ServiceComunmente conocido, como tal, un servicio es código que se ejecuta en segundo plano (in background) y no necesita de una interface de usuario en su ciclo de vida. Si el ciclo de vida de una aplicación es prolongado, debe de incluirse en un Service. Conviene informarse de las prioridades que gestiona el sistema en cuanto al tiempo de vida de los componentes y la influencia del servicio en esta jerarquía de prioridades. Los servicios se inician con el método startService(Intent) de la clase abstracta Context. De nuevo se utiliza Intent para inciar un resultado desado en la plataforma.

BroadcastReceiver Si una apliación desea recibir y repsonder a un evento global como por ejemplo una llamada de teléfono o un mensaje de texto entrante, debe registrarse como BroadcastReceiver. Existen dos técnicas: 1. La aplicación puede implementar un elemento <receiver> en el archivo AndroidManifest.xml. Si el receptor se registra en dicho archivo, no es necesario ejecutarlo para desencadenarlo. El propio SO de Android se encarga de estas tareas de mantenimiento. 2. Una aplicación se puede registrar en tiempo de ejecución a través del método registerReceiver de la clase Context. Al igual que Service, no dispone de UI. El código que se ejecuta en el método inRecevie no debe asumir operaciones de persistencia o prolongadas.

ContentProvider Si una aplicación gestiona datos y debe mostrarlos a otras aplicaciones ejecutadas en el entorno de Android, es necesario implementar ContentProvider.

Page 14: Componentes necesarios de android  docx

Implementa un conjunto estándar de métodos para que la aplicación pueda acceder a un almacén de datos, ya sea en operaciones de lectura o escritura. ContentProvider puede proporcionar datos a una actividad o a unservicio incluidos en la misma aplicación o en otra diferente. Se puede considerar como una capa de datos que proporciona abstracción para sus clientes y centraliza las rutinas de almacenamiento y recuperación. Suele ser componente de aplicaciones Android de mayor tamaño que alojan al menos un elemento Activity, Service y/o BroadcastReceiver.

HelloAndroid

Haremos el tipico programa de Hello para comprbar que todo el proceso de instalación ha sido correcto Creamos un nuevo proyecto Android: File>New>Android Project. Introducimos los siguientes datos para el proyecto:

Project Name: HelloAndroid Applicationname: Hello, Android Packagename: com.example.helloAndroid Createactivity: helloAndroid min SDK version: 7

También podremos crear un Test de

Page 16: Componentes necesarios de android  docx

Una vez creado del proyecto vamos a ver la  estructura de un proyecto Android

1. Assets: En este directorio se pone cualquier tipo de fichero externo que sea necesario por la aplicación que se esté ejecutando. Por ejemplo: HTML para el navegador sin necesidad de conexión, tipografías, jars de terceros. Es un repositorio de archivos.

2. Bin: Los binarios compilados de la aplicación.

3. Res: Los recursos, formada por 3 direcotorios: – Drawable: ficheros de imágenes. – Layout: Ficheros de diseño de las interfaz de usuario. Ficheros xml que describen las interfaces. – Values: definición de variables. Ficheros xml en cada uno de ellos constantes, se agrupa por temática, es decir: definición de colores,definición de texto…

4. Gen: Se almacenan los archivos auto-generados por el compilador de Android. Contiene el archivo “R.java”, que es un índice a todos los recursos definidos en el proyecto.

5. Src: Aquí va todo el código Java de la aplicación.

6. .project, .classpath: ficheros necesarios para abrir el proyecto con Eclipse.

Page 17: Componentes necesarios de android  docx

7. AndroidManifest.xml: es un archivo requerido para cada aplicación. Describe los valores globales de su paquete, incluida la aplicación, componentes (actividades, servicios, etc), las clases para cada uno de los componentes, qué tipo de datos puede manejar cada uno, y donde puede ser lanzado.

Applicationandroid:icon=”drawableresource” ? Se define el icono de la aplicación. Se mostrará cuando la instalación esté instalada en el dispositivo. android:name=”string” ? A través de este atributo se declara el nombre de la aplicación, aparecerá debajo del icono al instalar. android:theme=”resourceortheme” ? Podemos crear un tema general y usar en toda la aplicación. activity, service, provider… Cada Activity, Service o Content Provider que creamos en nuestra aplicación debe de estar aquí. En caso contrario, la aplicación no los va a reconocer.

Permissions Dentro de la etiqueta <manifest> podemos añadir el nodo <users-permission>. Se utiliza para definir las partes a las que la aplicación necesita acceder y los permisos de los usuarios. -Recibir SMS -Capturar imágenes desde la cámara -hacer llamadas -Acceder a internet… Cuando se instalan aplicaciones desde el AndroidMarket, algunas tienen un listado de permisos, donde el usuario debe permitirlos o aceptarlos si se quiere instalar la aplicación en el dispositivo.

Version La etiqueta <uses-sdk>, se define con que versión del SDK la aplicación fue creada, con lo que se puede definir una compatibilidad hacia versiones anteriores. En nuestro ejemplo de HelloAndroid deberemos modificar nuestra clase helloAndroid