Desarrollo de Aplicaciones para Dispositivos Mviles
PROGRAMANDO APLICACIONES MOVILES PARA DISPOSITIVOS ANDRIOD
A continuacin se presentar la plataforma Android. Comenzaremos por dar una introduccin de la plataforma Android y los componentes que la integran, enseguida se presentarn cada uno de estos componentes de forma un poco ms profunda y enseguida se hablar sobre cmo pueden ayudar a los desarrolladores a construir buenas aplicaciones mviles. La plataforma Android es una pila de software y fue diseada principalmente, pero no exclusivamente, para soportarse en dispositivos mviles, como telfonos y tabletas.
Esta pila tiene varias capas, que van desde los servicios del sistema operativo de bajo nivel que administran el propio dispositivo hasta aplicaciones finales, por ejemplo, cosas como el marcador del telfono, la base de datos contextual y un navegador web. Android incluye un kit para desarrolladores de software o SDK, que se utiliza para crear aplicaciones Android. Finalmente, hay un montn de documentacin, tutoriales, blogs y ejemplos que se pueden utilizar para mejorar su propio conocimiento de Android. Este grfico representa la pila de software de Andoid.
Como se puede ver, la pila de software de Android est organizada en varias capas. En la parte inferior est la capa capa del ncleo Linux. Por encima de ella, estn las bibliotecas de sistema y el sistema de ejecucin Android. Por encima de esta capa, se encuentra un rico marco de aplicacin para apoyar el desarrollo de nuevas aplicaciones. En la parte superior, Android ofrece algunas aplicaciones estndar. De nuevo, cosas como el marcador de telfono, el navegador web y la base de datos de contactos. As que echaremos un vistazo ms a detalle de cada una de estas capas.
Comenzaremos con la capa del ncleo Linux.
La capa del ncleo de Linux, es la capa ms baja de la pila de software en la plataforma Android. Esta capa proporciona los servicios esenciales con los que cuenta cualquier dispositivo informtico Android. El ncleo de Linux de Android, al igual que cualquier ncleo de Linux, proporciona servicios genricos de sistema operativo. Por ejemplo, proporciona una arquitectura de permisos, de manera que se pueda restringir el acceso a datos y recursos para slo aquellos procesos que tienen las debidas autorizaciones. Soporta la gestin de memoria y la gestin de procesos de manera que mltiples procesos puedan ejecutarse simultneamente sin interferir entre s. Maneja detalles de bajo nivel de I/O de archivos y de red(Network I/O). Tambin permite que los controladores de dispositivo se conecten, de manera que Android se puede comunicar con una amplia gama de componentes de hardware de bajo nivel que a menudo estn acoplados a dispositivos de cmputo, cosas como la memoria, radios y cmaras. Adems de los servicios comunes soportados por cualquier ncleo Linux, el ncleo Linux de Android tambin incluye varios componentes Android especficos, por ejemplo incluye sus propios servicios de gestin de energa ya que los dispositivos mviles a menudo funcionan con batera. Proporciona su propio reparto de memoria, y caractersticas de la gestin de memoria, porque los dispositivos mviles a menudo tienen una memoria limitada. El ncleo de Linux de Android tambin incluye su propio mecanismo de comunicacin entre procesos llamado Binder, que permite que varios procesos compartan datos y servicios de maneras sofisticadas. Y por supuesto, estas son solo algunas de las caractersticas especficas de Android hay muchas otras tambin. La siguiente capa incluye varias bibliotecas de sistema.
Estas libreras normalmente estn escritas en C y C++ y por esa razn se les conoce a menudo como bibliotecas nativas ( libreras nativas). Estas bibliotecas nativas manejan una gran cantidad del ncleo, el rendimiento de las actividades sensibles del dispositivo. Cosas como la presentacin rpida de pgina Web y actualizacin de la pantalla. Por ejemplo, Android tiene su propio sistema de biblioteca C que implementa las llamadas al OS estndar, que hacen cosas como el procesado y la creacin de subprocesos, clculos matemticos, la asignacin de memoria y mucho ms. Ah est el Surface Manager para la actualizacin de la pantalla, un Framework Multimedia para la reproduccin de archivos de audio y video, el Web Kit para la representacin y visualizacin de pginas Web, OpenGL para la presentacin de grficos y SQLite para la gestin de memoria de bases de datos relacionales. Adems de la bibliotecas del sistema esta capa tambin incluye el Android Runtime( tiempo de ejecucin de Android) :
Android Runtime permite la escritura y la ejecucin de aplicaciones de Android. Hay dos componentes en el Android Runtime de los que hablaremos a continuacin, las bibliotecas Java esenciales y la Mquina Virtual Dalvik. Vamos a hablar de cada una de ellas. En primer lugar las aplicaciones Android son normalmente escritas en el lenguaje de programacin Java y para que sea ms fcil escribir aplicaciones, Android ofrece una serie de bloques de construccin Java reutilizables. Por ejemplo el java y javax o extensiones de paquetes Java que incluyen software bsico para cosas como las estructuras de datos comunes, mecanismos de concurrencia, y para E/S de archivos. Los paquetes de Android tiene software que es especfico para el ciclo de vida de las aplicaciones mviles. Los paquetes org, soportan diversas operaciones de internet, o en la Web y los paquetes JUnit apoyan la unidad de comprobacin de aplicaciones. La segunda parte del Android Runtime, es la mquina virtula Dalvik, la mquina virtual Dalvik es el software que realmente ejecuta las aplicaciones Android. Como se mencion anteriormente, las aplicaciones Android normalmente estn escritas en Java, as que podra haberse asumido que ya que estn escritos en Java, probablemente se ejecute en una mquina virtual Java estndar. Pero en realidad ese no es el caso. Lo que normalmente sucede es que los desarrolladores escriben primero sus aplicaciones en Java y enseguida un compilador Java compila los archivos de cdigo fuente Java a varios archivos de cdigo de Bytes Java. A continuacin una herramienta llamada DX transforma los bytescodes Java en un nico archivo con un formato en cdigo de bytes diferente llamado DEX y el archivo de cdigo de bytes generado se suele llamar classes.dex. A continuacin, el archivo DEX es empaquetado con otros recursos de la aplicacin e instalado en el dispositivo. Y por ltimo cuando el usuario inicia la aplicacin la mquina virtual Dalvik ejecutar luego el archivo classes.dex. Ahora, la razn para hacer todo esto es que la mquina virtual Dalvik, a diferencia de la mquina virtual de Java, fue diseada especficamente para funcionar en un entorno con recursos limitados tpico de los dispositivos mviles. Cuando se dice con recursos limitados, lo que se quiere decir es que en comparacin con un dispositivo de escritorio tpico, el dispositivo mvil normal es menos potente y ms limitado en muchas aspectos. Por ejemplo, es probable que tenga una CPU ms lenta, menos memoria y una batera de vida limitada.
La siguiente capa en la pila de software de Android es el Framework de aplicacin.
El marco de aplicacin contiene software reutilizable que muchas de las aplicaciones mviles es probable que necesiten. Por ejemplo, como veremos en un minuto, el sistema de visin contiene elementos grficos comunes. Cosas como los botones y los iconos que muchas aplicaciones incluyen en sus interfaces de usuario. Echemos una mirada ms profunda a algunos de estos componentes. Uno de los componentes del marco de aplicacin es el gestor de paquetes. El gestor de paquetes es esencialmente una base de datos que mantiene un registro de todas las aplicaciones instaladas actualmente en el dispositivo.