Вы находитесь на странице: 1из 36

UNIVERSIDAD DE GUAYAQUIL FACULTAD DE INGENIERIA INDUSTRIAL INGENIERIA EN TELEINFORMATICA

TEMA:

Android

ALUMNO:

Alcivar Mendoza David Andrs

DOCENTE

Ing. Luis Tomal Espaa

8vo Semestre Teleinformtica


1

TABLA DE CONTENIDO

1. INTRODUCCION 1.1 Qu ES ANDROID?................................................................................................ 3 1.2 RESEA HISTORICA 4 2. CARACTERISTICAS. 6 3. ARQUITECTURA DE ANDROID..... 8 4. VERSIONES DE ANDROID........ 12 4.1 NOMBRES DE VERSION, ETIQUETAS Y NUMEROS DE COMPILACION.... 16 4.2 ESPECIFICACION DE LO CODIGOS DE CADA VERSION 17 5. DALVIK VM..... 21 6. APLICACIONES EN ANDROID..... 22 6.1 COMPONENTES... 23 6.2 ESTADO DE LOS PROCESOS..... 24 6.3 CICLO DE VIDA DE UNA ACTIVIDAD.... 26 6.4 MODELO DE SEGURIDAD. 28 7. LIBRERIAS BASICAS 7.1 LISTA DE LIBRERIAS. 30 7.2 INTERFACES DE USUARIO (VIEW, LAYOUTS).... 32 8. CONCLUSIONES. 35 9. REFERENCIAS. 36

1. INTRODUCCIN 1.1 QU ES ANDROID? Android es un sistema operativo y una plataforma software, basado en Linux para telfonos mviles. Adems, tambin usan este sistema operativo (aunque no es muy habitual), tablets, netbooks, reproductores de msica e incluso PCs. Android permite programar en un entorno de trabajo (framework) de Java, aplicaciones sobre una mquina virtual Dalvik (una variacin de la mquina de Java con compilacin en tiempo de ejecucin). Adems, lo que le diferencia de otros sistemas operativos, es que cualquier persona que sepa programar puede crear nuevas aplicaciones, widgets, o incluso, modificar el propio sistema operativo, dado que Android es de cdigo libre, por lo que sabiendo programar en lenguaje Java, va a ser muy fcil comenzar a programar en esta plataforma. Y es que Android nace con una filosofa basada en el cdigo abierto, ya que no slo utiliza Linux como base, sino que muchas de sus aplicaciones base, como el navegador de Internet, estn basadas en Open Source, con el anuncio de Google de un concurso pblico de aplicaciones, se espera que el sistema operativo se alimente de las contribuciones de programadores de todo el mundo. En lo que Google no parece querer transigir es en el desarrollo de las aplicaciones para su sistema operativo, forzando una homogeneizacin de sus mquinas virtuales Java que haga que cualquier aplicacin desarrollada para Android sea ejecutable en cualquier terminal que incorpore el sistema operativo de Google. Desde su salida al mercado en el ao 2008, Android ha ido escalando puestos en el ranking de ventas, hasta llegar a ser el sistema operativo que llevan el 52.5% de los telfonos inteligentes vendidos en el tercer cuarto de 2011. Seguido de lejos por Symbian, sistema operativo de la empresa Nokia, el cual solo representa el 16.9%. Y lo que tambin queda claro es que se trata de un sistema operativo pensado para optimizar al mximo los recursos disponibles en un mvil, pudiendo ejecutarse en terminales no demasiado potentes, lo cual a su vez hara que el precio de los terminales Android pudiera ser inferior al de los Smartphone actuales. Por lo que se ha podido ver en una versin preliminar del software de desarrollo de aplicaciones para Android, el sistema operativo va orientado especialmente para los Smartphone, con un peso claro del acceso a Internet en su uso cotidiano. No en vano todas las aplicaciones de Google son nicamente accesibles online.

1.2 RESEA HISTORIA Fue desarrollado inicialmente por Android Inc., una firma comprada por Google en 2005. Es el principal producto de la Open Handset Alliance, un conglomerado de fabricantes y desarrolladores de hardware, software y operadores de servicio. Las unidades vendidas de telfonos inteligentes con Android se ubican en el primer puesto en los Estados Unidos, en el segundo y tercer trimestres de 2010,con una cuota de mercado de 43,6% en el tercer trimestre. A nivel mundial alcanz una cuota de mercado del 50,9% durante el cuarto trimestre de 2011, ms del doble que el segundo sistema operativo (iOS de Apple, Inc.) con ms cuota. El descubrimiento de la distribucin de Android, el 5 de noviembre de 2007 fu anunciado por la fundacin Open Handset Alliance, un consorcio de 47 empresas de hardware, software y telecomunicaciones dedicadas al fomento de estndares abiertos para dispositivos mviles. Google sin embargo, ha sido quien ha publicado la mayora del cdigo fuente de Android bajo la licencia de Software Apache, una licencia de software libre y de cdigo abierto a cualquier desarrollador Tiene una gran comunidad de desarrolladores escribiendo aplicaciones para extender la funcionalidad de los dispositivos. A la fecha, se han sobrepasado las 700.000 aplicaciones (de las cuales, dos tercios son gratuitas) disponibles para la tienda de aplicaciones oficial de Android: Google Play, sin tener en cuenta aplicaciones de otras tiendas no oficiales para Android, como pueden ser la App Store de Amazon o la tienda de aplicaciones Samsung Apps de Samsung. Google Play es la tienda de aplicaciones en lnea administrada por Google, aunque existe la posibilidad de obtener software externamente. Los programas estn escritos en el lenguaje de programacin Java. No obstante, no es un sistema operativo libre de malware, aunque la mayora de ello es descargado de sitios de terceros. El anuncio del sistema Android se realiz el 5 de noviembre de 2007. Google liber la mayora del cdigo de Android bajo la licencia Apache, una licencia libre y de cdigo abierto. La estructura del sistema operativo Android se compone de aplicaciones que se ejecutan en un framework Java de aplicaciones orientadas a objetos sobre el ncleo de las bibliotecas de Java en una mquina virtual Dalvik con compilacin en tiempo de ejecucin. Las bibliotecas escritas en lenguaje C incluyen un administrador de interfaz grfica (surface manager), un framework Open Core, una base de datos relacional SQLite, una Interfaz de programacin de API grfica OpenGL ES 2.0 3D, un motor de renderizado Web Kit, un motor grfico SGL, SSL y una biblioteca estndar de C Bionic. El sistema operativo est compuesto por 12 millones de lneas de cdigo, incluyendo 3 millones de lneas de XML, 2,8 millones de lneas de lenguaje C, 2,1 millones de lneas de Java y 1,75 millones de lneas de C++.

Adquisicin por parte de Google

