You are on page 1of 42

Desarrollo

de Aplicaciones Mviles en Android


Profesorado: Jorge E. Carballo Franquis David D. Harjani Harjani Director: Jos Luis Roda

ndice
Historia de Android Qu es Android? Arquitectura de Android Hello, Android!

11/7/11

Desarrollo de Aplicaciones Mviles en Android

Cul es el ObjeRvo del curso?

11/7/11

Desarrollo de Aplicaciones Mviles en Android

Historia de Android Parte 1


Telfonos portables Primera generacin de mviles (analgicos) Segunda generacin de mviles (digitales) Tercera generacin de mviles (3G) Cuarta generacin de mviles (4G) y el auge de los tablets

11/7/11

Desarrollo de Aplicaciones Mviles en Android

Historia de Android Parte II


Evolucin de la industria
Era de la Palm Treo, primeras BlackBerry, etc. Smartphones no-tcRles (hasta el N95) Revolucin del iPhone Las operadoras se pelean por obtener la exclusividad de determinados modelos Revolucin del iPad

11/7/11

Desarrollo de Aplicaciones Mviles en Android

Historia de Android Parte III


Android como SO
Google compra Android, Inc. en 2005 En Noviembre de 2007 se anuncia la Open Handset Alliance (OHA), el Sistema OperaRvo Android y se lanza el primer SDK SepRembre de 2008: Llega el HTC Dream 2009: HTC, Motorola, Samsung lanzan disposiRvos de alta gama 2010: Android se consolida en todo el mundo, supera a iOS como plataforma ms extendida 2011: Llegan los tablets y la tercera generacin de disposiRvos (dual core)
Desarrollo de Aplicaciones Mviles en Android 6

11/7/11

Historia de Android Parte III


Open Handset Alliance
Consorcio formado por una gran mulRtud de empresas punteras (Intel, nVidia, Qualcomm, TI, Vodafone, Google, Samsung, etc.) divididas en cinco categoras:
Operadoras Fabricantes de telfonos Empresas de somware Empresas Semiconductoras Empresas de comercializacin

ObjeRvo: Disear los estndares del presente y del futuro respecto a las plataformas mviles Primer producto: Android
11/7/11 Desarrollo de Aplicaciones Mviles en Android 7

Historia de Android Parte IV


Versiones de Android
Sept. 2008: Android 1.0 Feb. 2009: Android 1.1 Abril 2009: Android 1.5 (Cupcake) Sept. 2009: Android 1.6 (Donut) Nov. 2009: Android 2.0 (Eclair) Enero 2010: Android 2.1 (Eclair) Mayo 2010: Android 2.2 (Froyo) Diciembre 2010: Android 2.3 (Gingerbread) Febrero 2011: Android 3.0 (Honeycomb) Octubre 2011: Android 4.0 (Ice-Cream Sandwich)
Desarrollo de Aplicaciones Mviles en Android 8

11/7/11

Qu signican las versiones?


Las primeras (1.0, 1.1) nicamente salieron al mercado en un disposiRvo 1.5 y 1.6 fueron las primeras en estar disponibles para mlRples disposiRvos, con disRntos tamaos y formas 2.0 y 2.1 asentaron los conceptos iniciales de Android y fueron las primeras en tener xito 2.2 y 2.3 conRnuaron la evolucin para los telfonos 3.0 y 4.0 transforman Android para funcionar tanto en telfonos como en tablets
05/04/2010 Desarrollo de Aplicaciones Mviles en Android 9

Qu han aportado?
1.1 complet las caractersRcas de 1.0 que no fueron terminadas a Rempo. 1.5 y 1.6 aadieron compaRbilidad para diferentes tamaos de pantalla, mejoraron la estabilidad, velocidad y funciones de bsqueda 2.0 y 2.1 mejoraron la interfaz grca e introdujeron muchas APIs que faltaban (Bluetooth, mlRples cuentas, contactos, OpenGL ES 2.0)
05/04/2010 Desarrollo de Aplicaciones Mviles en Android 10

Qu han aportado?
2.2 y 2.3 terminaron la evolucin en el telfono aadiendo APIs revolucionarias y opRmizando el sistema (JIT, C2DM, App Backup API, Apps on SD Card, Flash, mejor sistema de eventos, Soporte para aplicaciones naRvas en C\C++) 3.0 fue exclusiva para tablets, y transform el look & feel de Android. Cambi los fundamentos de programacin, pasando de AcRviRes a Fragments. Fue renado con 3.1 y 3.2 4.0 completa el ciclo, transportando todos los cambios de 3.0 a los telfonos, renando la interfaz, simplicando tareas para el usuario, y nuevas APIs.
05/04/2010 Desarrollo de Aplicaciones Mviles en Android 11

