"Android de la A a la Z" -- Unidad 1

2,224 views

Published on

***Proyecto PAPIIT IN102210***
UNAM. Facultad de Ingeniería.

Integrantes:
JUAN JOSE CARREON
J. ULISES GONZALEZ MEDINA
ANA LAURA GARCÍA ACOSTA
OMAR SIBAJA BAUTISTA
ROBERTO SOSA HIGAREDA

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,224
On SlideShare
0
From Embeds
0
Number of Embeds
333
Actions
Shares
0
Downloads
207
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

"Android de la A a la Z" -- Unidad 1

  1. 1. Android de la A a la Z Unidad 1 “Conociendo Android”Breve historia de la programación en dispositivos embebidosLos desarrolladores de aplicaciones para celulares han sido parte de un grupo mayor de programadoresdenominados desarrolladores de dispositivos embebidos; los cuales fueron considerados como menosglamorosos que los orientados a la construcción de aplicaciones para el escritorio o, posteriormente, a laweb. Por otra parte, esos desarrolladores parecían estar condenados a bailar con la más fea, pues eldesarrollo para dispositivos embebidos al estar orientado hacia hardware y software con el mínimo deprestaciones, documentadas pobremente por sus productores.La mayoría de los dispositivos embebidos han ejecutado código propietario, el que conforme pasó eltiempo y aquellos se volvieron más complejos y con mayor memoria disponible, como los primeros PDAs,sistemas caseros de seguridad y GPSs, tuvieron que migrar hacia sistemas operativos más complejos,robustos y estandarizados, hace poco menos de una década, bajo la forma tanto de sistemas propietarioscomo abiertos, siendo entonces cuando el desarrollo de celulares generó estrategias de desarrollo deaplicaciones propias, diferentes a las de los dispositivos embebidos. En el caso del desarrollo deaplicaciones Android, éstas se pueden desarrollar en cualquier sistema operativo en el que esté disponibleel compilador del Android SDK.Open Handset AllianceLa Open Handset Alliance (Alianza para los Dispositivos Móviles Abiertos) es un grupo de 65 empresas detecnología y móviles que se han unido para acelerar la innovación en telefonía móvil y ofrecer a losconsumidores tecnología de calidad, a buen precio y sobre todo una mejor experiencia móvil. Handesarrollado Android™, la primera plataforma móvil completa, abierta y libre. Están comprometidos adesplegar comercialmente teléfonos y servicios utilizando la plataforma Android. Cada una de susintegrantes aporta a la organización y a los productos resultantes lo que tiene: propiedad intelectual,tecnología, producción y apoyo comercial, entre otros.Sus objetivos primordiales son: 1. Crear mejores teléfonos para los consumidores 2. Innovar desde el concepto del código abierto 3. Actuar de forma globalLo cual beneficiaría a los consumidores con productos mejores y más baratos, así como a los propiosproductores porque reparten los gastos y reducen la inversión.¿Qué tipo de empresas están en la Open Handset Alliance?Todas las partes del ecosistema móvil están representadas en la Open Handset Alliance. Los miembrosincluyen a operadoras de telefonía móvil, fabricantes de teléfonos móviles, compañías de semiconductores,empresas de software y empresas de comercialización, destacando T-Mobile, Telecom Italia, TexasInstruments, Intel, NVIDIA, HTC, LG Electronics, Motorola, eBay, Samsung y Google. 1Elaborado por: J. Ulises González Medinaandroid.unam@gmail.comNoviembre 2011Versión 1.2
  2. 2. Android de la A a la Z Unidad 1 “Conociendo Android”¿Qué es Android?Android es un stack de software para dispositivos móviles que incluye unsistema operativo, con base en el kernel 2.6 de Linux; middleware, yaplicaciones clave. El sistema es muy ligero y completamente equipado.El SDK de Android provee herramientas y APIs necesarias para comenzar adesarrollar aplicaciones en la plataforma Android, utilizando el lenguaje deprogramación Java. Una plataforma de software diseñada para proveer unaexperiencia de usuario personalizada para los usuarios de dispositivosmóviles. Está adaptado para ofrecer servicios web avanzados, e-mail, redessociales y entretenimiento a los consumidores.Las aplicaciones de Android son desarrolladas en lenguaje Java, el que además de proporcionar losbeneficios mencionados en el capítulo 1, acepta y ejecuta aplicaciones desarrolladas en lenguaje C.¿Qué es la máquina virtual Dalvik?La plataforma Android emplea lenguajes de alto nivel, principalmente Java, para realizar proyectos deprogramación, aunque esto no es totalmente cierto; por ejemplo, en el caso de Java si bien soporta unabuena parte de la Java Plataform, Standard Edition (Java SE) no lo hace con su Abstract Window Toolkit(AWT) ni con Swing. El Android SDK dispone de su propio UI framework, al programar aplicaciones Androiden Java se requeriría una Java Virtual Machine (JVM) que se responsabilizara de interpretar bytecode Javaejecutable, pues el JVM ha sido el medio para que los programas Java logren ser tan eficientes como losdiseñados con lenguajes compilados como C y C++. Esto no sucede con Android, ya que dispone de un 2Elaborado por: J. Ulises González Medinaandroid.unam@gmail.comNoviembre 2011Versión 1.2
  3. 3. Android de la A a la Z Unidad 1 “Conociendo Android”medio de optimización propio, diferente al JVM; la máquina virtual (VM) Dalvik, que ejecuta archivoscompilados de clases Java a fin de superar limitaciones de dispositivos móviles relacionadas con memoria,velocidad del procesador y energía.En general, se supone que los dispositivos móviles estarían entre ocho y diez años atrás de sus contrapartesen las PC de escritorio; por ejemplo, el teléfono móvil T-Mobile G1, que hacia finales de 2008 llegó almercado contaba con 192 MB de RAM, una tarjeta SD de 1GB, y un procesador a 528 MHz QualcommMSM7201A, el cual entonces podría haberse comparado con la computadora de escritorio Dell máseconómica, la cual disponía de procesador dual-core a 2.1 GHz y 2GB de RAM.La revisión y mejora de la implementación estándar de la JVM condujo al diseño de la Dalvik VM, la cual, enprimer lugar, recibe archivos class Java y los combina en uno o más archivos Dalvik Executable (.dex),reusando información duplicada de múltiples archivos class y reduciendo, sin compresión, susrequerimientos de espacio aproximadamente a la mitad de lo ocupado por archivo .jar convencional. Porejemplo, el archivo .dex de la app del navegador en Android es de 200K, comparado con la versióndescomprimida .jar de 500K; el archivo .dex de la app del reloj de alarma es de 50K, aproximadamente lamitad de su versión .jar.En segundo lugar, se ha afinado la recolección de basura en la Dalvik VM, omitiendo inicialmente contarcon un compilador just-in-time (JIT), lo cual se justificó ya que las bibliotecas esenciales, core, de Androidestán implementadas en C y C++, siendo poco significativa una compilación JIT. Finalmente, pero no menosimportante, la Dalvik VM emplea un tipo diferente de generación de código ensamblador, al emplearregistros como unidades primarias de almacenamiento de datos en lugar de la pila, reduciendo así un 30por ciento el número de instrucciones.El código ejecutable Android generado por la Dalvik VM no se apoya en bytecode Java, sino en su lugar enarchivos .dex. Lo cual significa que no se puede ejecutar Java bytecode directamente, sino iniciar conarchivos class Java y convertirlos en archivos .dex linkable. La búsqueda de una mejora en la eficiencia delos programas Android está presente en todo su SDK, lo cual lleva a emplear ampliamente XML para definirUI layouts, dichos archivos XML se compilan a archivos binarios antes de residir en los dispositivos,empleándose mecanismos especiales para usar dichos datos XML.Con la plataforma Android no sólo se ha buscado una mejor eficiencia, sino también más eficacia, al sermás consistente con las limitaciones y posibilidades de los diferentes móviles, buscando que aplicacionesdesarrolladas para un dispositivo en particular sean transportables a cualquier otro dispositivo que utilice laplataforma, algo que no sucede con otras plataformas, por ejemplo, la Java Plataform, Micro Edition (JavaMe), la cual dispone de dos configuraciones la Connected Device Configuration (CDC) orientada adispositivos de cómputo con restricciones y la Connected Limited Device Configuration (CLDC) paradispositivos aún más restringidos, los cuales cuentan con APIs, no sólo incompatibles entre sí, sino con lasversiones Java SE y la Java EE. El enfoque que aplica Android es poder ejecutarse con base en sólo unmodelo en cualquier dispositivo móvil que cumpla con un mínimo de especificaciones.Dalvik está diseñada para permitir ejecutar varias instancias de la máquina virtual simultáneamente,delegando en el sistema operativo subyacente el soporte de aislamiento de procesos, gestión de memoria 3Elaborado por: J. Ulises González Medinaandroid.unam@gmail.comNoviembre 2011Versión 1.2
  4. 4. Android de la A a la Z Unidad 1 “Conociendo Android”e hilos. No está alineada ni con el perfil Java SE ni con el Java ME Class Library, emplea su propia bibliotecaconstruida como un subconjunto de la implementación Apache Harmony.Los programas Android se compilan en Archivos .dex (Dalvik Executable), los cuales a su vez se compactanen un solo archive.apk (Android Package) en el dispositivo. Cada aplicación Android es compilada yempacada en un solo archive que incluye todo el código de la aplicación (archivos .dex), así como losrecursos (archivos .res), los archivos assets, y el archivo manifest (los cuales se explican más adelante).Es importante señalar que otro recurso importante del SDK es el USB Driver for Windows, un componentedescargable del Android SDK, el cual si se desarrolla en Windows permite conectar un dispositivo Android afin de probar aplicaciones. En la siguiente liga se detallan las instrucciones para instalar dicho componente. http://developer.android.com/sdk/win-usb.htmlEs importante señalar que la máquina virtual no es una JVM como se podría esperar, sino que es lamáquina virtual de Dalvik, una tecnología de código abierto. Cada aplicación Android corre dentro de unainstancia de la máquina virtual de Dalvik, que a su vez, reside en un kernel Linux gestionado proceso, comose aprecia en la imagen.Arquitectura del sistema operativo AndroidLos componentes principales del sistema operativo Android son:Núcleo: el núcleo está basado en el kernel 2.6 de Linux; y es responsable de administrar los controladoresde dispositivo (Keypad, WiFi, Flash Memory, Audio, etc.), el acceso a recursos y la energía, entre otrasfunciones propias de un sistema operativo.Bibliotecas nativas: Android incluye un conjunto de bibliotecas como OpenGL, WebKit, FreeType, SecureSockets Layer (SSL), C runtime library (libc), SQLite y librerías de medios. 4Elaborado por: J. Ulises González Medinaandroid.unam@gmail.comNoviembre 2011Versión 1.2
  5. 5. Android de la A a la Z Unidad 1 “Conociendo Android”El sistema de bibliotecas está basado en la BSD (Berkeley Software Distribution) y representaaproximadamente la mitad del tamaño de la BSD original, al ser una adaptación de Linux para dispositivosembebidos; en su mayoría escrito en lenguaje C/C++.  La biblioteca WebKit es responsable de dar soporte al navegador, siendo la misma empleada por Google Chrome y Safari.  Las bibliotecas de medios están basadas en PacketVideo de OpenCORE. Estas bibliotecas son responsables de llevar a cabo la grabación y reproducción de formatos de audio y vídeo. Una ejemplo de estás bibliotecas es el llamado Administrador de controles de superficie (Surface Manager Controls), el cual se encarga del acceso al sistema de visualización y soporte para 2D y 3D.  La biblioteca FreeType se encarga de gestionar y controlar todo lo relacionado con las fuentes.  SQLite es una librería que implementa un manejador de base de datos SQL, el cual nos permite incorporar bases datos en el desarrollo de las aplicaciones.  OpenGL ES (OpenGL for Embedded Systems) es una variante simplificada de la API gráfica OpenGL diseñada para dispositivos tales como teléfonos móviles y PDAs. Con ella se escriben aplicaciones que produzcan gráficos 2D y 3D; está formada por decenas de funciones las cuales pueden usarse para crear escenas tridimensionales o figuras tan simples como líneas y triángulos.Runtime de Android: Android busca la independencia del hardware mediante el empleo de un intérpretede bytecode para ejecutar sus aplicaciones, es por ello que utiliza la máquina virtual Dalvik, la cual funcionacomo una puerta de entrada a la plataforma Android. La máquina virtual Dalvik es compatible con el JavaSE Development Kit (JDK), pero optimizada para Android.Framework de aplicaciones: se compone de clases Java que proporcionan funciones de aplicación, talescomo la gestión de ventanas, mostrar el contenido de la ventana, aplicación de mensajería y control de lasllamadas telefónicas; el código fuente está disponible y es posible modificar estas clases para ampliar suscapacidades o modificar su comportamiento.Aplicaciones: las aplicaciones incluyen desde correo electrónico, mensajes SMS, calendario, mapas,navegador y manejo de contactos, entre otros. 5Elaborado por: J. Ulises González Medinaandroid.unam@gmail.comNoviembre 2011Versión 1.2
  6. 6. Android de la A a la Z Unidad 1 “Conociendo Android” 6Elaborado por: J. Ulises González Medinaandroid.unam@gmail.comNoviembre 2011Versión 1.2

×