En julio de 2006, Google adquiri Android Inc., una pequea compaa de Palo Alto, California fundada en 2003. Entre los cofundadores de Android que se fueron a trabajar a Google estn Andy Rubin (co-fundador de Danger), Rich Miner (co-fundador de Wildfire Communications, Inc.), Nick Sears (alguna vez VP en T-Mobile), y Chris White (quien encabez el diseo y el desarrollo de la interfaz en WebTV). En aquel entonces, poco se saba de las funciones de Android Inc. fuera de que desarrollaban software para telfonos mviles. Esto dio pie a rumores de que Google estaba planeando entrar en el mercado de los telfonos mviles. En Google, el equipo liderado por Rubin desarroll una plataforma para dispositivos mviles basada en el ncleo Linux que fue promocionado a fabricantes de dispositivos y operadores con la promesa de proveer un sistema flexible y actualizable. Se inform que Google haba alineado ya una serie de fabricantes de hardware y software y seal a los operadores que estaba abierto a diversos grados de cooperacin por su parte. La especulacin sobre que el sistema Android de Google entrara en el mercado de la telefona mvil se increment en diciembre de 2006. Reportes de BBC y The Wall Street Journal sealaron que Google quera sus servicios de bsqueda y aplicaciones en telfonos mviles y estaba muy empeado en ello. Medios impresos y en lnea pronto reportaron que Google estaba desarrollando un telfono con su marca. En septiembre de 2007, Information Week difundi un estudio de Evalueserve que reportaba que Google haba solicitado diversas patentes en el rea de la telefona mvil.

Open Handset Alliance

El 5 de noviembre de 2007 la Open Handset Alliance, un consorcio de varias compaas entre las que estn: Texas Instruments Broadcom Corporation Nvidia Qualcomm Samsung Electronics Sprint Nextel Intel LG Marvell Technology Group Motorola T-Mobile

Se estren con el fin de desarrollar estndares abiertos para dispositivos mviles.


5

Junto con la formacin de la Open Handset Alliance, la OHA estren su primer producto, Android, una plataforma para dispositivos mviles construida sobre la versin 2.6 de Linux. El 9 de diciembre de 2008, se anunci que 14 nuevos miembros se uniran al proyecto Android, entre los cuales se encuentran: Packet Video ARM Holdings Atheros Communications Asustek Garmin Softbank Sony Ericsson Toshiba Vodafone ZTE

2. CARACTERSTICAS Las caractersticas ms relevantes de Android son: Diseo de dispositivo, Android permite la utilizacin de casi cualquier resolucin mvil disponible hasta da de hoy lo que hace el sistema adaptable desde pantallas de 2,5 hasta tabletas de 10. Adems permite el uso de libreras de grficos en 2D y 3D. Almacenamiento, se realiza mediante SQLite como ya he mencionado anteriormente. Conectividad Soporte para estas redes de conectividad inalmbrica: GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, y WiMAX. Mensajera SMS y MMS como los correos electrnicos con sistema push son bien recibidos en Android. Navegador web, basado en el motor WebKit, usado por ejemplo en Chrome o Safari y mediante el motor de JavaScript V8 el navegador nativo de Android es uno de los mejores a nivel de SO mviles. Soporte de Java, realmente Android no dispone de una maquina virtual de java como tal, debido a que los dispositivos mviles son de escasos recursos as que se apoya en la maquina virtual de Dalvik para ejecutar el cdigo java.

Soporte multimedia, Android soporta la mayora de los formatos multimedia ms relevantes de hoy en da, en concreto: WebM, H.263, H.264 (en 3GP o MP4), MPEG-4 SP, AMR, AMR-WB (en un contenedor 3GP), AAC, HE-AAC (en contenedores MP4 o 3GP), MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, BMP.61 Soporte para streaming, El soporte para streaming de descarga en HTML se hace de forma nativa, pero el soporte para adobe flash se hace mediante una aplicacin que proporciona Adobe, aunque lo cierto es que son los dispositivos actuales los que est empezando a ejecutar aplicaciones o visualizaciones en Adobe Flash, los terminales con una ao de antigedad no lo soportan. Soporte para hardware adicional, el sistema soporta una infinidad de software externo al funcionamiento tradicional de un dispositivo que sirve para hacer llamadas, entre otros encontramos: soporte para cmaras de fotos, de vdeo, pantallas tctiles, GPS, acelermetros, magnetmetros, giroscopios, aceleracin 2d y 3d, sensores de proximidad y de presin, termmetro. Entorno de desarrollo, como ya he explicado anteriormente tiene un gran entorno de desarrollo basado en Eclipse y en el emulador suministrado por Google. Market, Dispone de un mercado de aplicaciones (Android Market) permitiendo de este modo descargar e instalar aplicaciones sin necesidad de un PC. Actualmente este mercado sobrepasa las 100.000 aplicaciones y sigue aumentando rpidamente. Multi-tctil, se incluyen las funciones multitctiles de forma nativa para todos los dispositivos Android que dispongan de una pantalla con esta capacidad. Bluetooth, la versin 2.2 ya da soporte para A2DF y AVRCP, envo de archivos (OPP), exploracin del directorio telefnico, marcado por voz y envo de contactos entre telfonos. Videollamada, a partir de la versin 2.3 lo hace de manera nativa, los dispositivos que ofrecen una cmara frontal como el Samsung Galaxy S y esta versin del sistema operativo ya pueden realizarlas sobre IP. Multitarea, para todas las aplicaciones y desde su primera versin. Tethering, permite al telfono ser usado como punto de acceso WIFI, est disponible a partir de la versin 2.2

3. ARQUITECTURA DE ANDROID Como ya se ha mencionado, Android es una plataforma para dispositivos mviles que contiene una pila de software donde se incluye un sistema operativo, middleware y aplicaciones bsicas para el usuario. En las siguientes lneas se dar una visin global por capas de cul es la arquitectura empleada en Android. Cada una de estas capas utiliza servicios ofrecidos por las anteriores, y ofrece a su vez los suyos propios a las capas de niveles superiores, tal como muestra la siguiente figura ((c) Google):

Figura 3.1 Estructura de la Arquitectura en Android

Aplicaciones

Este nivel contiene, tanto las incluidas por defecto de Android como aquellas que el usuario vaya aadiendo posteriormente, ya sean de terceras empresas o de su propio desarrollo. Todas estas aplicaciones utilizan los servicios, las API y libreras de los niveles anteriores. Framework de Aplicaciones

Representa fundamentalmente el conjunto de herramientas de desarrollo de cualquier aplicacin. Toda aplicacin que se desarrolle para Android, ya sean las propias del dispositivo, las desarrolladas por Google o terceras compaas, o incluso las que el propio usuario cree, utilizan el mismo conjunto de API y el mismo "framework", representado por este nivel. Entre las API ms importantes ubicadas aqu, se pueden encontrar las siguientes:

Activity Manager: Conjunto de API que gestiona el ciclo de vida de las aplicaciones en Android. Window Manager: Gestiona las ventanas de las aplicaciones y utiliza la librera Surface Manager. Telephone Manager: Incluye todas las API vinculadas a las funcionalidades propias del telfono (llamadas, mensajes, etc.). Content Provider: Permite a cualquier aplicacin compartir sus datos con las dems aplicaciones de Android. Por ejemplo, gracias a esta API la informacin de contactos, agenda, mensajes, etc. ser accesible para otras aplicaciones. View System: Proporciona un gran nmero de elementos para poder construir interfaces de usuario (GUI), como listas, mosaicos, botones, "check-boxes", tamao de ventanas, control de las interfaces mediante teclado, etc. Incluye tambin algunas vistas estndar para las funcionalidades ms frecuentes. Location Manager: Posibilita a las aplicaciones la obtencin de informacin de localizacin y posicionamiento. Notification Manager: Mediante el cual las aplicaciones, usando un mismo formato, comunican al usuario eventos que ocurran durante su ejecucin: una llamada entrante, un mensaje recibido, conexin Wi-Fi disponible, ubicacin en un punto determinado, etc. Si llevan asociada alguna accin, en
9