Y esto en qu se traduce?

05/04/2010

Desarrollo de Aplicaciones Mviles en Android

12

El problema de Android
Acaso importa para qu versin programamos?
La respuesta es siempre S

La fragmentacin de versiones
En la actualidad: 1.5, 1.6, 2.0.1, 2.1, 2.2, 2.3, 3.0, 3.1, 3.2 estn conviviendo a la vez

Atencin del consumidor de a pie


Lo mo es un iPhone, todo lo dems son telfonos
11/7/11 Desarrollo de Aplicaciones Mviles en Android 13

El problema de Android
Las UX (User eXperience de cada fabricante) retrasan la actualizacin de versiones
Sense UI, MotoBLUR, etc.

Hardware desfasado (ARM11)


Los telfonos ms econmicos y con mayor empuje de publicidad, poseen hardware de 2007 en el ao 2011, y posiblemente en 2010 (HTC Wildre / HTC Wildre S, Samsung Galaxy Ace, LG OpRmus One, Vodafone Smart)
05/04/2010 Desarrollo de Aplicaciones Mviles en Android 14

Rivales (H1 2011)


(Apple) iOS
(Microsom) Windows Mobile, Windows Phone 7 Series (Nokia) Symbian, Symbian^3, (Intel) MeeGo (RIM) BlackBerry OS, QNX

(HP) webOS
11/7/11 Desarrollo de Aplicaciones Mviles en Android 15

Rivales (Noviembre 2011)


(Apple) iOS
(Microsom) Windows Phone 7

(RIM) QNX?

11/7/11

Desarrollo de Aplicaciones Mviles en Android

16

Tipos de licencia de Android


Controlados por Google:
DisposiRvos with Google (Nexus One, Nexus S, prximamente Galaxy Nexus)

Controlados por el fabricante:


DisposiRvos con UXs personalizadas: HTC Desire S, HTC Desire HD, Sony Ericsson Xperia X10 Play, Samsung Galaxy S II

Controlados por la operadora:


HTC Dream con Movistar
11/7/11 Desarrollo de Aplicaciones Mviles en Android 17

Pero no olvidemos una cosa


