píldora 1: android intro

22
Android – Introducción CatDroid – Oct. 2010 (por Roberto C. Serrano)

Upload: hojalataverde

Post on 15-Dec-2014

8.082 views

Category:

Documents


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Píldora 1: Android intro

Android – Introducción

CatDroid – Oct. 2010(por Roberto C. Serrano)

Page 2: Píldora 1: Android intro

Acerca de mi

• Roberto C. Serrano• Ex-ingeniero de Software en Motorola (Android

Platform Team)• Desarrollador de Android• Responsible desarrollo dispoitivos móviles para

Addapta Technological Services• Co-fundador de la comunida CatDroid• Info de Contacto:

[email protected] o twitter.com/hojalataverde

Page 3: Píldora 1: Android intro

En esta mini-presentación

Introducción: Introducción al sistema operativo Android

y sus peculiaridades Introducción a un Android Activity y los

Componentes de una Applicación

Page 4: Píldora 1: Android intro

Introducción al sistema operativo Android y sus

peculiaridades

Page 5: Píldora 1: Android intro

Demo del shell de Android

Android es casi un Linux (pero con muchas peculiaridades)

http://code.google.com/p/android-vnc/ Get fbvncserver binary Load it into the phone/emulator: adb push fbvncserver /data/local  adb shell chmod 777 /data/local/fbvncserver adb forward tcp:5901 tcp:5901 Run the vnc server: adb shell /data/local/fbvncserver

Page 6: Píldora 1: Android intro

Openness y Android• “Android es la primera plataforma extensiva para

electrónica movil.…”• Componentes:

– Una referencia de diseño de de hrdw que describe los requisitos mínimos para dar soporte a la plataforma.

– Linux Kernel – Librerias Open Source a– Run time environment (Dalvik)– Framework para aplicaciones– Un framework para interface de usuario – Un paqueta de aplicaciones preinstaladas (un telefono

inteligente 100% funcional)– Un kit de desarrollo (Tools, plug-ins, and documentation)

Page 7: Píldora 1: Android intro

Android Applications