Android denominada Intent, (por ejemplo, atender una llamada recibida) sta se activa mediante un simple clic. XMPP Service: Coleccin de API para utilizar este protocolo de intercambio de mensajes basado en XML. Libreras:

La siguiente capa se corresponde con las libreras utilizadas por Android. stas han sido escritas utilizando C/C++ y proporcionan a Android la mayor parte de sus capacidades ms caractersticas. Junto al ncleo basado en Linux, estas libreras constituyen el corazn de Android. Entre las libreras ms importantes ubicadas aqu, se pueden encontrar las siguientes: Librera libc: Incluye todas las cabeceras y funciones segn el estndar del lenguaje C. Todas las dems libreras se definen en este lenguaje. Librera Surface Manager: Es la encargada de componer los diferentes elementos de navegacin de pantalla. Gestiona tambin las ventanas pertenecientes a las distintas aplicaciones activas en cada momento. OpenGL/SL y SGL: Representan las libreras grficas y, por tanto, sustentan la capacidad grfica de Android. OpenGL/SL maneja grficos en 3D y permite utilizar, en caso de que est disponible en el propio dispositivo mvil, el hardware encargado de proporcionar grficos 3D. Por otro lado, SGL proporciona grficos en 2D, por lo que ser la librera ms habitualmente utilizada por la mayora de las aplicaciones. Una caracterstica importante de la capacidad grfica de Android es que es posible desarrollar aplicaciones que combinen grficos en 3D y 2D. Librera Media Libraries: Proporciona todos los cdecs necesarios para el contenido multimedia soportado en Android (vdeo, audio, imgenes estticas y animadas, etc.) FreeType: Permite trabajar de forma rpida y sencilla con distintos tipos de fuentes. Librera SSL: Posibilita la utilizacin de dicho protocolo para establecer comunicaciones seguras. Librera SQLite: Creacin y gestin de bases de datos relacionales.

10

Librera WebKit: Proporciona un motor para las aplicaciones de tipo navegador y forma el ncleo del actual navegador incluido por defecto en la plataforma Android. Tiempo de ejecucin de Android

Al mismo nivel que las libreras de Android se sita el entorno de ejecucin. ste lo constituyen las Core Libraries, que son libreras con multitud de clases Java y la mquina virtual Dalvik. Ncleo Linux

Es la capa inferior de la plataforma y esta compuesta por un ncleo Linux (versin 2.6) que se usa como capa de abstraccin de hardware (HAL, Hardware Abstraction Layer) y se encarga de gestionar los servicios bsicos del sistema, tales como la gestin de memoria, la gestin de procesos, Entrada/Salida, red, etc. Cuando se emplea una HAL, las aplicaciones no acceden directamente al hardware sino que lo hacen a la capa abstracta provista por la HAL, la cual accede al hardware a travs de drivers. Del mismo modo que las APIs, las HAL permiten que las aplicaciones sean independientes del hardware porque abstraen informacin acerca de tales sistemas, como lo son las cachs, los buses de E/S y las interrupciones. Otra factor a destacar es la sencillez para implementar el sistema para los fabricantes, los cuales solo tienen que proveer a sus sistemas del kernel Linux adecuado, y siguiendo el modelado de drivers de Linux, comunicarlo con los distintos perifricos del dispositivo. Una vez logrado esto, simplemente se instalan el resto de capas de Android. Esto implica que si somos capaces de instalar un ncleo Linux en nuestro telfono mvil, con acceso a todas las interfaces del mvil mediante sus correspondientes drivers (cmara, antena, etc.) podremos transformar nuestro telfono en un googlephone. De todas formas todava es pronto para conocer el verdadero potencial de Android ya que no esta disponible el kernel con el que trabaja Android, ni siquiera de la programacin de las libreras bsicas (capas 1 y 2) ya que solo se dispone de informacin acerca de las APIs implementadas (capa 3) y que se ejecutan con el simulador, pero todava no sobre un dispositivo fsico real.

11

Figura 3.2 Comunicaciones del Linux Kernel.

4. VERSIONES DE ANDROID

Figura 4.1 Lnea de Tiempo Ver. Android

Google lanza nuevas versiones de Android de forma frecuente, pero no tiene plazos establecidos para cada versin futura. Algunas de las versiones en el medio nunca fueron lanzados comercialmente. Normalmente se tarda fabricantes de 6 a 12 meses despus de un determinado Android Software Development Kit (SDK) versin para entregar los productos que utilizan esa versin, por lo que el vendedor puede realizar adiciones personalizados, cdigo de interfaz y el dispositivo de control de calidad del. Aunque no est soportado por los fabricantes, a menudo es posible instalar una nueva versin del sistema operativo en un "arraigada 'dispositivo.

12

Durante la aparicin de este Sistema Operativo ha ido evolucionando poco a poco y lo particular es las Sigla con la que empieza cada uno de las versiones y cada uno representa a un dulce especfico; aqu estn sus versiones hasta la actualidad: Android 1.0 Primera versin oficial del S.O. Android. Integracin con los servicios de Google. Navegador web con capacidad para hacer zoom y cargar mltiples paginas. - Descarga de aplicaciones desde Android Market. - Multitarea. - Wifi. - Bluetooth. Android 1.5 - Basado en el kernel de Linux 2.6.27. - Aadida la compatibilidad con grabacin de video. - Mayor velocidad en la carga de la cmara y al capturar fotos. - Nuevo teclado con prediccin de texto. - Transiciones de pantallas animadas. - Nuevos widgets y carpetas para colocar en la pantalla de inicio. -

23-09-2008

CUPCAKE 30-04-2009 Android 1.6 - Basado en el kernel de Linux 2.6.29. - Mejoradas las aplicaciones para bsqueda rpida y por voz. - Experiencia mejorada en el Android Market. - Interfaz integrada entre cmara, filmadora y galera. - Navegacin gratuita turn-by-turn de Google. - Soporte para equipos CDMA. - Indicador de uso de la batera. Android 2.0 / 2.1 - Basado en el kernel de Linux 2.6.29. - Velocidad de hardware mejorada. - Soporte para cuentas mltiples de correo y mejora en sincronizacin. - Interfaz de usuario renovada. - Nueva lista de contactos. - Soporte para HTML5 en el navegador. - Soporte para Bluetooth. - Teclado virtual mejorado.

DONUT 15-09-2009

ECLAIR 26-10-2009

13

FROYO 30-05-2010

GINGERBREAD 06-12-2010

HONEYCOMB 10-05-2011

Android 2.2 - Basado en el kernel de Linux 2.6.32. - Optimizacin general del sistema Android, la memoria y el rendimiento. - Aadida capacidad de Wi-Fi Hotspot. - Android Market con actualizaciones automticas. - Teclado multilenguaje. - Adobe flash 10.1. - Soporte para instalacin de aplicaciones en la memoria expandible. - Integracin del motor de JavaScript VB del Google Chrome en el navegador. Android 2.3 - Basado en kernel de Linux 2.6.35.7 - Nuevo diseo en la interfaz de usuario. - Seleccin de palabras con un solo toque y opcin para copiar y pegar textos. - Teclado Multi-Tactil rediseado para mayor velocidad de tipeo - Administracin de la energa mejorada - Control de aplicaciones mediante el administrador de tareas - Soporte para telefona VoIp (llamadas a travs de internet) - Mejoras en la entrada de datos, audio y grficos para desarrolladores de juegos Android 3.0 / 3.1 / 3.2 - Optimizado especialmente para tablets y equipos con pantallas grandes - Encritorio 3D con widgets rediseados - Soporte para videochat mediante Google Talk - Mejor soporte para redes Wi-Fi - Mejorado el trabajo multitarea - Mejoradas las notificaciones y la personalizacin de la pantalla principal - Mejoras en el navegador web (Pestaas, Sincronizacin con Google Chrome...) - Aade soporte para una gran variedad de perifricos y accesorios US3

