You are on page 1of 19

También se conoce que incluso algunos de los productores de PC's como ASUS. La línea de batalla entre sistemas operativos. proveeremos una visión general de Android y su SDK (Kit de Desarrollo de Software).com/cassiopeialabs . plataformas informáticas. lenguajes de programación. Los teléfonos móviles ya no son sólo para hablar – han sido capaces de almacenar datos y videos por algún tiempo. accesible en cualquier momento y lugar. una plataforma de código abierto para el desarrollo en móviles. Significativamente. Para ayudarte a lucrar de esta tendencia.html). el dispositivo móvil se está volviendo tan capaz para realizar tareas informáticas de todos los propósitos que está destinado a ser la próximo PC (computadora personal). presentaremos los temas a cubrir en cada capítulo. En este capítulo.facebook. Estamos emocionados por Android ya que es una plataforma avanzada que introduce un número de nuevos paradigmas en el diseño de estructuras (aún con las limitaciones de una plataforma móvil). Esperamos también un surgimiento en la programación de móviles en la industria de la Tecnología Informática (IT) ya que más y más aplicaciones de la IT empiezan a ofrecer contrapartes para móviles. y estructuras están siendo cambiadas y re-aplicadas a los dispositivos móviles. Al frente de este desarrollo se encuentran los dispositivos portátiles de mano que se están transformando en plataformas informáticas. y resaltar los beneficios de programar para la plataforma Android.android. paquetes clave.MANUAL DE ANDROID CAPITULO I CAPITULO I Presentando la plataforma informática de Android La computación continúa convirtiéndose en más “personal”.com/index. HP y DELL estarán produciendo dispositivos de varias formas de factores basados en el Android OS (Sistema Operativo Android). te mostraremos como usar Java para crear programas para dispositivos que funcionan en la plataforma Android de Google (http://developer. 2 www. mostrarte como tomar ventaja del código fuente de Android.

Figura 1-1. programación de UI (Interfaz de Usuario) y un número de otros aspectos del dispositivo. lo cual incrementa el rango y cuota de mercado para las aplicaciones móviles.MANUAL DE ANDROID CAPITULO I Una nueva plataforma para una nueva computadora personal. video.facebook. Esta nueva tendencia hace a los dispositivos móviles accesibles a través de lenguajes informáticos de propósitos generales. Es una plataforma comprensiva que ofrece un sistema operativo basado en Linux para el manejo de dispositivos. 3 www.com/cassiopeialabs . memoria y procesos. Las librerías de Android cubren telefonía. La plataforma Android abarca la idea de informática general para dispositivos móviles. gráficos. Los móviles son la nueva PC. El hecho de que hasta ahora dispositivos dedicados como los teléfonos móviles pueden contarse entre otras venerables plataformas generales de informática son grandes noticias para los programadores (ver Figura 1-1).

