175801790 Aplicaciones Moviles Bajo Android

23
Por: ing. Alexander García Dávalos. MsC. [email protected] Aplicaciones Móviles usando Android FACULTAD DE INGENIERIA ESPECIALIZACION EN TELEMATICA

Transcript of 175801790 Aplicaciones Moviles Bajo Android

Por: ing. Alexander García Dávalos. MsC. [email protected]

Aplicaciones Móviles usando Android

FACULTAD DE INGENIERIA

ESPECIALIZACION EN TELEMATICA

Agenda �  Android - Conceptos fundamentales

�  Android: APIs �  Herramientas de Desarrollo (SDK) de Aplicaciones

�  Desarrollo de Aplicaciones móviles para Android

¿Qué es Android?

�  Es una plataforma de software para dispositivos móviles (teléfonos, tabletas, netbooks) que incluye un sistema operativo, un middleware y un conjunto de aplicaciones (e-mail, calendario, mapas, browser, agenda de contactos, entre otros).

�  El SDK de Android proporciona las herramientas y APIs (3D, SQLite, Media

Libraries, entre otras) necesarias para el desarrollo de aplicaciones móviles usando Java.

�  Android se basa en el kernel 2.6 de Linux para los servicios básicos del SO, tales

como la seguridad, la gestión de memoria, la gestión de procesos y el soporte de los controladores o drivers.

Android - Características

�  Código abierto (open source)

�  Jerarquía de las aplicaciones: todas las aplicaciones están al mismo nivel, y pueden acceder al hardware del dispositivo móvil a través de las APIs de Android.

�  Acceso a la Web: Android combina información de la web (servicios web) con datos almacenados localmente en la memoria del dispositivo móvil.

�  Programación en Java: las aplicaciones para Android se codifican en lenguaje Java, el cual es una herramienta con una gran comunidad de programadores.

Android OS - Arquitectura

Android - APIs

�  Android incluye un conjunto de librerías o APIs desarrolladas en lenguaje C/C++ que son usadas por varios de los componentes de la plataforma.

�  Algunas de estas librerías son:

§  libc - la librería estándar del lenguaje C. §  SSL - seguridad en Internet. §  OpenGL - gráficos 2D y 3D. §  SQLite (bases de datos relacionales) §  FreeType - mapa de bits y vectores de la renderización de fuentes. §  Media Framework - reproducción de medios (video, sonido. §  WebKit - motor de renderización de contenidos web.

Desarrollo de Aplicaciones

�  Google provee un SDK para que los desarrolladores puedan construir las aplicaciones para Android.

�  Aparte de las APIs, el SDK incluye un componente (plug-in) para Eclipse, lo cual facilita las tareas de programación, entre ellas la depuración y la simulación de las aplicaciones construidas.

Herramientas de Desarrollo

�  plugin de Android para NetBeans: es posible adicionarle a NetBeans un plugin para el desarrollo de aplicaciones bajo este robusto entorno de desarrollo.

�  El plugin se denomina “NbAndroid” y fue desarrollado como un componente de

software por la comunidad de desarrolladores. Actualmente es mantenido bajo el denominado “Proyecto Kenai”, que es una iniciativa de la comunidad de desarrolladores Java.

Instalación de Plugin para NetBeans

1) Descargar e instalar el SDK de Android. http://developer.android.com/sdk/index.html

2) Instalar el plugin Nbandroid a través de la opción “Tools” (Herramientas) de NetBeans: tools à plugins à settings http://kenai.com/downloads/nbandroid/updatecenter/updates.xml 3) Adicionar (asociar) la plataforma Android a NetBeans Tools à Options à Miscellaneous

Más detalles en la página web: http://www.techjail.net/starting-programming-for-android-with-netbeans.html

Configuración de Plataforma Android

App Inventor