14

ICE CREAM SANDWICH 19-10-2011

JELLY BEAN 09- 07-2012

Android 4.0 / 4.0.2 / 4.0.3/ 4.0.4 - Se desarroll una refinada interfaz - Carpetas de pantalla de inicio y la bandeja de favoritos - Widgets de tamao variable - Pase a despedir a las notificaciones, las tareas y pestaas del navegador - La introduccin de texto mejorada y correccin ortogrfica - Potente motor de voz de entrada - Control sobre los datos de red (Mvil o Wi-Fi) - Experiencia Cloud-Connected - Transmitir para Android NFC basado en el intercambio - Desbloquear la cara es una nueva pantalla de bloqueo, que le permite desbloquear el dispositivo con su cara - Wi-Fi Direct y Bluetooth HDP Android 4.1.x / 4.2.x - Interfaz de usuario ms fluida: - Soporte de texto bi-direccional y otros lenguajes - Transferencia de datos Bluetooth para Android Beam - Dictado de voz offline - Google Wallet (para el Nexus 7) - Aplicacin de bsqueda Google Now - Audio USB (for external sound DACs) - Stock Android browser is replaced with the Android mobile version of Google Chrome in devices with Android 4.1 preinstalled - Soporte de rotacin de la pantalla principal - Notificaciones expansin/contraccin con un dedo - Mejora de la aplicacin de cmara permitiendo fotos panormicas en 360 (Photo Sphere) - Gestor de cuentas multiusuario (Solo Tablets) - Widgets en pantalla de bloqueo - Teclado predictivo deslizante (estilo Swype) - Posibilidad de conectar dispositivo y TVHD mediante wifi (Miracast). - Nueva app del reloj

15

4.1 NOMBRES DE VERSIN, ETIQUETAS Y NMEROS DE COMPILACIN A un alto nivel, el desarrollo de Android que sucede alrededor de las familias de las liberaciones, que utilizan nombres en clave ordenadas alfabticamente despus de delicias. Nombres de plataforma de cdigo, las versiones, los niveles de API y comunicados NDK

Los nombres de cdigos coincide con los siguientes nmeros de versin, junto con los niveles de API y comunicados NDK proporcionados por conveniencia: Nombre de cdigo (Sin nombre cdigo) (Sin nombre cdigo) Cupcake Buuelo Eclair Eclair Eclair Froyo Pan de jengibre Pan de jengibre Panal Panal Panal Ice Cream Sandwich Ice Cream Sandwich Jelly Bean Jelly Bean Versin 1,0 1,1 1,5 1,6 2,0 2.0.1 2,1 2.2.x 2,3 - 2.3.2 2.3.3 - 2.3.7 3,0 3,1 3.2.x 4.0.1 - 4.0.2 4.0.3 - 4.0.4 4.1.x 4.2.x API de nivel API de nivel 1 API de nivel 2 API de nivel 3, 1 NDK API de nivel 4, NDK 2 API de nivel 5 API de nivel 6 API de nivel 7, NDK 3 API de nivel 8, 4 NDK API de nivel 9, NDK 5 API de nivel 10 API de nivel 11 API de nivel 12, NDK 6 API de nivel 13 API de nivel 14, NDK 7 API de nivel 15, NDK 8 API de nivel 16 API de nivel 17

16

4.2 ESPECIFICACION DE LOS CODIGOS DE CADA VERSION A partir de las versiones individuales de la magdalena, se identifican con un cdigo corto de construccin, por ejemplo FRF85B. La primera letra es el nombre en clave de la familia de liberacin, por ejemplo, F es Froyo. La segunda carta es un cdigo de sucursal que permite a Google para identificar la rama de cdigo exacto que la construccin fue hecha, y R es, por convencin, la rama de lanzamiento primario. La siguiente letra y dos dgitos es un cdigo de fecha. La carta cuenta trimestres, con un Q1 ser 2009. Por lo tanto, F es Q2 2010. Los dos dgitos contar los das en el trimestre, por lo que F85 es junio 24 2010. Finalmente, la ltima letra identifica versiones individuales relacionadas con el cdigo de la misma fecha, de forma secuencial empezando por A, A es en realidad implcita y por lo general se omite por razones de brevedad. El cdigo de fecha no se garantiza que sea la fecha exacta en que se hizo una compilacin, y es comn que pequeas variaciones aade a una compilacin existente reutilizar el cdigo de la fecha misma que la existente construir.

ETIQUETAS DE CDIGO FUENTE

Comenzando con Donut, la lista exacta de las etiquetas y se basa en la siguiente tabla: Construir DRC83 DRC92 DRD08 DRD20 DMD64 ESD20 ESD56 ERD79 Etiqueta android-1.6_r1.1 android-1.6_r1.2 android-1.6_r1.3 android-1.6_r1.4 android-1.6_r1.5 android-2.0_r1 android-2.0.1_r1 android-2.1_r1 Nexus One
17

Notas Donut primera versin, ADP1, ADP2

Donut ltima versin primera versin Eclair

Construir ERE27 EPE54B ESE81 EPF21B FRF85B FRF91 FRG01B FRG22D FRG83 FRG83D FRG83G FRK76 FRK76C GRH55 GRH78 GRH78C GRI40 GRI54 GRJ06D GRJ22 GRJ90 GRK39C GRK39F GWK74 ITL41D

Etiqueta android-2.1_r2 android-2.1_r2.1p android-2.1_r2.1s android-2.1_r2.1p2 android-2.2_r1 android-2.2_r1.1 android-2.2_r1.2 android-2.2_r1.3 android-2.2.1_r1 android-2.2.1_r2 android-2.2.2_r1 android-2.2.3_r1 android-2.2.3_r2 android-2.3_r1 android-2.3.1_r1 android-2.3.2_r1 android-2.3.3_r1 android-2.3.3_r1.1 android-2.3.4_r0.9 android-2.3.4_r1 android-2.3.5_r1 android-2.3.6_r0.9 android-2.3.6_r1 android-2.3.7_r1 android-4.0.1_r1 Nexus One Nexus One Nexus One Nexus One Nexus One

Notas

ltima versin Eclair primera versin Froyo, Nexus One Nexus One

ltima versin Froyo primera versin Gingerbread, Nexus S Nexus S Nexus S Nexus One, Nexus S Nexus S Nexus S 4G Nexus One, Nexus S, Nexus S 4G Nexus S 4G Nexus S Nexus One, Nexus S ltima versin Gingerbread, Nexus S 4G primera versin Ice Cream Sandwich, Galaxy Nexus

18

Construir ITL41D ITL41F ICL53F IML74K IML77 IMM76 IMM76D IMM76I IMM76K IMM76L JRO03C JRO03D JRO03E JRO03H JRO03L JRO03O JRO03R JRO03S JZO54K JOP40C JOP40D JOP40F JOP40G JDQ39

