blog del equipo de tecnología de 11870.com

Android: oosandroid

Hemos hecho una aplicación como prueba de concepto del uso de la api de 11870 en un dispositivo android. Imaginativamente la hemos llamado oosandroid. Ha quedado más bien tosca, pero con poco trabajo más creo que podría quedar presentable. La conclusión que hemos sacado es que es un sistema fácil de usar, y una plataforma de tremendas posibilidades.

Desde la pespectiva de programador, android proporciona tres cosas: un sistema operativo, una máquina virtual y un sdk. Todo ello open source.

El sistema operativo se basa en el kernel de linux, modificado para que corra en dispositivos de recursos limitados. Android proporciona una serie de librerías que vienen integradas en el sistema. Entre ellas está SQLite. Me parece destacable que no se concibe el sistema sin un motor SQL. Otra librería interesante es WebKit, el framework sobre el que se construye Safari, el navegador de Apple. Gracias a WebKit las vistas android renderizan html y css.

Máquina virtual

En la comunidad java el aspecto más polémico ha sido el descarte de la JVM en  favor de de una máquina virtual específica, la Dalvik Virtual Machine. La DVM utiliza su propio bytecode, distinto del bytecode java y, de nuevo, sus autores afirman que las diferencias con la JVM giran en torno al mejor aprovechamiento de los limitados recursos de los dispositivos en los que corre.

Cada aplicación dispone de su propia instancia de la DVM independiente de las demás aplicaciones. El aislamiento entre aplicaciones se refuerza por el hecho de que cada aplicación corre en un proceso distinto, aunque puede lanzar los threads que crea conveniente: una aplicación -> 1 proceso -> n threads.

Programación

El sistema dispone un directorio y una instancia de SQLite para cada aplicación a los que sólo ésta puede acceder. Para compartir datos entre aplicaciones se utilizan unos componentes específicos llamados content providers.

Las clases que construyen el armazón de una aplicación típica son extensiones de Activity. Una activity se corresponde a una vista. Android hace uso intenso del patrón template method, proporcionando una serie de métodos que el programador sobrescribirá para determinar el comportamiento de la activity.

Para pasar de una activity a otra o de una aplicación a otra usamos unas piezas llamadas intents. Un intent se describe en la documentación como “la descripción abstracta de una operación”. Tu aplicación puede lanzar intents que gestionará ella misma: “quiero hacer esta acción y sé cómo manejarla” o intents que gestionará el sistema: “quiero realizar esta acción pero yo no proporciono los medios para hacerlo”.

Por ejemplo, podemos querer que el usuario de nuestra aplicación seleccione una foto de la galería del teléfono. Podríamos implementar las acciones necesarias para ello, pero también podemos expresarle nuestra intención al sistema que seleccionará la aplicación adecuada que enseñarle al usuario. El sistema nos devolverá la selección hecha por el usuario.

Referencias

El web para programadores de android es muy completo. En español está la gente de and.roid.es y android-spa.com, y como introducción recomiendo ver los tres vídeos de la playlist androidology.

Tags: , ,

5 comentarios

rssComments RSS transmitTrackBack Identifier URI


[...] datos técnicos y demás en el post “Android: oosandroid” que ha preparado Jorge en el blog de [...]

Pingback by nadie quiere ser un número » Blog Archive » charla sobre Android on febrero 19, 2009 7:04 pm


En 3 días y en junio de 2008 ya se había hecho:

http://11870.com/blog/android-y-11870com/

Comentario by Miguel on febrero 21, 2009 1:04 pm


Miguel elaboro y publico un proyecto muy similar el año pasado en la asignatura “Desarrollo de aplicaciones para dispositivos móviles de última generación” impartida en el Master Europeo de Ing. del Software de la Universidad de Oviedo. Aquellos que estéis interesados podéis descargarla desde: http://www.imai-software.com/openlab/index.php?q=es/node/90

Comentario by Jesús Soto on febrero 27, 2009 8:30 am


[...] y una plataforma de tremendas posibilidades”. En su blog de desarrollo 2E5E ofrecen toda la información técnica y la descarga de la aplicación. Tags: 11870.com, [...]

Pingback by oosandroid de 11870.com - Universo Android on febrero 28, 2009 9:11 pm


[...] nos ha preguntado si andábamos ya desarrollando una aplicación de 11870.com para Android. Aunque nuestros experimentos con android aún se hayan en una fase embrionaria, los usuarios de este sistema operativo para móviles [...]

Pingback by nadie quiere ser un número » Blog Archive » places directory on septiembre 11, 2009 11:40 am

addDeja un comentario