Estructura de Android
Anna89312Trabajo1 de Octubre de 2013
607 Palabras (3 Páginas)306 Visitas
Estructura de Android
Hoy empezaremos a aprender a programar en Android desde cero, es decir, desde cual es la estructura de android, entorno de desarrollo, estructura de proyectos en android, aplicaciones simples que irán aumentando su complejidad en cada entrada de este blog.
Android utiliza como base el kernel de Linux pero los dos sistemas no son lo mismo, Android no cuenta con un sistema nativo de ventanas de Linux ni tiene soporte para glibc (libería estándar de C); tampoco es posible utilizar la mayoría de aplicaciones de GNU de Linux.
Además de todo lo ya implementado en el kernel de Linux, Android agrega algunas cosas específicas para plataformas móviles como la comunicación entre procesos (lograda a través del binder), la forma de manejar la memoria compartida (ashmem) y la administración de energía (con wakelocks).
Este sería un esquema general de la estructura manejada en Android
El núcleo de Android está formado por el sistema operativo Linux, versión 2.6. Esta capa proporciona servicios como la seguridad, el manejo de la memoria, el multiproceso, la pila de protocolos y el soporte de drivers para dispositivos. Esta capa de del modelo actúa como capa de abstracción entre el hardware y el resto de la pila, por lo tanto, es la única que es dependiente del hardware.
El Runetime de Android esta capa esta basada el concepto de máquina virtual utilizado en Java. Debido a las limitaciones de los dispositivos donde se ejecuta Android no fue posible utilizar la máquina virtual de Java estándar. Google tomó la decisión de crear una nueva, la maquina virtual Dalvik.
La siguiente capa son las librerías nativas en C/C++ usadas en varios componentes de Android. Están compiladas en el código nativo del procesador. Muchas de las librerías utilizan proyectos de código abierto:
• WebKit: Soporta un moderno navegador web utilizado en el navegador Android y en la vista webview. Se trata de la misma librería que utiliza Google Chrome y Safari de Apple.
• System C Library: Una derivación de las librerías BSD de C estándar, adaptados para dispositivos embebidos basaos en Linux.
• Media Framework: Librería basada en PacketVideo's OpenCORE; soporta codecs de reproducción y grabación de multitud de formatos de audio, video e imagenes MPEG4, H.264, MP3, AAC, AMR, JPG y PNG.
• Surface Manger: Maneja el acceso al subsistema de representación gráfica en 2D y 3D.
• SGL: Motor de gráficos 2D.
• Librería 3D: Implementación basada en OpenGL ES 10.0 AP. Las librerías utilizan el acelerador de hardware 3D si está disponible, o el software altamente optimizado de proyección 3D.
• FreeType: Fuentes en bitmap y renderizado vectorial.
• SQLite: Potente y ligero motor de bases de datos relacionales disponible para todas las aplicaciones.
• SSL: Proporciona servicios de encriptación Secure Socket Layer.
El entorno de aplicación proporciona una plataforma de desarrollo libre para aplicaciones con gran riqueza e innovaciones.
Esta capa ha sido diseñada para simplificar la reutilización de componentes. Las aplicaciones pueden publicar sus capacidades y otras pueden hacer uso de ellas. Este mismo mecanismo permite a los usuarios reemplazar componentes.
Una de las mayores fortalezas del entorno de aplicación de Android es que se aprovecha el lenguaje de programación JAVA. El SDK de Android no acaba de ofrecer todo lo disponible para su estándar del entorno de ejecución JAVA (JRE), pero es compatible con una fracción muy significativa del sistema.
El nivel de Aplicaciones está formado por el conjunto de aplicaciones instaladas en una maquina virtual Android. Todas las aplicaciones han de ser ejecutadas en la máquina virtual de Dalvik
...