Etiqueta android-4.0.1_r1.1 android-4.0.1_r1.2 android-4.0.2_r1 android-4.0.3_r1 android-4.0.3_r1.1 android-4.0.4_r1 android-4.0.4_r1.1 android-4.0.4_r1.2 android-4.0.4_r2 android-4.0.4_r2.1 android-4.1.1_r1 android-4.1.1_r1.1 android-4.1.1_r2 android-4.1.1_r3 android-4.1.1_r4 android-4.1.1_r5 android-4.1.1_r6 android-4.1.1_r6.1 android-4.1.2_r1 android-4.2_r1 android-4.2.1_r1 android-4.2.1_r1.1 android-4.2.1_r1.2 android-4.2.2_r1 Nexus S Galaxy Nexus Nexus S 4G Nexus 7 Galaxy Nexus Galaxy Nexus Galaxy Nexus Nexus S

Notas

Nexus S, 4G Nexus S, Galaxy Nexus Galaxy Nexus Galaxy Nexus ltima versin Ice Cream Sandwich primera versin Jelly Bean, Galaxy Nexus Nexus 7 Nexus S

Nexus S, Galaxy Nexus, Nexus 7 Galaxy Nexus, Nexus 7, 4 Nexus, Nexus 10 Galaxy Nexus, Nexus 7, 4 Nexus, Nexus 10 Nexus 10 Nexus 4 Jelly Bean ltima versin, Galaxy Nexus, Nexus 7, 4 Nexus, Nexus 10

19

Las ramas Froyo, pan de jengibre, ics mr0, ics mr1, dev-jb, jb-MR1-dev, mr1.1 jb-devrepresentan ramas de desarrollo que no coinciden exactamente con las configuraciones que fueron probados por Google. Pueden contener una variedad de cambios, adems de las publicaciones oficiales etiquetados, y los que no han sido probada completamente.

HONEYCOMB GPL MDULOS

Para Honeycomb, la plataforma de cdigo fuente completo no est disponible. Sin embargo, las partes de Honeycomb licenciado bajo la GPL y LGPL estn disponibles bajo las siguientes etiquetas: Construir HRI39 HRI66 HWI69 HRI93 HMJ37 HTJ85B HTK55D HTK75D HLK75C HLK75D HLK75F HLK75H Etiqueta android-3.0_r1 android-3.0_r1.1 android-3.0_r1.2 android-3.0_r1.3 android-3.1_r1 android-3.2_r1 android-3.2.1_r1 android-3.2.1_r2 android-3.2.2_r1 android-3.2.2_r2 android-3.2.4_r1 android-3.2.6_r1 ltima versin Honeycomb Notas primera versin Honeycomb

20

5. DALVIK VM Dalkiv es el nombre de la mquina virtual que utiliza Android (DalvikVM), la cual est basada en registro, diseada y escrita por "Dan Bornstein" y algunos otros ingenieros de Google. En ella podemos encontrar una gran diferencia con respecto a la mquina virtual Java (JVM), ya que la mquina virtual de Google no est basada en una pila. Dalvik.equals(Java) == false Por qu " Dalvik "? ste nombre fue elegido por Bornstein en honor a Dalvk, un pueblo de pescadores de Eyjafjrur (Islandia), donde vivieron algunos de sus antepasados. Dalvik VM es un intrprete que slo ejecuta los archivos ejecutables con formato .dex (Dalvik Executable). Este formato est optimizado para el almacenamiento eficiente de la memoria, lo cual consigue delegando en el kernel la gestin de hilos (multithreading), de memoria y de procesos. La herramienta "dx" incluida en el SDK de Android permite transformar las clases compiladas (.class) por un compilador de lenguaje Java en formato .dex. La Dalvik VM tambin ha sido optimizada para correr mltiples instancias con muy baja huella Diferencias con una mquina virtual Java normal

En primer lugar, la mquina virtual de Dalvik toma los archivos generados por las clases Java y los combina en uno o ms archivos ejecutables Dalvik (. dex), los cuales a su vez son comprimidos en un slo fichero .apk (Android Package) en el dispositivo. De esta forma, reutiliza la informacin duplicada por mltiples archivos .class, reduciendo as la necesidad de espacio (sin comprimir) a la mitad de lo que ocupara un archivo .jar. En segundo lugar, Google ha mejorado la recoleccin de basura en la mquina virtual de Dalvik, pero ha preferido omitirjust-in-time (JIT), en esta versin por lo menos. La empresa justifica esta eleccin diciendo que muchas de las bibliotecas centrales de Android, incluyendo las bibliotecas de grficos, estn implementadas en C y C++. Del mismo modo, Android proporciona una biblioteca de C optimizada para acceder a la base de datos SQLite, pero esta biblioteca est encapsulada en un nivel superior del API de Java. Dado que la mayora del cdigo del ncleo se encuentra en C y C++, Google argument que el impacto de la compilacin JIT no sera significativo.

Por ltimo, la mquina virtual de Dalvik utiliza un tipo diferente de montaje para la generacin del cdigo, en el que se utilizan los registros como las unidades primarias de
21

almacenamiento de datos en lugar de la pila. Hay que sealar que el cdigo ejecutable final de Android, como resultado de la mquina virtual de Dalvik, no se basa en el bytecode de Java, sino que se basa en los archivos .dex. Esto significa que no se puede ejecutar directamente el Bytecode de Java, sino que hay que comenzar con los archivos .class de Java y luego convertirlos en archivos .dex.

Formato de un fichero .dex

6. APLICACIONES EN ANDROID Una aplicacin Android corre dentro de su propio proceso Linux, por tanto, una caracterstica fundamental de Android es que el tiempo y ciclo de vida de una aplicacin no est controlado por la misma aplicacin sino que lo determina el sistema a partir de una combinacin de estados como pueden ser qu aplicaciones estn funcionando, qu prioridad tienen para el usuario y cunta memoria queda disponible en el sistema. Una aplicacin en Android debe declarar todas sus actividades, los puntos de entrada, la comunicacin, las capas, los permisos, y las intenciones a travs de AndroidManifest.xml (ver punto 3.2 Interfaces de Usuario). Es muy importante tener en consideracin cmo estos componentes impactan en el tiempo de vida del proceso asociado con una aplicacin, porque si no son empleados de manera apropiada, el sistema detendr el proceso de la aplicacin aun cuando se est haciendo algo importante.

22

6.1 Componentes

Activity: Sin duda es el componente ms habitual de las aplicaciones para Android. Un componente Activity refleja una determinada actividad llevada a cabo por una aplicacin, y que lleva asociada tpicamente una ventana o interfaz de usuario; es importante sealar que no contempla nicamente el aspecto grfico, sino que ste forma parte del componente Activity a travs de vistas representadas por clases como View y sus derivadas. Este componente se implementa mediante la clase de mismo nombre Activity. La mayora de las aplicaciones permiten la ejecucin de varias acciones a travs de la existencia de una o ms pantallas. Por ejemplo, pinsese en una aplicacin de mensajes de texto. En ella, la lista de contactos se muestra en una ventana. Mediante el despliegue de una segunda ventana, el usuario puede escribir el mensaje al contacto elegido, y en otra tercera puede repasar su historial de mensajes enviados o recibidos. Cada una de estas ventanas debera estar representada a travs de un componente Activity, de forma que navegar de una ventana a otra implica lanzar una actividad o dormir otra. Android permite controlar por completo el ciclo de vida de los componentes Activity. Tal y como se puede ver en el siguiente punto, una actividad tiene un ciclo de vida muy definido, que ser igual para todas las actividades. Este ciclo de vida es impuesto por el SDK de Android. Las actividades tienen cuatro posibles estados: Activa, pausada, parada y reiniciada. A la hora de disear una aplicacin en Android hay que tener en cuenta su ciclo de vida.