�  Herramienta de software desarrollada en MIT (http://beta.appinventor.mit.edu/learn), que permite la construcción de aplicaciones para plataforma Android y la cual es apoyada por Google (servidores web, almacenamiento de proyectos, visibilidad).

�  Propone una nueva forma de desarrollar las aplicaciones móviles basándose en

elementos gráficos, que permiten construir las aplicaciones en un estilo tipo “Lego”, es decir usando bloques prefabricados (componentes gráficos, lógica, control de la aplicación, etc).

�  La idea principal de esta propuesta es disminuir la curva de desarrollo y que público de diferentes niveles de educación (escuelas, colegios, universidades) puedan desarrollar aplicaciones móviles para la plataforma Android.

App Inventor - Estructura

Fuente: App Inventor http://beta.appinventor.mit.edu/learn/whatis/index.html

App Inventor – Configuración

�  Se puede usar en diferentes plataformas operativas (Windows, Linux, Mac) y browsers (Mozilla, IE, Safari y Chrome).

�  Requiere de conexión permanente a Internet, debido a que es una aplicación web que usa tecnología Java (Java Web Start) y almacena los proyectos (aplicaciones) en los servidores de Google.

Los detalles acerca de la configuración están publicados en la página web: http://beta.appinventor.mit.edu/learn/setup/index.html

App Inventor – Software

Requerimientos técnicos (software): �  Java 6 o superior. �  Instalación de software del Emulador de Android �  (http://beta.appinventor.mit.edu/learn/setup/setupwindows.html ) �  Instalación de drivers para teléfonos móviles (opcional).

Lenguaje de Programación

�  Las aplicaciones para Android se pueden desarrollar usando Java y se ejecutan en una máquina virtual denominada Dalvik, que fue creada especialmente por Google.

�  En Android todas las aplicaciones tienen las mismas condiciones, y tanto las

aplicaciones de terceros como las nativas, se construye usando las mismas APIs y son ejecutadas en el mismo entorno de ejecución (run time).

�  Por seguridad, cada aplicación se ejecuta en su propio “espacio”, aunque pueden

comunicarse con otras aplicaciones y acceder a datos almacenados en el dispositivo (p.ej. la agenda de contactos, el registro de llamadas, etc).

Android: Framework de Aplicaciones

�  Android esta dotado de un Framework de Aplicaciones, que provee a los desarrolladores las clases (p.ej. hacer llamadas, crear notificaciones la usuario, gestión de las ventanas, coordenadas de ubicación del teléfono, etc) necesarias para la construcción de las aplicaciones, el manejo de la interfaz gráfica (GUI) y los recursos de las aplicaciones.

�  Se tiene acceso a las mismas APIs que usan las aplicaciones nativas de Android, y otra característica interesante es que, se pueden “reusar” componentes gracias a que cualquier aplicación puede publicar sus capacidades para que otras aplicaciones las usen.

Componentes Básicos de Aplicaciones

�  En Android existen 6 componentes básicos, que se constituyen en los bloques para la construcción de las aplicaciones móviles:

1.Actividades: son la capa de presentación de las aplicaciones en Android. Cada pantalla (screen) de la interfaz gráfica de usuario se crea a partir de la clase “Activity”. Las actividades usan unos objetos especiales denominados “Views” (Vistas), que son los que permiten componer la interfaz gráfica para que los usuarios interactúen con la aplicación.

2. Servicios: son componentes que se ejecutan en segundo plano (background) sin la intervención del usuario y que son los encargados de tareas como la actualización de los datos y lanzar las notificaciones.

Componentes Básicos de Aplicaciones

3. Proveedores de contenido: son usados para gestionar y compartir las bases de datos de las aplicaciones. Son la opción apropiada para compartir datos entre aplicaciones, ya que éstas se ejecutan en “espacios” diferentes y mediante éstos se puede permitir el acceso a los datos de las aplicaciones usando un esquema de localización de objetos tipo URI (Universal Resource Indicator).

4. Intentos: son un mecanismo para el paso de mensajes, a través del cual se puede comunicar, en modo broadcast (difusión), mensajes a las Actividades o Servicios para que se realice una determinada acción.

Componentes Básicos de Aplicaciones

5. Receptor de Broadcast: al registrar un Receptor de broadcast, es posible que una aplicación determinada escuche los mensajes enviados a través de Intentos que coincidan con determinado criterio de filtrado. Esto es útil por ejemplo cuando se necesita que una aplicación escuche automáticamente Intentos que puedan ser los disparadores de eventos.

6. Notificaciones: permiten indicarle (notificarle) algo al usuario sin que se tenga que interrumpir sus “Actividades” actuales. Es una opción que se puede usar para “ganar” la atención del usuario, en lugar de los Receptores de broadcast.

Android: Run-time

�  Android posee un entorno de ejecución o Run time, que se compone de un conjunto de librerías (algunas librerías del núcleo de Java y de la máquina virtual Dalvik), que proveen funcionalidades básicas y la máquina virtual Dalvik, para la ejecución de las aplicaciones.

�  A cada aplicación que se lanza a ejecución, se le crea su propio proceso en una

instancia propia de la máquina virtual Dalvik. �  El código Java (clases) se transforma para su ejecución en archivos con la

extensión ”.dex”, que son ejecutados (bytecode) por la máquina virtual Dalvik.

Ejemplo: Hola mundo! package com.example.helloandroid;

import android.app.Activity;

import android.os.Bundle;

import android.widget.TextView;

public class HelloAndroid extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

TextView tv = new TextView(this);

tv.setText("Hello, Android");

setContentView(tv);

}

}

Ejemplo: Hola mundo!

Referencias [1] Reto Meier. “Professional Android™ Application Development”. Wiley Publishing, Inc. ISBN: 978-0-470-34471-2. USA, 2009.

[2] Android Developers Disponible en http://android-developers.blogspot.com

[3] Ed Burnette. “Hello Android: Introducing Google’s Mobile Development Platform”, Pragmatic Bookshelf, ISBN-10: 1-934356-17-4, 2008.

[4] NBAndroid

http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=19545

[5] NetBeans Plug-in for Android

http://jwebsocket.org/mobile/android/android_nb.htm

[6] Ejemplo: “Hello word”

http://developer.android.com/resources/tutorials/hello-world.html [7] App Inventor

http://beta.appinventor.mit.edu/learn/