You are on page 1of 28

Desarrollo de Aplicaciones Mviles Android

Pontificia Universidad Javeriana MIT LOGyCA-CLI

Agenda
Plataformas de desarrollo en dispositivos mviles. Historia Caractersticas Arquitectura Fundamentos de las Aplicaciones Herramientas de desarrollo Referencias

Plataformas de desarrollo en dispositivos mviles


Symbian Foundation
Symbian OS

Apple
iPhone OS 4.2

Research in Motion (RIM)


Blackberry OS 6

Microsoft
Windows Phone 7 Series

Palm -HP
WebOS 2

Open Handset Alliance


Android 2.3

Plataformas de desarrollo en dispositivos mviles [12]

Plataformas de desarrollo en dispositivos mviles

Plataformas de desarrollo en dispositivos mviles

Historia
Google Inc. [1]
Ingresos 23.651 millones USD (2010) Rank: 102 (annual ranking of America's largest corporations )

Google Inc.: Wireless Strategy [2]


2005-Julio: Google compra Android Inc.

Open Handset Alliance [3]


2007-Noviembre 2011-Enero: 79 corporaciones
Mobile Operators(13): Vodafone, China Telecommunications Corporation y Spring Nextel entre otras. Handset Manufacturers(20): Acer, Dell, Lenovo, LG, Samsung, Motorola y Sony Ericcson entre otras. Semiconductor Companies (20): Intel, BroadCom, Atheros, NVIDIA y Texas Instruments entre otras. Software Companies (16): Google y Ebay entre otras. Commercialization Companies(10): Wipro y Teleca entre otras.

Historia
2008-Octubre: Android Open Source 2010-Diciembre: Android Platform 2.3, API Level 9 [7] 2011-Enero: Android Platform 3 Preview. [4][5][6][8] Dispositivos Android
2008-S2: Primer dispositivo android. HTC Dream Android Dev Phone 2010-Diciembre: Primer dispositivo android 2.3 Samsung Nexus S.

Historia
2008-Octubre : Android Market.
[9] 2010: 5.2 Billones de descargas [10]2011-Ene: Apple 10 B de descargas 2010-Jun: Android Market 1B de descargas

Apple AppStore versus Android Market


2010-Ene AppStore: +150K Aplicaciones 2010-Oct AppStore: +300K Aplicaciones 2010-Ene Android Market: +20K Aplicaciones 2010-Oct Android Market: + 100K Aplicaciones

Caractersticas [14]
Framework de aplicacin que permite la reutilizacin y reemplazo de componentes. Mquina virtual Dalvik optimizada para mviles.
Oracle (Java) demanda a Google (Android).
SUN (Comprado por Oracle) libero el lenguaje bajo licencia GPL (GNU Public License). Excepciones JME. Dalvik es un open souce project.

Navegador integrado basado en el motor open source WebKit.


Open source project. Motor usado en Safari, Google Chrome entre otros.

Grficos optimizados por una librera grfica 2D propia; grficos 3D basados en la especificacin OpenGL ES 1.0.
Open Standards

SQLite para almacenamiento de datos estructurados


SQL Consortium: Bloomberg, Symbian, Oracle, Mozilla, Adobe, entre otros. El cdigo es public domain

Caractersticas [14]
Soporte para gran variedad de formatos multimedia (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF). Telefona GSM (Global System for Mobile Communications):
Usada en Colombia.

Bluetooth, EDGE, 3G y WiFi (4G, WiMAX,) Cmara, GPS, comps, acelermetro, Entorno de desarrollo completo incluyendo emuladores, herramientas de depuracin y plugin para el IDE Eclipse entre otros.

Caractersticas [14]
Versiones:
Versin 2.3 de Dic-2010. Versin 2.2 de Jul-2010.

Arquitectura
Kernel linux 2.6 Runtime basado en VM Dalvik Conjunto de libreras C/C++ Framework comn a todas las aplicaciones basada en servicios Aplicaciones base implementadas en Java (todas reemplazables)

Fundamentos de las Aplicaciones


Las aplicaciones se escriben en el lenguaje de programacin Java . La herramienta del A-SDK apkbuilder permite crear crear el android package (.apk).
Archivo de instalacin y distribucin de las aplicaciones android. Para instalar una aplicacin (. apk) fcilmente:
En el dispositivo android:
En configuracin, Aplicaciones habilitar Fuentes desconocidas. En el android market instalar la aplicacin gratuita ApkInstaller Conectar el dispositivo mvil por USB al PC y habilitar la interaccin de FS (File System). Copiar el apk en el FS del dispositivo. Ejecutar ApkInstaller e instalar la aplicacin android.

Caractersticas de una aplicacin android


Cada aplicacin es independiente y se ejecuta en su propio proceso de Linux. Cada proceso tiene su propia mquina virtual de Java Por defecto a cada aplicacin se le asigna un nico Linux user id.
Indica los permisos de acceso de los archivos al usuario y a la aplicacin. Puede exportarse para permitir compartir acceso a archivos desde otras aplicaciones y/o usuarios.

Fundamentos de las Aplicaciones


Una caracterstica importante de Android es que una aplicacin pueda usar elementos de otras aplicaciones. Componentes de una aplicacin:
Actividades Servicios Broadcast receivers Content providers

Fundamentos de las Aplicaciones


Actividad
Es una interfaz visual de usuario enfocada en algo que el usuario puede realizar
Presentar un listado con un conjunto de opciones.

Una aplicacin puede estar formada por un conjunto de actividades independientes que trabajan juntas.
Una de las actividades se marca como la inicial al arrancar una aplicacin

Fundamentos de las Aplicaciones


Servicio
No tiene interfaz visual de usuario Se ejecuta en background por periodo indefinido de tiempo.
Reproductor de msica

Es posible acceder desde otros componentes o aplicaciones

Fundamentos de las Aplicaciones


Broadcast receivers
No realiza ningn accin por si mismo Recibe y reacciona ante anuncios de tipo broadcast Existen muchos originados por el sistema
Batera baja , usuario cambio la preferencia de idioma.

Las aplicaciones puede lanzar un broadcast No tienen UI, aunque pueden iniciar una actividad para atender al anuncio

Fundamentos de las Aplicaciones


Content providers
Expone un conjunto especifico de datos a otras aplicaciones
Los datos pueden estar almacenados en cualquier lugar: FS, SQLite database, entre otros lugares.

Hace uso de un objeto ContentResolver para acceder a los datos expuestos por un objeto Content Provider

Fundamentos de las Aplicaciones


Activacin de los componentes : intents
Content providers: Al recibir una peticin desde un ContentResolver Actividades, Servicios y Broadcast Receivers:
Al recibir un mensaje asncrono llamado Intencin
Es un objeto de tipo Intent que mantiene el contenido del mensaje.

En actividades y servicios
Representa la intencin de querer realizar algo La intencin de seleccionar un contacto como remitente.

En broadcast receivers
Representa el anuncio del comienzo de una accin Anunciar que se ha pulsado el botn de la cmara

Fundamentos de las Aplicaciones


El archivo de manifiesto
Componente incluido en el .apk Estructura XML nombrado AndroidManifest.xml Informa de todos los componentes de la aplicacin
Actividades Servicios, etc.

Fundamentos de las Aplicaciones


Filtros de intencin
Un objeto de tipo Intent puede explicitamente nombrar un componente destino. Android puede de forma implicita revisar el manifiesto para indicar el componente adecuado para responder a la intencin. (intent filters).

Herramientas de desarrollo
Android SDK [14][15]
Tiene principalmente:
Herramientas, ejemplos y documentos
Tools Overview: http://developer.android.com/guide/developing/tools/index. html Instrucciones de instalacin: http://developer.android.com/sdk/installing.html

Herramientas de desarrollo
Instrucciones
1. Verificacin de requerimientos de HW y SW: JDK, Eclipse. 2. Android SDK 3. Instalar el plugin ADT (Android Development Toolki) para eclipse. 4. Adicionar plataformas y otros componentes

Herramientas de desarrollo
Android Development Tools (ADT 9.0.0 Ene2011)
ADT es un plug-in para Eclipse Instrucciones
http://developer.android.com/sdk/eclipse-adt.html Instrucciones:
1. Verificacin de requemientos: ECLIPSE 2. Desde eclipse instalar el ADT 3. Configurar

Herramientas de Desarrollo
Android NDK (5b, Ene 2011)
Conjunto de herramientas que permiten incluir componentes que usen cdigo nativo (C / C++) en aplicaciones android. Intalacin : http://developer.android.com/sdk/ndk/index.html Instrucciones
1. Verificacin de requerimientos: Android SDK 2. Bajar el archivo bajo el S.O. que corresponde 3. Descomprima.

Referencias
[1] Google Inc. , pgina consultada el 31/01/2011 http://money.cnn.com/magazines/fortune/fortune500/2010/snapshots/1120 7.html [2] Android Inc. , pgina consultada el 31/01/2011 http://www.businessweek.com/technology/content/aug2005/tc20050817_0 949_tc024.htm [3] Open Handset Alliance, pgina consultada el 31/01/2011 http://www.openhandsetalliance.com/ [4] HTC primer dispositivo Android, pgina consultada el 31/01/2011 http://www.businessweek.com/globalbiz/content/nov2007/gb2007118_7299 49.htm?chan=top+news_top+news+index_global+business [5] Android phones, pgina consultada el 31/01/2011 http://www.andro-phones.com/ [6] HTC primer dispositivo Android, pgina consultada el 31/01/2011 http://htcdream.com/ [7] Android platform 3, pgina consultada el 31/01/2011 http://developer.android.com/sdk/preview/index.html

Referencias
[8] Android nexus s, pgina consultada el 31/01/2011 http://www.google.com/phone/detail/nexus-s [9] Estadisticas de descargas, pgina consultada el 31/01/2011 http://www.gartner.com/it/page.jsp?id=1466313 [10] Estadsticas de descargas de aplicaciones mviles para el 2011, pgina consultada el 31/01/2011 http://www.channelinsider.com/c/a/Spotlight/MobileApp-Store-Revenue-to-Triple-in-2011-Gartner-Says-762208/ [11] Comparacin entre AppStore y Android Market, pgina consultada el 31/01/2011 http://www.cristalab.com/blog/apple-app-store-la-mas-grande-android-market-crecefuerte-c84910l/ [12] Predicciones de SO mviles, pgina consultada el 31/01/2011 http://androidandme.com/2010/09/news/gartner-android-will-finish-the-year-as-the2-mobile-os-with-world-domination-in-sight/ [13] Plataforma android, pgina consultada el 31/01/2011 http://developer.android.com/guide/basics/what-is-android.html [14] Plataforma Android, pgina consultada el 31/01/2011 http://developer.android.com/sdk/index.html

You might also like