Intent: Un Intent consiste bsicamente en la voluntad de realizar alguna accin, generalmente asociada a unos datos. Lanzando un Intent, una aplicacin puede delegar el trabajo en otra, de forma que el sistema se encarga de buscar qu aplicacin de entre las instaladas, es la que puede llevar a cabo la accin solicitada. Por ejemplo, abrir una URL en algn navegador web, o escribir un correo electrnico desde algn cliente de correo. Los Intents estn incluidos en el Android Manifest porque describen dnde y cundo puede comenzar una actividad. Cuando una actividad crea un Intent, ste puede tener descriptores de lo que se quiere hacer. Una vez se est ejecutando la aplicacin, Android compara esta informacin del Intent con los Intents de cada aplicacin, eligiendo el ms adecuado para realizar la operacin especificada por el llamante.

Broadcast Intent Receiver: Un componente Broadcast Intent Receiver se utiliza para lanzar alguna ejecucin dentro de la aplicacin actual cuando un determinado evento se produzca (generalmente, abrir un componente Activity). Por ejemplo, una llamada entrante o un SMS recibido. Este componente no tiene interfaz de usuario asociada, pero puede utilizar el API Notification Manager para avisar al usuario del
23

evento producido a travs de la barra de estado del dispositivo mvil. Este componente se implementa a travs de una clase de nombre Broadcast Receiver. Para que Broadcast Intent Receiver funcione, no es necesario que la aplicacin en cuestin sea la aplicacin activa en el momento de producirse el evento. El sistema lanzar la aplicacin si es necesario cuando el evento monitorizado tenga lugar.

Service: Un componente Service representa una aplicacin ejecutada sin interfaz de usuario, y que generalmente tiene lugar en segundo plano mientras otras aplicaciones (stas con interfaz) son las que estn activas en la pantalla del dispositivo. Un ejemplo tpico de este componente es un reproductor de msica. La interfaz del reproductor muestra al usuario las distintas canciones disponibles, as como los tpicos botones de reproduccin, pausa, volumen, etc. En el momento en el que el usuario reproduce una cancin, sta se escucha mientras se siguen visualizando todas las acciones anteriores, e incluso puede ejecutar una aplicacin distinta sin que la msica deje de sonar. La interfaz de usuario del reproductor sera un componente Activity, pero la msica en reproduccin sera un componente Service, porque se ejecuta en background. Este elemento est implementado por la clase de mismo nombre Service. Content Provider: Con el componente Content Provider, cualquier aplicacin en Android puede almacenar datos en un fichero, en una base de datos SQLite o en cualquier otro formato que considere. Adems, estos datos pueden ser compartidos entre distintas aplicaciones. Una clase que implemente el componente Content Provider contendr una serie de mtodos que permiten almacenar, recuperar, actualizar y compartir los datos de una aplicacin. Existe una coleccin de clases para distintos tipos de gestin de datos en el paquete android.provider. Adems, cualquier formato adicional que se quiera implementar deber pertenecer a este paquete y seguir sus estndares de funcionamiento.

No todas las aplicaciones tienen que tener los cuatro componentes, pero cualquier aplicacin ser una combinacin de estos. 6.2 Estado de los procesos Como se ha mencionado anteriormente, cada aplicacin de Android corre en su propio proceso, el cual es creado por la aplicacin cuando se ejecuta y permanece hasta que la aplicacin deja de trabajar o el sistema necesita memoria para otras aplicaciones. Android sita cada proceso en una jerarqua de "importancia" basada en estados, como se puede ver a continuacin: Procesos en primer plano (Active process): Es un proceso que aloja una Activity en la pantalla y con la que el usuario est interactuando (su mtodo onResume() ha
24

sido llamado) o que un IntentReceiver est ejecutndose. Este tipo de procesos sern eliminados como ltimo recurso si el sistema necesitase memoria. Procesos visibles (Visible process): Es un proceso que aloja una Activity pero no est en primer plano (su mtodo onPause() ha sido llamado). Esto ocurre en situaciones dnde la aplicacin muestra un cuadro de dilogo para interactuar con el usuario. Este tipo de procesos no ser eliminado en caso que sea necesaria la memoria para mantener a todos los procesos del primer plano corriendo. Procesos de servicio (Started service process): Es un proceso que aloja un Service que ha sido iniciado con el mtodo startService(). Este tipo de procesos no son visibles y suelen ser importantes para el usuario (conexin con servidores, reproduccin de msica). Procesos en segundo plano (Background process): Es un proceso que aloja una Activity que no es actualmente visible para el usuario (su mtodo onStop() ha sido llamado). Normalmente la eliminacin de estos procesos no suponen un gran impacto para la actividad del usuario. Es muy usual que existan numerosos procesos de este tipo en el sistema, por lo que el sistema mantiene una lista para asegurar que el ltimo proceso visto por el usuario sea el ltimo en eliminarse en caso de necesitar memoria. Procesos vacos (Empty process): Es un proceso que no aloja ningn componente. La razn de existir de este proceso es tener una cach disponible de la aplicacin para su prxima activacin. Es comn, que el sistema elimine este tipo de procesos con frecuencia para obtener memoria disponible.

Segn esta jerarqua, Android prioriza los procesos existentes en el sistema y decide cules han de ser eliminados, con el fin de liberar recursos y poder lanzar la aplicacin requerida.

25

Figura 6.1 Jerarquia de Procesos Android

Para los procesos en segundo plano, existe una lista llamada LRU (Least Recently Used). En funcin de esta lista se van eliminando los procesos; los primeros que se eliminan son aquellos que llevan ms tiempo sin usarse. As el sistema se asegura de mantener vivos los procesos que se han usado recientemente. 6.3 Ciclo de vida de una Actividad El hecho de que cada aplicacin se ejecuta en su propio proceso aporta beneficios en cuestiones bsicas como seguridad, gestin de memoria, o la ocupacin de la CPU del dispositivo mvil. Android se ocupa de lanzar y parar todos estos procesos, gestionar su ejecucin y decidir qu hacer en funcin de los recursos disponibles y de las rdenes dadas por el usuario. El usuario desconoce este comportamiento de Android. Simplemente es consciente de que mediante un simple clic pasa de una a otra aplicacin y puede volver a cualquiera de ellas en el momento que lo desee. No debe preocuparse sobre cul es la aplicacin que realmente est activa, cunta memoria est consumiendo, ni si existen o no recursos suficientes para abrir una aplicacin adicional. Todo eso son tareas propias del sistema operativo. Android lanza tantos procesos como permitan los recursos del dispositivo. Cada proceso, correspondiente a una aplicacin, estar formado por una o varias actividades independientes (componentes Activity) de esa aplicacin. Cuando el usuario navega de una actividad a otra, o abre una nueva aplicacin, el sistema duerme dicho proceso y realiza una copia de su estado para poder recuperarlo ms tarde. El proceso y la actividad siguen existiendo en el sistema, pero estn dormidos y su estado ha sido guardado. Es entonces cuando crea, o despierta si ya existe, el proceso para la aplicacin que debe ser lanzada, asumiendo que existan recursos para ello.
26

Cada uno de los componentes bsicos de Android tiene un ciclo de vida bien definido; esto implica que el desarrollador puede controlar en cada momento en qu estado se encuentra dicho componente, pudiendo as programar las acciones que mejor convengan. El componente Activity, probablemente el ms importante, tiene un ciclo de vida como el mostrado en la siguiente figura.