com/cassiopeialabs . Cuando trabajas con el Android SDK. En lugar de AWT y Swing. El Android SDK soporta la mayor parte de la plataforma Java edición standard (Java SE) excepto por el Abstract Window Toolkit (AWT) y Swing.MANUAL DE ANDROID CAPITULO I NOTA: Aunque haya sido construido para dispositivos móviles. podrías esperar a necesitar una Máquina Virtual Java (JVM) que es responsable de interpretar el runtime de códigos de bites de Java.facebook. La familiaridad y simplicidad del lenguaje de programación de Java unida con la extensiva biblioteca de clases de Android hace del mismo una irresistible plataforma para desarrollar programas.”) 4 www. Figura 1-2 Provee una visión del stack de software de Android. raramente sientes que estás codificando para un dispositivo móvil porque tienes acceso a la mayoría de clases de librerías que usas en una computadora de escritorio o un servidor . Esta máquina virtual se llama la Dalvik VM la cual exploraremos en otra sección más adelante “Delving dentro de la Dalvik VM”. la plataforma Android exhibe las características de una estructura de escritorio. (Mayores detalles en la sección “Entendiendo el stack de software de Android. Como estás programando aplicaciones en Java. Android ofrece su propio y optimizado JVM para ejecutar los documentos de clase Java compilados para contrarrestar las limitaciones del dispositivo móvil como memoria. velocidad del procesador y energía. Una JVM típicamente provee la optimización necesaria para ayudar a Java a alcanzar los niveles de desempeño comparado a los lenguajes compilados como C y C++. Android SDK tiene su propia moderna extensiva estructura de UI. Google hace esta estructura disponible a los programadores Java a través del Kit de Desarrollo de Software (SDK) llamado Android SDK.incluyendo una base de datos relacional.

5 www.facebook.MANUAL DE ANDROID CAPITULO I Figura 1-2: Vista en alto nivel del Android Software stack.com/cassiopeialabs .

Figura 1-3. Mobile Linux. Hasta ahora ningún OS se ha convertido en standard. accesibilidad. Microsoft's Windows Mobile. Las APIs disponibles y ambientes para desarrollar aplicaciones móviles son muy restrictivas y parecen quedar atrás cuando son comparadas con las estructuras de escritorio. A finales del 2007. Moblin (de Intel) y muchos otros propietarios de Oss.openhandsetalliance.MANUAL DE ANDROID CAPITULO I Historia de Android Veamos como Android llegó al panorama de los OS para móviles. Nick Sears y Chris White. Los “actores” principales en Android Inc.com).T-Mobile .Samsung . La plataforma Android promete apertura. incluían a Andy Rubin. fuentes de código abierto y una estructura de desarrollo de primera. Línea temporal de Android. Algunos de los miembros prominentes de la alianza son los siguientes: . Aquí es donde entra Google.Sony Ericsson 6 www. Los teléfonos móviles usan una variedad de sistemas operativos como Symbian OS.com/cassiopeialabs . un grupo de líderes industriales se unieron con la Plataforma Android para formar la Alianza Abierta para Handsets (http://www.Motorola . Google adquirió la compañía inicial Android Inc. Rich Miner.facebook. en el 2005 para empezar el desarrollo de la plataforma Android (ver figura 1-3). iPhone OS (basado en Mac OS X).Sprint Nextel .

0.0. Más o menos el mismo tiempo. Android fue diseñado para servir las necesidades de los operadores móviles.0 y 1.Toshiba .com/cassiopeialabs . Google hizo el código fuente de la plataforma Android disponible bajo la licencia de código abierto de Apache. que está solamente basada en la versión 1. El apoyo de Android para una base de datos relacional en el dispositivo también jugó parte en la aceptación temprana. fabricantes de significativa a través del código abierto Apache License. Android atrajo un seguimiento temprano por sus características completamente desarrolladas para explotar la gama tecnológica ofrecida por los recursos web y para mejorar esa experiencia con almacenes locales de datos en el dispositivo mismo. NOTA: Los productores de dispositivos portátiles no necesitan pagar ninguna tarifa de licencia para cargar Android en los portátiles o móviles.Vodafone . Los miembros se han propuesto publicar propiedad intelectual 7 www. T-Mobile anuncio la disponibilidad de T-Mobile G1. el primer smartphone basado en una plataforma Android. Google anunció la disponibilidad de Android SDK Release Candidate 1. Profundizaremos algunas de estas características en el Capítulo 3.Texas Instruments Parte de las metas de la alianza es innovar rápidamente y responder mejor a las necesidades del consumidor.1 Android no tenía soporte para teclados virtuales. y su primer resultado clave fue la Plataforma Android. necesitando así los dispositivos tener teclados portátiles y desarrolladores de aplicaciones. Google también lanzó una versión sin bugs 1. A finales del 2008 Google lanzó un dispositivo de mano llamado Android Dev Phone 1 que fue capaz de ejecutar aplicaciones Android sin estar atado a ningún proveedor de red celular.facebook. Este re-uso no solo se aplica a servicios sino también a la interfaz de datos y usuario (UI). la plataforma Android tiene un número de características arquitecturales que mantiene esta apertura a la realidad. En Octubre del 2008. En Septiembre del 2008. Unos cuantos días después. Version 2. una de sus metas arquitectónicas clave era permitir interactuar a las aplicaciones unas con otras y reusar componentes una de las otras. El objetivo de este dispositivo (a un costo aproximado de $400. Como resultado.1 del OS. Cuando Android fue publicado.Google . En los lanzamientos 1.Intel .MANUAL DE ANDROID CAPITULO I . EL SDK de Android fue emitido primero como “vista previa” publicado en Noviembre del 2007.0.00) era permitir a los desarrolladores experimentar con un dispositivo real que podría ejecutar el Android OS sin ningún contrato.

0 presenta posibilidades interesantes para usar HTML.) En septiembre del 2009 vino el lanzamiento 1. lanzado a finales del 2009. en un mes. Motorola Droid. Profundizando en la Dalvik VM (Virtual Machine / Máquina Virtual) Como parte de Android. viene con 256MB de RAM a una tarjeta microSD de 16GB y un procesador Arm Cortex de 550MHz. 8 www. Google ha pasado un buen tiempo pensando en optimizar diseños para dispositivos de mano de poca energía. Este lanzamiento ha introducido capacidades avanzadas de búsqueda y de texto a voz. Más y más aplicaciones basadas en Android son introducidas todos los días. junto con Android Market operado por Google. Estas tiendas de aplicaciones. Los dispositivos de mano quedan detrás de sus contrapartes de escritorio en memoria y velocidad de ocho a diez años. así como nuevos tipos de tiendas online independientes. También tienen poder limitado para la transmisión de datos. Android 2. Estas nuevas posibilidades de programación son cubiertas en el capítulo 17.com/cassiopeialabs . donde discutiremos el Móvil Titanium. una tarjeta SD de 1GB y un procesador Qualcomm MSM7201A de 528MHz. igual a un total de 20MB.1GHz y 4GB de RAM. facilitando una inundación de dispositivos Android a tiempo para la temporada navideña del 2009.6 del Android OS y. En el capítulo 19 analizaremos como Android está bien posicionado en el ambiente móvil. son cubiertos en el capítulo 18. lanzado a finales del 2008 viene con 192MB de RAM. Cubriremos búsqueda en Android en el Capítulo 14. (Cubriremos de texto a voz en el Capítulo 15. Con soporte para HTML 5. (Cubriremos las carpetas en vivo en el capítulo 12 y los widgets en el capítulo 13.5 SDK en abril del 2009 junto con una cantidad de otras características. widgets y carpetas en vivo.MANUAL DE ANDROID CAPITULO I físicos. como capacidades avanzadas de grabación. Estos temas son cubiertos en el Capítulo 16.) Este lanzamiento ha también introducido gestos y multi-touch.0 le siguió.facebook. Android arregló este problema lanzando el 1. Android 2. la RAM total de un dispositivo de mano puede ser tan pequeña como 64MB y su espacio disponible para aplicaciones sería tan pequeño. Compara eso con la laptop Dell de más bajo precio la cual viene con un procesador dual-core de 2. NOTA: El teléfono T-Mobile G1.

dex). obligando a los diseñadores de móviles a optimizar todo.dex. mientras que el equivalente en versión . la Dalvik VM toma los archivos de clase Java generados y los combina en uno o más archivos Dalvik ejecutables (.dex de la aplicación de navegador web de Android es de unos 200 K. pero esta biblioteca se encapsula en un API Java de alto nivel. como resultado de la Dalvik VM.jar . estas bibliotecas de sistema podrían usar tanto como de 10 a 20MB. Ha sido anticipado que formará parte de futuras versiones. Rehúsa información duplicada de archivos de clase múltiple.0 parece tener los recursos necesarios para un compilador JIT. Esta paranoia de rendimiento se extiende en el resto del Android SDK. Android proporciona una biblioteca nativa optimizada basada en C para acceder a la base de datos SQLite. Por ejemplo. usted tiene que comenzar con los archivos de clases Java y luego convertirlos en archivos linkeables . Google argumentó que el impacto de la compilación JIT no sería significativo. En segundo lugar. todo 9 www. aun con su optimizada JVM. La empresa puede justificar esta elección porque muchas de las bibliotecas del núcleo de Android. no se basa en el código de bytes de Java sino en archivos . Por ejemplo.dex de la aplicación de reloj de alarma pesa alrededor de 50K. Si ves la lista de paquetes en Android. pero no está habilitado en la versión final. pero ha escogido omitir un compilador just-in-time (JIT). El código base de 2. Por ejemplo.) Primero. reduciendo efectivamente el requerimiento de espacio (descomprimido) a la mitad de un archivo tradicional . (La figura clave en la implementación de esta JVM de Google es Dan Bornstein. Esto significa que no se puede ejecutar directamente el código de bytes Java. Google ha puesto la recolección de residuos en la Dalvik VM. la Interfaz Programadora de Aplicaciones (API) de gráficos de Java son realmente clases delgadas contenedoras de todo el código nativo utilizando la Interfaz Nativa de Java (JNI).com/cassiopeialabs . el archivo . Google espera lograr 30 por ciento menos de instrucciones como resultado.jar. verás que son completas y extensas. la máquina virtual de Dalvik utiliza un tipo diferente de generación de código de ensamblaje.MANUAL DE ANDROID CAPITULO I Como resultado. en las primeras versiones. Cabe destacar que el código ejecutable final en Android. De acuerdo a Google. los requerimientos de desempeño en dispositivos de mano son severos.jar sin comprimir es de unos 500K. quien compuso the Dalvik VM-Dalvik es en nombre de un pueblo en Islandia. Estos problemas llevaron a Google a volver a revisar la implementación standard de JVM en muchos aspectos. De manera similar. la Android SDK utiliza ampliamente XML para definir diseños de interfaz de usuario. Sin embargo.dex. Finalmente. incluyendo las bibliotecas de gráficos. El archivo . son implementadas en C y C + +. y aproximadamente el doble de tamaño que en su versión .facebook. Debido a que la mayor parte del código nuclear está en C y C + +. en el que se utiliza registros como unidades principales de almacenamiento de datos en lugar de stacks.

La plataforma Java Edición Standard (Java SE) es adecuada para configuraciones de escritorio y estaciones de trabajo. Dalvik VM optimizada. y el ambiente de desarrollo Java. Los desarrolladores pueden estar seguros de que cuando se desarrollen nuevas aplicaciones. 10 www. Ya que estamos en el tema de las consideraciones de diseño de Android. Android proporciona mecanismos especiales para poder usar estos datos XML. La plataforma Android viene con todo lo que necesita en un solo paquete: el sistema operativo. todas las bibliotecas principales estarán disponibles en el dispositivo. Déjenos ofrecer una breve visión general de Java ME antes de comparar los dos enfoques.MANUAL DE ANDROID CAPITULO I este XML es compilado en archivos binarios antes de que estos se convierten en archivos binarios residentes en los dispositivos. La Figura 1-4 muestra la disponibilidad de Java para configuraciones informáticas diversas. La Plataforma Java. Micro Edition (Java ME)? Comparando Android y Java ME Como ya hemos visto. JNI.com/cassiopeialabs . Android ha tomado un comprensivo. hay que responder a esta pregunta: ¿Cómo se haría comparar y contrastar Android a la Plataforma Java. bibliotecas centrales. controladores de dispositivo. dedicado y enfocado acercamiento a sus esfuerzos de plataforma móvil que van más allá de una simple solución basada en JVM.facebook. Edición Empresarial (Java EE) está diseñada para configuraciones del servidor. Este enfoque integral difiere de otros esfuerzos móviles como Java ME.

Java define una configuración llamada Connected Limited Device Configuration (CLDC). menor número de clases dentro de los paquetes.MANUAL DE ANDROID CAPITULO I Figura 1-4. 11 www.facebook. Java ME para CDC implica una versión recortada de Java SE con menos paquetes. Los paquetes opcionales que se instalan en la parte superior de la base y el CDC APIs CLDC son entendidos como "perfiles" que están usando el proceso estándar JSR. Dos son los conjuntos de configuración que están disponibles para Java ME. Las APIs disponibles para varias configuraciones de Java son contrastadas en la Figura 1-5. Cada perfil definido hace que un conjunto adicional de APIs esté disponible para el desarrollador. La primera configuración se llama Connected Device Configuration (CDC). y aún menos campos y métodos dentro de esas clases. Configuraciones Informaticas Java La Plataforma Java Edición Micro (Java ME) es una edición de Java que está recortada para dispositivos más pequeños. Para aparatos y dispositivos que son más limitados.com/cassiopeialabs .

Java Database Connectivity (JDBC) y API de Java. Las APIs de configuración CDC incluyen la API java. Swing. En consecuencia. la especificación de Java 12 www. incluyendo Bluetooth. Los perfiles adicionales disponibles sobre CDC hacen API javax. OpenGL para Embedded Systems (OpenGL ES). que es capaz de funcionar en dispositivos cuya memoria es tan baja como 128K. (La K en KVM representa kilobytes).net.xlet disponible para programadores de aplicaciones (Xlets representan aplicaciones en la configuración CDC). no hay garantías de que se ejecute en los dispositivos compatibles con sólo ediciones micro.microedition. CLDC puede ejecutar APIs adicionales bajo MIDP (Mobile Information Device Profile) 2. Disponibilidad de API Java La plataforma Java CLDC está alojada en un especializado y reducido JVM llamado K Virtual Machine (KVM). Media API. si usted tiene una aplicación Java que se ejecuta en el escritorio. JAXP RPC. En general.MANUAL DE ANDROID CAPITULO I PRECAUCIÓN: Tanto CLDC como CDC podrían dar soporte para algunas APIs Java fuera de Java SE. una interfaz de usuario paquete llamado LCDUI.0. *namespace.microedition. Los paquetes principales son MIDlets (aplicaciones simples).com/cassiopeialabs . Además de una configuración CDC encontrarás más de unos diez paquetes opcionales que se pueden ejecutar. además de las APIs de configuración CLDC. Java API para procesamiento XML (JAXP).awt. Java Remote Method Invocation (Java RMI). y sus clases no pueden comenzar con el java. juegos y medios de comunicación. Java 2D. la API java. Figura 1-5. Esta API incluye un número de paquetes bajo javax. *. y más APIs de seguridad.facebook.

Android ejecuta códigos de bytes . la uniformidad. Como hemos mencionado anteriormente. De hecho. También se espera que JavaFX (http://javafx. No se puede ejecutar en dispositivos de gama baja a menos que o hasta que las configuraciones de los dispositivos mejoren. Sólo la interpretación runtime del código de byte Java no es posible. La JSR para cada especificación Java ME son más difíciles de seguir. pero el KVM se dirige a un dispositivo de nivel inferior con mucho menos memoria. Compatibilidad Java: Debido a que en la máquina virtual Dalvik. NOTA: JavaFX es un esfuerzo de interfaz de usuario de Sun para mejorar dramáticamente la funcionalidad como applet en los navegadores. veamos cómo se compara con Android. Java ME tiene múltiples modelos de interfaz de usuario para cada configuración. por otro lado. Ahora que tiene una base de Java ME. dependiendo de las características compatibles con el dispositivo: MIDlets. Múltiples configuraciones de dispositivo: Java ME se dirige a dos tipos de dispositivos micro y ofrece soluciones distintas y estandarizadas para cada uno.facebook. Android. a excepción de la AWT y Swing. Xlets. Soporte para Java SE: En comparación con el soporte para Java SE en CDC.com/cassiopeialabs . Sin embargo. Adopción: Existe un amplio respaldo para Java ME en dispositivos móviles porque la mayoría de teléfonos móviles lo soportan. el soporte Android para Java SE es un poco más completo. se aplica a un solo modelo. Android tiene su propia interfaz de usuario.com) desempeñe un papel cada vez mayor en el entorno móvil para Java.MANUAL DE ANDROID CAPITULO I ME incluye más de 20 JSRs.dex en lugar de códigos bytes de Java. es más fácil de entender que Java ME. Toman más tiempo para madurar y encontrar implementaciones para ellos puede ser difícil. Respuesta: Se espera que la máquina virtual Dalvik sea más optimizada y más sensible en comparación con la JVM estándar compatible sobre un dispositivo configurado de manera similar. la interfaz 13 www. Esto no debería ser un problema importante siempre que Java esté compilado con el estándar de archivos de clase Java. Puede compararse el Dalvik VM al KVM. Facilidad de comprensión: Android está dirigido a un solo modelo de dispositivo por ello. el costo y facilidad de desarrollo en Android son razones de peso para que los desarrolladores Java programen en Android. el AWT y Swing. Ofrece un modelo de interfaz de usuario de programación declarativa que también es más amigable para los diseñadores.

com/cassiopeialabs .MANUAL DE ANDROID CAPITULO I de usuario declarativa de Android se asemeja a más avanzadas plataformas de interfaz de usuario como Microsoft Silverlight y JavaFX de Sun. En el núcleo de la plataforma Android está la versión del kernel de Linux 2. Figura 1-6. responsable de los controladores del dispositivo.facebook. Detallado Android SDK del software stack. 14 www. Entendiendo el software stack de Android Hasta ahora hemos cubierto la historia de Android y sus características de optimización incluyendo la Dalvik VM. y hemos visto brevemente el stack de programación de Java disponible. y otras tareas del sistema operativo. La Figura 1-6 es un buen lugar para comenzar esta discusión.6. acceso a recursos. En esta sección. administración de energía. Los controladores del dispositivo proveídos incluyen Display.29. nos gustaría cubrir el aspecto de desarrollo de Android.

Dado que las aplicaciones Java acceden a estas bibliotecas principales.facebook. etc.sqlite. Memoria Flash. Las bibliotecas principales de la APIs Java de Android incluyen telefonía. el C Runtime Library (libc). WiFi. Estas bibliotecas son responsables de la grabación y reproducción de formatos de audio y vídeo. Secure Sockets Layer (SSL). en la parte superior del kernel. la mayoría-si no todas-de la aplicaciones en un dispositivo Android.MANUAL DE ANDROID CAPITULO I Cámara. etc. El sistema de biblioteca de C basado en Berkeley Software Distribution (BSD) está ajustado (aproximadamente a la mitad de su tamaño original) para dispositivos integrados basados en Linux. recursos. interfaz de usuario. Aunque el núcleo es Linux.com/) PacketVideo OpenCore. que se escribe en C y C++.) Los programadores desarrollan aplicaciones de usuario final sobre esta Java API. los proveedores de contenido (datos) y administradores de paquetes (instalación. y el IPC (inter-comunicación del proceso). Asentado en el siguiente nivel. Las bibliotecas de medios se basan en (http://www. Una biblioteca llamada Surface Manager controla el acceso al sistema de visualización y soporta 2D y 3D. Como hemos indicado en los apartados anteriores. Skia también forma el núcleo del navegador Google Chrome. Usted también puede adquirir y utilizar herramientas destinadas a SQLite para bases de datos Android. cada aplicación tiene su propia instancia de VM. La biblioteca FreeType es responsable del soporte de la fuente. FreeType. Android también es compatible con una biblioteca común de gráficos de Google 2D llamada Skia. sin embargo. SQLite (http://www. como el T-Mobile G1 o Motorola Droid son desarrolladas en Java y se ejecutan a través de la máquina virtual Dalvik. navegador. WebKit. lugares. está una serie de bibliotecas en C / C++ como OpenGL. la puerta de entrada a la plataforma Android.com/cassiopeialabs . seguridad. La biblioteca WebKit es responsable del soporte de los navegadores. Teclado. se basan en una implementación de OpenGL ES del 15 www. Contactos. Dalvik está optimizado para ejecutar múltiples instancias de máquinas virtuales (VMs). SQLite y medios. Algunos ejemplos de aplicaciones de usuario final en el dispositivo incluyen Inicio.org/) es una base de datos relacional que está disponible en el dispositivo mismo. SQLite es también un esfuerzo independiente de código abierto para bases de datos relacionales y no directamente relacionados con Android. es la misma biblioteca que soporta Google Chrome y Safari de Apple. La mayor parte de la estructura de la aplicación tiene acceso a estas bibliotecas del núcleo a través de la máquina virtual Dalvik. teléfono.packetvideo. Las API 3D en Android. Audio.

telefonía. Desde una perspectiva móvil. auriculares.com/cassiopeialabs . EDGE. independientemente del procesador. Desde la perspectiva de los medios de comunicación. Ambos enfoques apoyan al emulador que usted puede utilizar para ejecutar. depurar y probar sus aplicaciones. la programación de la interfaz de usuario.MANUAL DE ANDROID CAPITULO I grupo Khronos (http://www. vídeo e imágenes. Emulador de Android Android SDK cuenta con un plug-in Eclipse llamado Android Development Tools (ADT). (Vamos a cubrir ADT en profundidad en el capítulo 2. dependiendo del hardware.org/qemu/) desarrollado por Fabrice Bellard. 3G. Desarrollo de aplicaciones para el usuario final con el Android SDK En esta sección. También le mostramos algunos fragmentos de código.facebook. QEMU permite la emulación a nivel de CPU. Usted utilizará este Entorno de Desarrollo Integrado (IDE) para el desarrollo. la plataforma Android es compatible con los formatos más comunes para audio. Brevemente hablaremos del Emulador Android.khronos. Android tiene APIs con soporte para Bluetooth. componentes fundamentales de Android. y el Sistema Global para Comunicaciones Móviles (GSM) telefonía. WiFi.org). El emulador con todas las funciones Android imita la mayoría de las funciones del dispositivo. Usted ni siquiera necesita el dispositivo en si para el 90 por ciento del desarrollo de su aplicación. OpenGL ES contiene subconjuntos de OpenGL que están dirigido a los sistemas incrustados. medios de comunicación. tendrá que utilizar las herramientas de línea de comandos en su lugar. Las limitaciones del emulador incluyen conectividad USB. animación y OpenGL. El emulador de Android realiza su trabajo a través de una fuente abierta "procesador emulador "tecnología llamada QEMU (http://bellard. le presentaremos a las APIs de alto nivel Java de Android que usará para desarrollar aplicaciones de usuario final en Android. simulación de batería. Esta es la misma tecnología que permite la emulación de un sistema operativo encima de otro. servicios. y para probar sus aplicaciones Java. 16 www.) También puede utilizar el SDK de Android y en vez de utilizar ADT. depuración. cámara y captura de video. y Bluetooth.

NOTA: Muchos gráficos y estaciones de trabajo científicas de gama alta de HP y Sun se basan en procesadores RISC avanzados. El emulador ejecuta la versión Android de Linux en este procesador simulado.MANUAL DE ANDROID CAPITULO I Con el emulador de Android. Las pantallas o ventanas en Android 17 www. Nintendo DS y Game Boy Advance se ejecutan en la arquitectura ARM versión 4.html.000 transistores. Luego se carga estas definiciones de vista XML como ventanas en su aplicación de UI.com/guide/developing/tools/emulator. Incluso los menús en su aplicación se cargan desde archivos XML. el procesador está basado en ARM (Advanced RISC Machine). De hecho.android. Apple Newton se basa en el procesador ARM6. JavaFX. presentando flexibilidad en el diseño mucho más allá de la ofrecida por MFC. Silverlight de Microsoft y Mozilla XML Use Interface Language (XUL) entran en este nuevo tipo de estructura de cuarta generación. Puede encontrar más detalles sobre el emulador en la documentación del SDK de Android en http://developer. ARM es ampliamente utilizado en dispositivos portátiles y otros dispositivos electrónicos integrados donde un menor consumo de energía es importante. NOTA: En Android. en el que se logra sencillez de diseño rapidez a través de un número reducido de instrucciones en un conjunto de instrucciones.2 millones (3. en el que la interfaz de usuario es declarativa y temática independientemente. Comparado con eso. La interfaz de usuario de Android es esencialmente una estructura de cuarta generación. La Android UI. estructuras con todas las características de interfaz de usuario. 2 millones) de transistores.facebook. Gran parte del mercado móvil utiliza procesadores basados en esta arquitectura. se programa utilizando un paradigma de interfaz de usuario moderno a pesar de que el dispositivo para el que se está programando sea uno portátil. con aproximadamente 30. La interfaz de usuario de Android (UI) Android utiliza una estructura para la interfaz de usuario que se asemeja a otras basada en el ordenador de escritorio.com/cassiopeialabs . Dispositivos como el iPod. ARM es un microprocesador con arquitectura de 32 bits basado en RISC (Reduced Instruction Set Computer). Por ejemplo. La estructura de la UI Swing basada en Java sería la tercera generación. si se tiene en cuenta el API tradicionalmente basado en C de Microsoft Windows de primera generación y el MFC (Microsoft Foundation Classes) basado en C++ de segunda generación. el clásico Pentium contiene 3. Programar en la interfaz de usuario de Android implica declarar la interfaz en archivos XML. es naturalmente más moderno y asincrónico.

facebook. La estructura hace uso de recursos de manera novedosa para hacer su uso fácil. Los protocolos se ubican en su lugar a fin de que Android pueda administrar el estado mientras el usuario oculta. Las Views son los bloques constructores básicos de Android. Android escogerá el más adecuado para mostrar el sitio web. y además se pueden combinar para formar vistas compuestas llamadas view groups. así también los no tan familiares como definiciones de vista basadas en XML. componente reemplazable en Android. He aquí un ejemplo donde los ID de recurso son automáticamente generados para recursos definidos en archivos XML: 18 www. acciones.com/cassiopeialabs . Aprenderá más de los intents en el Capítulo 3. descansa en un nuevo concepto llamado intent.MANUAL DE ANDROID CAPITULO I a menudo son referidas como actividades. Va a tener una idea de estos conceptos básicos en Capítulo 2. Android también tiene soporte intensivo para recursos. Uno de los conceptos clave de la estructura de Android es la gestión del ciclo de vida de las ventanas de actividades. junto con otras partes de Android. junto con una introducción a la configuración del ambiente de desarrollo Android. pedimos a Android ejecute una ventana adecuada para mostrar el contenido de un sitio web. Los componentes fundamentales de Android La estructura de la UI de Android. que comprenden varias vistas que un usuario necesita a fin de lograr una unidad lógica de acción. Las Views usan internamente los conceptos familiares de canvas. intuitivo y conveniente. y la interacción del usuario. Una actividad que alberga estas vistas compuestas que incluyen views y view groups. Dependiendo de la lista de navegadores instalados en el dispositivo. es la UI lógica. comunicaciones entre procesos y registros de aplicación. detiene y cierra ventanas de actividades. He aquí un ejemplo de uso de la clase intent para llamar o empezar un navegador: En este ejemplo. modelos de publicación y subscripción. Un intent es una mezcla de ideas como exhibición de mensajes. dibujo. a través de un intent. restaura. los cuales incluyen elementos familiares como strings y bitmaps.

una herramienta poderosa para desarrolladores de aplicaciones. resources y proveedores de contenido promueven la accesibilidad en la plataforma Android) 19 www. (En el Capítulo 3 discutiremos acerca de como los intents. (El capítulo 3 cubre los recursos del archivo R.MANUAL DE ANDROID CAPITULO I Cada ID autogenerado en esta clase corresponde a un elemento en un archivo XML o al documento en su totalidad. usará estos ID's generados en su lugar.java en mayor detalle.com/cassiopeialabs . La base de datos subyacente SQLite hace de esta facilidad de proveedores de contenido.) Otro concepto nuevo en Android es el content provider.facebook. Un content provider es una abstracción en una fuente de datos que lo hace verse como un emisor y consumidor de servicios RESTful. Donde sea que usted guste usar esas definiciones XML. Esta redirección ayuda mucho cuando se trata de localizaciones.