Android es SOFTWARE LIBRE Todo el cdigo de la lRma versin, la 2.3, est disponible en h{ps://android.git.kernel.org/ Somos libres de descargarnos el cdigo, modicarlo como queramos, y venderlo instalado en terminales Proyecto espaol, el GeeksPhone Zero, basado en Android Froyo (2.2) con acceso root out-of-the-box
11/7/11 Desarrollo de Aplicaciones Mviles en Android 18

Dnde programamos?
Android Somware Development Kit
Programamos sobre un subconjunto del lenguaje Java 5 El cdigo Java de Android es 100% retro- compaRble con Java, pero no a la inversa El cdigo Java se compila en bytecode para la DVM automRcamente Las aplicaciones andan sobre la DVM

11/7/11

Desarrollo de Aplicaciones Mviles en Android

19

Dnde programamos?
Android NaRve Development Kit
Permite construir libreras en C\C++ Es un complemento del SDK, y NO se pueden construir aplicaciones slo con el NDK El cdigo C\C++ es compilado en lenguaje mquina ARM del procesador Cuando uRlizamos libreras construidas con el NDK, NO ejecutamos directamente en el procesador, seguimos dentro de la DVM
11/7/11 Desarrollo de Aplicaciones Mviles en Android 20

Dnde programamos?
Android NaRve DevelopmentKit
Se recomienda su uso para segmentos de cdigo que requieren mucha velocidad y que son auto- contenidos No es perfecto; habra que tener una versin por cada arquitectura de procesador disponible en el mercado.

05/04/2010

Desarrollo de Aplicaciones Mviles en Android

21

Android
Todos los disposiRvos Android son tcRles, y Renen los siguientes botones caractersRcos
BACK HOME MENU

11/7/11

Desarrollo de Aplicaciones Mviles en Android

22

Android Demo

11/7/11

Desarrollo de Aplicaciones Mviles en Android

23

Android Overview
Android 1.5/1.6
h{p://www.youtube.com/watch?v=hczgL3C2yrw h{p://www.youtube.com/watch?v=MBRFkLKRwFw h{p://www.youtube.com/watch?v=opZ69P-0Jbc h{p://www.youtube.com/watch?v=WKB3YdCulEI h{p://www.youtube.com/watch?v=7qy6aGFSLFo h{p://www.youtube.com/watch?v=IvU6g2V_oio h{p://www.youtube.com/watch?v=yAZYSVr2Bhc
Desarrollo de Aplicaciones Mviles en Android 24

Android 2.0/2.0.1 Android 2.1 Android 2.2

11/7/11

Android Overview
Android 2.3
h{p://www.youtube.com/watch?v=XRaXL1L65Vg

Android 3.0
h{p://www.youtube.com/watch?v=mGgzlKLFQfU h{p://www.youtube.com/watch?v=XCilGpUvXuE

Android 4.0
h{p://www.youtube.com/watch?v=-F_ke3rxopc

05/04/2010

Desarrollo de Aplicaciones Mviles en Android

25

Android Overview
Qu diferencia un Android de otro?
No todo lo que es Android son telfonos, hay consolas, MIDs, Netbooks, etc.

Qu diferencias hay entre dos telfonos Android?


Red (GSM o CDMA) Licencia, UX, Operadora Versin del SO Hardware <<<----

05/04/2010

ARM11 / ARM Cortex A8 / ARM Cortex A9 Memoria RAM, Memoria interna Potencia de GPU Sensores
Desarrollo de Aplicaciones Mviles en Android 26

Android Basics
Un telfono Android est unido a una cuenta Google A parRr de Eclair (2.0), podemos asociarlo a varias cuentas Android est diseado para consumir datos de internet, se recomienda una tarifa plana de datos Podemos instalar aplicaciones de cualquier fuente (no slo del Android Market) Dado que Android funciona sobre Linux, existe un sper-usuario (root)
11/7/11 Desarrollo de Aplicaciones Mviles en Android 27

Android Basics
Los componentes del Sistema OperaRvo que vemos (Home Screen, Contactos, Aplicacin Telfono, etc.) son reemplazables Las aplicaciones de servicios de Google son propietarias de Google, el resto son open source Aunque Android es open source, tenemos derecho a que nuestras aplicaciones sean propietarias, o incluso a que nuestra versin de Android sea propietaria (MotoBLUR, Sense UI, etc)
11/7/11 Desarrollo de Aplicaciones Mviles en Android 28

Plataforma Android
Entorno de somware creado para disposiRvos mviles No es una plataforma hardware S.O. Linux U.I. (Interfaz de usuario) Aplicaciones Libreras de cdigos Estructuras para las aplicaciones CompaRbilidad mulRmedia .

Incluso funcionalidad para el telfono mvil


05/04/2010 Desarrollo de Aplicaciones Mviles en Android 29

Plataforma Android (II)


S.O (C, C++) Las aplicaciones se disean en JAVA (subconjunto) No existen diferencias entre las aplicaciones incorporadas y las creadas con el SDK Haz lo que quieras (si puedes) Android es Cdigo Abierto Ncleo Linux GPL Plataforma Android (ASL Apache Somware License)
05/04/2010 Desarrollo de Aplicaciones Mviles en Android 30

Arquitectura de Android
Estructura basada en capas
Capa del kernel de Linux Libreras Android RunRme Sistema de Aplicaciones (AplicaRon Framework) Aplicaciones

05/04/2010

Desarrollo de Aplicaciones Mviles en Android

31

Arquitectura de Android (II)

05/04/2010

Desarrollo de Aplicaciones Mviles en Android

32

Arquitectura de Android (III)


Kernel de Linux

05/04/2010

Desarrollo de Aplicaciones Mviles en Android

33

Arquitectura de Android (IV)


Libreras Android Runtime o Mquina Virtual Dalvik

05/04/2010

Desarrollo de Aplicaciones Mviles en Android

34

Arquitectura de Android (V)


Sistema de Aplicaciones Aplicaciones

05/04/2010

Desarrollo de Aplicaciones Mviles en Android

35

Mquina Virtual Dalvik


No es la Java Virtual Machine Ejecutada en un entorno pobre Cada aplicacin se ejecuta en su propia mquina virtual

05/04/2010

Desarrollo de Aplicaciones Mviles en Android

36

Herramientas
Eclipse
ADT plug-in
Nombre del Proyecto Versin de Android Nombre de la Aplicacin Nombre del paquete Java Nombre de la AcRvidad que Eclipse crea por defecto

05/04/2010

Desarrollo de Aplicaciones Mviles en Android

37

Herramientas (II)
ADB (Android Device Bridge)
Es el puente entre nuestro ordenador y los disposiRvos Android conectados (ya sean emulados o no)

05/04/2010

Desarrollo de Aplicaciones Mviles en Android

38

Herramientas (III)
Emulador

05/04/2010

Desarrollo de Aplicaciones Mviles en Android

39

Herramientas (IV)
HierarchyViewer

05/04/2010

Desarrollo de Aplicaciones Mviles en Android

40

Herramientas (V)
DDMS

05/04/2010

Desarrollo de Aplicaciones Mviles en Android

41

Herramientas (VI)
TraceView ZipAlign

05/04/2010

Desarrollo de Aplicaciones Mviles en Android

42

You might also like