Figura 6.2 Ciclo de vida de una Actividad

27

De la figura anterior, pueden sacarse las siguientes conclusiones:


onCreate(), onDestroy(): Abarcan todo el ciclo de vida. Cada uno de estos mtodos representan el principio y el fin de la actividad. onStart(), onStop(): Representan la parte visible del ciclo de vida. Desde onStart() hasta onStop(), la actividad ser visible para el usuario, aunque es posible que no tenga el foco de accin por existir otras actividades superpuestas con las que el usuario est interactuando. Pueden ser llamados mltiples veces. onResume(), onPause(): Delimitan la parte til del ciclo de vida. Desde onResume() hasta onPause(), la actividad no slo es visible, sino que adems tiene el foco de la accin y el usuario puede interactuar con ella.

Tal y como se ve en el diagrama de la figura anterior, el proceso que mantiene a esta Activity puede ser eliminado cuando se encuentra en onPause() o en onStop(), es decir, cuando no tiene el foco de la aplicacin. Android nunca elimina procesos con los que el usuario est interactuando en ese momento. Una vez se elimina el proceso, el usuario desconoce dicha situacin y puede incluso volver atrs y querer usarlo de nuevo. Entonces el proceso se restaura gracias a una copia y vuelve a estar activo como si no hubiera sido eliminado. Adems, la Activity puede haber estado en segundo plano, invisible, y entonces es despertada pasando por el estado onRestart(). Pero, qu ocurre en realidad cuando no existen recursos suficientes? Obviamente, los recursos son siempre limitados, ms aun cuando se est hablando de dispositivos mviles. En el momento en el que Android detecta que no hay los recursos necesarios para poder lanzar una nueva aplicacin, analiza los procesos existentes en ese momento y elimina los procesos que sean menos prioritarios para poder liberar sus recursos. Cuando el usuario regresa a una actividad que est dormida, el sistema simplemente la despierta. En este caso, no es necesario recuperar el estado guardado porque el proceso todava existe y mantiene el mismo estado. Sin embargo, cuando el usuario quiere regresar a una aplicacin cuyo proceso ya no existe porque se necesitaba liberar sus recursos, Android lo crea de nuevo y utiliza el estado previamente guardado para poder restaurar una copia fresca del mismo. Como se ya ha explicado, el usuario no percibe esta situacin ni conoce si el proceso ha sido eliminado o est dormido. 6.4. Modelo de seguridad La mayora de las medidas de seguridad entre el sistema y las aplicaciones derivan de los estndares de Linux 2.6, cuyo kernel, constituye el ncleo principal de Android. Cada proceso en Android proporciona un entorno seguro de ejecucin, en el que por defecto, ninguna aplicacin tiene permiso para realizar ninguna operacin o comportamiento que pueda impactar negativamente en la ejecucin de otras aplicaciones o del sistema mismo. Por ejemplo, acciones como leer o escribir ficheros privados del usuario no estn permitidas.
28

La seguridad en Android abarca desde el despliegue hasta la ejecucin de la aplicacin. Con respecto a la implementacin, las aplicaciones de Android tienen que est ar firmadas con una firma digital para poder instalarlas en el dispositivo. Dicha firma se hace a travs de un certificado, cuya clave privada ser la del desarrollador de dicha aplicacin.

No es necesario vincular a una autoridad de certificado, el nico cometido de l certificado es crear una relacin de confianza entre las aplicaciones. Mediante la firma, la aplicacin lleva adjunta su autora. Con respecto a la ejecucin, cada aplicacin Android se ejecuta dentro de un proceso separado. Cadauno de estos procesos tiene un ID de usuario nico y permanente (asign ado en el momento de la instalacin). Esto impone un lmite al proceso porque evita que una aplicacin tenga acceso directo a los datos crticos para el correcto funcionamiento del terminal. Uno de los beneficios de este requisito es que una solicitud no puede ser actualizada con una versin que no fue publicada por el autor original. Para establecer un permiso para una aplicacin, es necesario declarar uno o ms elementos <uses-permission> donde se especifica el tipo de permiso que se desea habilitar. Por ejemplo, si se quisiera permitir que una aplicacin puedamonitorizar mensajes SMS entrantes, en el fichero AndroidManifest.xml se encontrara algo como lo que sigue: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.app.myapp" <uses-permission android:name="android.permission.RECEIVE_SMS" /> </manifest>

En la clase "android.Manifest.Permission" se especifican todos los posibles permisos que se pueden conceder a una aplicacin.

El elemento <uses-permission> contempla una serie de atributos que definen y matizan el alcance el permiso dado:

29

android:name: Especificacin del permiso que se pretende conceder. Debe ser un nombre de alguno de los listados en la clase android.Manifest.Permission. android:label: Una etiqueta o nombre convencional fcilmente legible para el usuario. android:permissionGroup: Permite especificar un grupo asociado al permiso. Los posibles grupos se encuentran listados en la clase android.Manifest.permission_group. android:protectionLevel: Determina el nivel de riesgo del permiso, y en funcin del mismo influye en como el sistema otorga o no el permiso a la aplicacin. Oscila entre valores desde el 0 hasta el 3. android:description: Descripcin textual del permiso. android:icon: Icono grfico que puede ser asociado al permiso

7. LIBRERAS BSICAS
7.1 Lista de Libreras Android ofrece una serie de APIs para el desarrollo de sus aplicaciones. La siguiente lista proporciona una visin de lo que est disponible. Todos los dispositivos Android ofrecen al menos estas APIs: . android.util: El paquete bsico de servicios pblicos contiene las clases de bajo nivel, como contenedores especializados, formateadores de cadenas, y de anlisis XML de servicios pblicos.

android.os: El paquete de sistema operativo permite el acceso a los servicios bsicos como el paso de mensajes, la comunicacin entre procesos y funciones de reloj.

android.graphics: La API de grficos, es el suministro de las clases de bajo nivel como lienzos de apoyo, colores y las primitivas de dibujo. Tambin le permite dibujar sobre lienzos.

30

android.text: Las herramientas de procesamiento de texto para mostrarlo y analizarlo.

android.database: Proporciona las clases de bajo nivel necesario para la manipulacin de cursores cuando se trabaja con bases de datos.

android.content: El contenido de la API se utiliza para admirar el acceso a los datos y a la publicacin, proporcionando los servicios para hacer frente a los recursos, los proveedores de contenido y los paquetes.

android.view: Las vistas son un ncleo de la interfaz de usuario. Todos los elementos de la interfaz se construyen utilizando una serie de vistas que proporcionan los componentes de interaccin con el usuario.

android.widget: Construido sobre el paquete de Vista, estn las clases widget "aqu est uno que creamos antes", elementos de la interfaz de usuario para su uso en las aplicaciones. Se incluyen listas, botones y diseos.

com.google.android.maps: API de alto nivel que proporciona acceso a los controles de mapas que usted puede utilizar en su aplicacin. Incluye el control MapView as como la superposicin y la clase MapController utilizados para anotar y controlar dichos mapas.

android.app: Paquete de alto nivel que proporciona el acceso al modelo de solicitud. Este, incluye la actividad de servicios y las API que forman la base de todas sus aplicaciones.

android.provider: Para facilitar el acceso a los desarrolladores a determinados proveedores de contenidos estndar, el paquete proveedor ofrece clases para todas sus distribuciones.