• Sin Licencia en la plataforma (http://android.git.kernel.org/)– SMS management app.– PIM (Google calendar, etc)– WebKit based browser– Cliente de Mail POP3– Instant Messaging Client (GChat)– Music Player and Picture viewer

• Con Licencia:– Android Market Place – App. Google Maps y navegación– Cliente eMail(GMail)

• Etc.

Page 8: Píldora 1: Android intro

Carácter. del Android SDK y Plataforma

• Open platform (no fees, no licensing)• Wi-fi hrdw. acess• Full comm. stack (GSM, EDGE, 3G, Bluetooth)• GPS• Multimedia (playback and recording of audio, video, etc)• APIs to accel. And compass hrdwr.• IPC messaging• Share Data stores• Web-Kit browser• Eventually hwrd. accel. 3D graphics (Open GL ES)• Media Libraries (Licensed for MP3, etc…)• And open Application Framework (reuse and replacement)

Page 9: Píldora 1: Android intro

Funcionalidad disponible• Sistema Agnóstico al Hardware (via el Kernel)• Background services• SQLite DB• Comunicación entre applicaciones • Incluye Soporte multimedia • Sistema de optimización de Mem. y gestión de Procesos• Busqueda rápida desde 1.6• Sintetizador de voz desde 1.6• Gestión Transparente o intencionada de de múltiples resoluciones desde 1.6• API de Blutooth desde 2.0• Gestión centralizada de contactos desde 2.0• Live WallPapers desde 2.0• Reconocimiento de voz desde 2.1• navegación desde 2.1• Mensajes de la Nube al teléfono (Push) desde 2.2• Apps instalables en memoria externa (SD) desde 2.2

Page 10: Píldora 1: Android intro

El pastel de Android

HA

LC

OR

E A

ND

RO

ID +

LIB

RA

RIE

S

HAL

Multimedia / Graphics

TCMD

MBM / Boot loader

CONNECTIVITYUSB

BLUETOOTHWi-Fi

CONNECTIVITYMODEM + RIL

KER

NEL+

BS

P

GPS

Page 11: Píldora 1: Android intro

Q&A

Page 12: Píldora 1: Android intro

La Activity en Android

Page 13: Píldora 1: Android intro

Activities y Tasks

• Definición de Dan Morrill’s:  – Una Actividad es como una molécula, un

trozo cuantificable de funcionalidad.– Una tarea es una collección de actividades

(parte una o multiples aplicaciones)– Un proceso en Android es un “proceso”

estandard de Linux

Page 14: Píldora 1: Android intro

Activities y Tasks (cont.)

Por defecto cada aplicación de Android vive en su mundo:Cada Applicación se ejecuta en su propio proceso por defectoCada proceso se ejecuta dentro de su propia máquina virtualCada aplicación recive su Linux User ID

Page 15: Píldora 1: Android intro

Activities (continue)

Page 16: Píldora 1: Android intro

Activities (continue)

Page 17: Píldora 1: Android intro

Actividad frente a Tarea (apps)

• Una clase concreta en el API

• Encapsula una operación particular

• Se ejecuta en el Proceso del .APK que las instaló

• Opcionalmente asociadas con su ventana (UI)

• Es el contexto de ejecución del APK

• Es más una noción que una parte del API

• Collección de Actividades relaccionas

• Capaz de extenderse a múltiples APKs y procesos

• Asociado con su propio “history stack”

• Son lo que los usuarios de otras plataformas entiende como “aplicaciones”

Page 18: Píldora 1: Android intro

Process(a) esto...

• En que se parece un Android y un Linux?– Android process == Linux process (con su

unico UID)– Por defecto, 1 proceso por APK– Por defecto, 1 hilo (thread) por proceso– La mayoría de los componente conectan

eventos via el hilo principal.

Page 19: Píldora 1: Android intro

Componentes de una App. en Android

Content Providers: Una abstracción provista para representar cualquier información (data) almacenada en el aparato y a la que necesitan acceso múltiples aplicaciones.

Services: Unidad de ejecución provista para que sobreviva más allá de una actividad. Pueden ser ejecutados como parte o independientemente de una actividad.

Intents: Mortero que una el resto de los componentes. Mensajes de sistema que transmiten eventos representado cambios de estado en el hardware, acciones, etc.

Broadcast Receivers: Los consumidores de los Intents. Registrando tu app. como un broadcast reciever le estas dando a la aplicación la habilidad de consumir Intents que coinciden con un criterio de filtrado específico.

Notifications: El framework de notificación a usuarios permite que un Servicio o aplicación comunique con el usuario sin interrumpir su flujo de trabajo.

Page 20: Píldora 1: Android intro

Otros Componentes Elementos Gráficos: Menus, Dialogs, ListViewss, Buttons, Widgets, etc. Persistent Storage: Sistema de almacenamiento simplificado útil para

persistir información de una sesión a otra (usado principalmente para almacenar preferencias).

Async Tasks: Además de el método tradicional de java para crear hilos, Android provee de esta clase útil para envolver tareas pesadas para que no interfieran con la experiencia del usuario.

WebViewClient: Estructura disponible para que una aplicación pueda mostrar contenido Web (basado en WebKit).

PreferenceActivity: Permite la creación de Actividades de Ajustes (settings) y persistencia de los datos de manera simplificada.

HTTPClient: Estructura provista para la adquisición de datos desde un servidor web (útil para extrar objetos json o xml).

MapView Activity: Estructura que permite hacer uso de la infraestructura de Google Maps desde una aplicación.

etc..

Page 21: Píldora 1: Android intro

Otros elementos a tu disposición (lista no exhaustiva)

Storage: Puedes empaqueta ficheros de datos, para elementos estáticos, como iconos, cadenas de texto, arrays, etc. Se puede obtener espacio en la base de datos (SQLite) y en la memoria principal, o si el usuario provee de tarjeta SD, también se puede usar para almacenar todo ello para almacenar elementos generados de manera dinámica (o descargados de internet).

Network: Desde Java Sockets (via NIO) a pantallas que contengan un navegador, Android provee de un montón de mecanismos para aprovechar la accesibilidad a Internet.

Multimedia: Desde la lógica de una aplicación se puede incluir la reproducción y grabación de Audio y vídeo así como la de captura de imágenes (fotos).

GPS: Aparatos estandarizados de Android tienen la habilidad de reportar la ubicación (con diferentes niveles de granularidad). Además usando google maps, se pueden mostrar mapas, etc.

Phone Services: Una aplicación de android puede hacer uso de los servicios de telefonía, permitiendo el iniciar llamadas, enviar SMS, etc.

Page 22: Píldora 1: Android intro

Q&A