android.telephony: Las APIs de telefona le dan la posibilidad de interactuar directamente con el dispositivo de Telfono, permitindole realizar, recibir y controlar las llamadas de telfono, su estado y mensajes SMS.

31

android.webkit: Ofrece funciones para trabajar con contenido basado en web, incluyendo un control WebView para incrustar los navegadores en sus actividades y un administrador de cookies. Libreras Avanzadas

Las bibliotecas ofrecen toda la funcionalidad que necesita para comenzar a crear aplicaciones en Android, pero no pasar mucho tiempo antes de que est dispuesto a profundizar en APIs avanzadas que ofrecen una funcionalidad ms emocionante. Android pretende abarcar una gran variedad de equipos mviles, de modo que tenga en cuenta que la adecuacin y aplicacin de las siguientes APIs variar en funcin del dispositivo a que se apliquen: android.location: Da las aplicaciones de acceso a la ubicacin fsica del dispositivo actual. Los servicios de localizacin ofrecen acceso genrico a informacin de localizacin utilizando cualquier posicin de hardware xing-Fi o tecnologa disponible en el dispositivo. android.media: Las API de los medios de comunicacin proporcionan soporte para reproduccin y grabacin de audio. android.opengl: Android ofrece un potente motor 3D que utiliza la API de OpenGL ES que usted puede utilizar para crear interfaces de usuario en 3D dinmico para sus aplicaciones. android.hardware: Cuando sea posible, el hardware de la API expone un sensor incluyendo la cmara, acelermetro, sensores y una brjula. android.bluetooth, android.net.wi , android and telephony : Proporciona el acceso a las plataforma hardware, incluyendo Bluetooth, Wi-Fi y el hardware de telefona.

7.2. Interfaces de usuario (View, Layouts) La interfaz de usuario se define en los archivos XML del directorio res/layout. Cada pantalla tendr un cdigo XML diferente. Disear una pantalla usando Java puede resultar complejo y poco eficiente, sin embargo, Android soporta XML para disear pantallas y define elementos personalizados, cada uno representando a un "subclase" especifica de view. Se pueden crear pantallas de la misma manera que se disean ficheros HTML.

32

Cada fichero describe un layout (una pantalla) y cada layout a su vez puede contener otros elementos. Para gestionar la interfaz de usuario, Android introduce las siguientes terminologas: View: Una view es un objeto cuya clase es android.view.View. Es una estructura de datos cuyas propiedades contienen los datos de la capa, la informacin especfica del rea rectangular de la pantalla y permite establecer el layout. Una view tiene: layout, drawing, focus change, scrolling, etc. La clase view es til como clase base para los widgets, que son unas subclases ya implementadas que dibujan los elementos en la pantalla. Los widgets contienen sus propias medidas, pero puedes usarlas para construir tu interfaz ms rpidamente. La lista de widgets que puedes utilizar incluyen Text, EditText, InputMethod, MovementMethod, Button, RadioButton, CheckBox, y ScrollView. -

Viewgroups: Un viewgroup es un objeto de la clase android.view.Viewgroup, como su propio nombre indica, un viewgroup es un objeto especial de view cuya funcin es contener y controlar la lista de views y de otros viewgroups. Los viewgroups te permiten aadir estructuras a la interfaz y acumular complejos elementos en la pantalla que son diseccionados por una sola entidad. La clase viewgroup es til como base de la clase layouts, que son subclases implementadas que proveen los tipos ms comunes de los layouts de pantalla. Los layouts proporcionan una manera de construir una estructura para una lista de views.

rbol estructurado de la interfaz UI: En la plataforma Android t defines una Activity del UI usando un rbol de nodos view y viewgroups, como vemos en la imagen de abajo. El rbol puede ser tan simple o complejo como necesites hacerlo, y se puede desarrollar usando los widgets y layouts que Android proporciona o creando tus propios views.

33

Figura 7.1: Estructura de Layout

Los views y viewgroups deben estar contenidos en los layouts, los cuales contienen otros elementos presentes en una vista. Dentro de cada layout podemos poner todos los elementos necesarios, incluidos otros layouts. As conseguiremos estructurar la pantalla de la manera deseada. Existen una gran variedad de layouts, en funcin de su posicionamiento en la pantalla y se describen a continuacin algunos de ellos: -

LinearLayout: Se les conoce como contenedores y sirven para reorganizar los elementos de nuestra aplicacin. Sus hijos son los views, viewgroup u otros layouts. Nos permitirn alinear sus hijos en una nica direccin, ya sea horizontal o vertical como se muestra en las siguientes imgenes. La orientacin predeterminada es horizontal. RelativeLayout: En este caso todos los elementos van colocados en una posicin relativa a otro. Aqu podemos jugar con las distancias entre elementos en la pantalla, la cual se expresa en pixeles. Absolute layout: Coloca los elementos en posiciones absolutas en la pantalla, teniendo en cuenta que la posicin (0,0) es el extremo superior izquierdo de la pantalla. A continuacin se puede ver un ejemplo para entender mejor la explicacin anterior. El absolute layout especifica la ubicacin exacta de sus hijos. TableLayout: permite colocar los elementos en forma de tabla. Se utiliza el elemento <TableRow> para designar a una fila de la tabla. Cada fila puede tener uno o ms puntos de vista. Cada vista se coloca dentro de una fila en forma de celda.
34

FrameLayout: Es un marcador de posicin que puede usarse para mostrar una nica vista. Se pueden agregar mltiples puntos de vista a un FrameLayout pero cada uno se acumular en la parte superior izquierda de la anterior. ScrollView: Es un tipo especial de FrameLayout ya que permite a los usuarios desplazarse por una serie de puntos de vista que ocupan ms espacio que el despliegue fsico. El scrollView solo puede contener un viewGroup y suele ser LinearLayout

8. CONCLUSIONES
Android es un sistema con un kernel basado en Linux, por ende es software libre y gracias a esto ha tenido una gran acogida por parte de la comunidad de desarrolladores de aplicaciones, empresas multinacionales, etc; quienes han visto en este sistema operativo una gran fuente de desarrollo. Como muestra de ello podemos ver en la actualidad que en algunos dispositivos de uso diario lo encontramos android como sistema base: Smarthfone, Tablet, Laptops, Netbooks, Portarretratos, etc.

Android posee una serie de versiones, las cuales al pasar el tiempo han ido recibiendo nuevas actualizaciones, ya que comenzando de la versin 1.0 que solo tenia las funciones bsicas de todo celular de la poca; a la actualidad, donde encontramos varias mejoras orientadas al usuario (interfaz grfica, modo intuitivo de manejo, aplicaciones en la nube, etc. Gracias al gran desarrollo y acogida de parte de los usuarios, se espera que a mediados del 2015 el 65% de los terminales del planeta cuentes con este sistema en la mayora de sus dispositivos diarios.

35

9. REFERENCIAS
-

http://proquest.safaribooksonline.com/9781933988672 http://www.lasmaestras.com/2009/11/android-application-development-2009ebook-download/ http://www.indianic.com/google-android-applications-development.html http://developer.android.com/intl/es/guide/basics/what-is-android.html http://developer.android.com/intl/es/guide/developing/eclipse-adt.html http://en.wikipedia.org/wiki/Android_(operating_system)#History http://www.helloandroid.com/node/243 http://developer.android.com/intl/es/reference/android/app/Activity.html

36

Вам также может понравиться