Tutorial de Android

Embed Size (px)

Citation preview

PROYECTO FIN DE CARRERA

CREACIN DE UNA PLATAFORMA DE DESARROLLO DE APLICACIONES PARA ANDROID

AUTOR:

JOS MIGUEL REYES IBARRECHE

Madrid, Septiembre de 2010

Autorizada la entrega del proyecto del alumno/a:

Jos Miguel Reyes Ibarreche

EL DIRECTOR DEL PROYECTO Mario Castro Ponce

Fdo.: Fecha: / /

V B del Coordinador de Proyectos David Contreras Brcena

Fdo.: Fecha: / /

PROYECTO FIN DE CARRERA

CREACIN DE UNA PLATAFORMA DE DESARROLLO DE APLICACIONES PARA ANDROID

AUTOR: DIRECTOR:

JOS MIGUEL REYES IBARRECHE MARIO CASTRO PONCE

Madrid, Septiembre de 2010

RESUMENEl proyecto Creacin de una plataforma de desarrollo de aplicaciones para Android tiene como objetivo principal dar existencia a una mquina virtual con sistema operativo Ubuntu-Linux desde la que se desarrollen aplicaciones en el sistema operativo Android. Estas aplicaciones son: Creacin de una interfaz de usuario, formacin de bases de datos, uso de mapas, utilizacin de herramientas del Sistema de Posicionamiento Global (GPS), y reproduccin de archivos multimedia. La utilizacin de una mquina virtual tiene como propsito proporcionar al usuario un entorno de desarrollo completamente configurado, eficiente y evite al usuario los problemas asociados a la configuracin y actualizacin de dicho entorno de desarrollo. El desarrollo de este proyecto permitir conocer el efecto del sistema Android en el mercado de la telefona mvil y las ventajas de uso comparndolo con el resto de sistemas operativos actuales como iPhone, Symbian Las caractersticas de este sistema operativo son que las aplicaciones pueden programarse en lenguaje Java, el software proporcionado est bajo licencia Apache, y se facilita un Kit de Desarrollo Software (SDK) que puede incorporarse a un IDE tan conocido como Eclipse mediante un plug-in. La principal finalidad desde el punto de vista del desarrollador es: Obtener el mximo partido de la plataforma, que la aplicacin sea portable, fcil de ejecutar y reutilizable, y que tenga facilidad para integrar todo tipo de programas con las aplicaciones Web de Google. La estructura del sistema operativo Android consta de: Un ncleo de Linux, libreras escritas en lenguaje C/C++, Android Run Time, Framework de aplicaciones y una capa de aplicaciones. Las herramientas utilizadas para desarrollar aplicaciones son: la SDK proporcionada por Google, una JDK de Java y un IDE de desarrollo Java como es Eclipse. El proyecto pretende mostrar, de una manera didctica, el uso y potencial de esta plataforma de desarrollo. Por esta razn, se ha dedicado la mayor parte del proyecto (y de la memoria del mismo) a describir los pasos necesarios para que un usuario con poca experiencia sea capaz de desarrollar sus propias aplicaciones Android.

iv

ABSTRACTThe project "Creation of a developing platform for Android applications has as main objective is to create a virtual machine running Ubuntu-Linux from which to develop applications on the Android operating system. These applications are: Creation of a user interface, database sharing, use of maps, using tools of the Global Positioning System (GPS), and playback of multimedia files. The use of a virtual machine has as main purpose to provide the final user with a development framework, efficient and completely setup, to avoid the potential problems related to the configuration and update of that framework. Furthermore, the development of this project will reveal the effect of Android in mobile phone market and use advantages compared with other current operating systems such as iPhone, Symbian... The project itself shows the features of this OS is that applications can be programmed in Java, the software provided is licensed under Apache, and provides a Software Development Kit (SDK) to be incorporated as well known as an Eclipse IDE through a plug-in . Also, the main purpose from the point of view of the developer is: getting all of the best of the platform, the portability of the main applications, the facility to run and reusable the code, and has easy to integrate all kinds of programs with Google's Web applications. The Android operating system structure consists of: Linux kernel, libraries written in C / C + +, Android Run Time Application Framework and an application layer. In addition the tools used for developing applications are the SDK provided by Google, a Java JDK and Java development IDE like Eclipse. Finally, this project aims to show, from a didactic point of view, the use and potential of this framework. Thus, it has been devoted the largest part of the project (and, consequently, its documentation) to describe accurately the steps needed for an inexperienced programmer to develop his/her own applications.

v

ndiceCaptulo 1 Introduccin 1.1 1.2 Motivacin Objetivos 1 4 5

Captulo 2 Tecnologa en la actualidad 2.1 2.2 Introduccin El mercado tecnolgico en la actualidad

6 6 8 8 10 13 15 15 18 20 24 27

2.2.1 Principales demandas de mercado 2.2.2 Representacin del mercado 2.2.3 Comparativa de los diferentes SSOO 2.3 SSOO mviles

2.3.1 Symbian 2.3.2 Windows Mobile 2.3.3 iPhone 2.3.4 Blackberry 2.3.5 Android

Captulo 3 El sistema Operativo Android 3.1 3.2 3.3 3.4 Introduccin Estructura de Android Estructura de una aplicacin Android Ciclo de vida de una aplicacin en Android

28 28 30 34 36

vi

3.4.1 Prioridad de procesos 3.5 Herramientas para el desarrollo

37 39 39 41 42 42 43 44 45 45 46

3.5.1 Instalar SDK Android 3.5.2 Instalar plugin en Eclipse 3.5.3 Completar la instalacin 3.5.3.1 Referenciar SDK 3.5.3.2 Configurar emulador AVD y actualizar plugin 3.5.4 Otras herramientas tiles 3.5.4.1 Otras funcionalidades del emulador 3.5.4.2 Dalvik Debug Monitor Service 3.5.4.3 Android Debug Bridge

Captulo 4 Creacin de una aplicacin Android 4.1 Hola Mundo

48 48 48 53 53 54 55 55 55 56 56 57

4.1.1 Nuevo proyecto Android 4.2 Organizacin de una aplicacin Android

4.2.1 Android Manifest 4.2.1.1 Nodo 4.2.1.2 Nodo 4.2.1.3 Nodo 4.2.1.4 Nodo 4.2.2 Carpeta src 4.2.3 Carpeta res 4.2.4 Carpeta gen

vii

4.2.5 Carpeta bin 4.3 Interfaz de usuario en Android

57 58 58 59 66 72 72 78 80 81 83 86 86 88 89 89 91 94 103

4.3.1 View 4.3.1.1 Widgets 4.3.2 View Groups 4.3.3 Otros elementos de la interfaz 4.3.3.1 Menu 4.3.3.2 Dialogs 4.4 Uso de Intents para lanzar nuevas Activities

4.4.1 Paso de parmetros y resultados 4.5 4.6 Creacin de BBDD Aplicaciones multimedia

4.6.1 Reproduccin de archivos locales 4.6.2 Reproduccin de archivos remotos 4.7 Localizacin GPS y Mapas

4.7.1 Uso de la seal GPS 4.7.2 Uso de mapas 4.7.2.1 Creacin de una aplicacin Android con uso de mapas 4.8 Uso de recursos de Internet

Captulo 5 Mquina Virtual 5.1 Creacin de una Mquina Virtual

105 107

viii

Captulo 6 Valoracin econmica

112

Captulo 7 Conclusiones y trabajos futuros 7.1 7.2 Conclusiones obtenidas Trabajos futuros

114 114 116

Captulo 8 Bibliografa

117

Captulo 9 ndice de figuras

119

ix

Captulo 1

Introduccin

El avance tecnolgico de los ltimos aos demuestra el impacto ste ha tenido en la sociedad. Est comprobado cmo estos avances han servido de gran ayuda en el da a da y en el desarrollo econmico de sta. El acceso a esta tecnologa fue dificultoso porque slo estaba al alcance de muy pocas personas. Adems estos complejos dispositivos parecan una excentricidad cuando se lanzaron al mercado. Actualmente el uso de estas tecnologas, como por ejemplo el telfono mvil y el ordenador, es habitual; hasta tal punto que muchas personas son totalmente dependientes de ellas. Esto es debido al abaratamiento de los costes de produccin motivado por el precio competitivo. Estos dos factores: la accesibilidad y el coste, han sido claves en el boom tecnolgico ya que la mayora de las tecnologas no estaban destinadas fuera de un mbito cientfico. Las tecnologas de la Informacin y Comunicacin (TIC) han tenido un papel importantsimo debido a la asombrosa evolucin que han sufrido. Desde las primeras computadoras que servan de ayuda para elaborar clculos complejos de diversas operaciones matemticas hasta los actuales ordenadores porttiles. Esta transformacin ha sido posible a la investigacin llevaba a cabo en nuevos componentes sustitutivos que han modificado considerablemente el tamao de los ordenadores, ya que antes eran autnticos mastodontes; pasando por los primeros PCs hasta llegar a los actuales ordenadores. De la misma manera que las nuevas investigaciones en diferentes tipos introdujeron una reduccin considerable en el tamao de los ordenadores, y la accesibilidad a este tipo de productos tambin fue importante el desarrollo de la intercomunicacin entre ordenadores. Que las TIC estn cambiando la sociedad es un hecho indiscutible debido en gran medida a la utilizacin de estas tecnologas en nuestra vida diaria que estn haciendo que cambie la manera de relacionarnos. Ha cambiado la forma de comprar, acceder a la prensa o la bsqueda de informacin. Gracias a las TIC, las empresas han conseguido mejorar la productividad, hacindolas ms competitivas y generar nuevas lneas de negocio. Por ltimo, a raz del avance obtenido gracias a Internet y a factores anteriormente comentados, los ordenadores aumentaron y diversificaron su funcionalidad. En cierta manera acompaado de un cambio sustancial en los sistemas operativos que gobiernan los recursos del ordenador, sus mltiples caractersticas y cualidades. Y en la actualidad stos ofrecen diversas funcionalidades, desde procesadores de textos hasta reproductores de vdeo y audio, etc. Los ordenadores son una herramienta imprescindible de trabajo.

1

Centrndonos en el tema principal de este documento, y en especial en una rama de las TIC. Los dispositivos o telfonos mviles han sufrido un cambio de imagen realmente impactante en un corto perodo de tiempo han supuesto una revolucin tecnolgica impresionante. El telfono mvil naci para la comunicacin entre personas desde cualquier lugar del planeta. Con el paso del tiempo, este tipo de dispositivos evolucion en diversos aspectos como por ejemplo su aspecto fsico, pasando de tener un aspecto similar a un ladrillo, hasta llegar a tener un aspecto similar al de una cartera de bolsillo. Los nuevos componentes no slo proporcionaron la reduccin en el tamao sino que permiti que personas de todas las clases sociales pudieran tener acceso a ellos. Por otro parte, esta renovacin tambin viene acompaada en las diversas funcionalidades que han sido introducidas en este tipo de telfonos, ya que a la principal finalidad es la de comunicar. Otro tipo de caractersticas son: el envo de mensajes va SMS, diversas aplicaciones multimedia, videoconferencia, acceso a Internet, transferencia de archivos, etc. A raz de las nuevas funcionalidades incluidas, era necesario administrar los diferentes recursos que ofreca el hardware del telfono para ello se desarrollaron diferentes sistemas operativos (SSOO). Los sistemas operativos de los primeros telfonos mviles slo se encargaban de gestionar las llamadas recibidas y/o enviadas y los recursos de la energa proporcionada por la batera. Con el paso del tiempo y con las nuevas funcionalidades incorporadas, los SSOO de los dispositivos mviles han adquirido mayor importancia y complejidad, de tal modo que casi se podran equiparar con los SSOO que hoy se comercializan para cualquier tipo de ordenador. Uno de los primeros sistemas operativos para dispositivos mviles fue PalmOS, despus le siguieron Blackberry y Windows. Este tipo de SSOO iban destinados para dispositivos PDA pero poco a poco se fueron implantando en telfonos mviles hasta que Apple con su iPhone introdujo un nuevo concepto para dispositivos mviles, que fue el desarrollo de pantallas tctiles. Cuando iPhone se lanzo al mercado se pens que slo acaparara la cuota de mercado destinada a los telfonos mviles y dentro de sta, slo aquel segmento cuyo perfil no fuera ejecutivo, debido a que este perfil se relacionaba ms con SSOO como Palm, Blackberry o Windows Mobile. A la larga, se vio que estas previsiones fueron errneas de modo que los diferentes proveedores de SSOO o fabricantes de telfonos mviles tuvieron que ponerse manos a la obra para no perder an ms cuota de mercado frente a iPhone.

2

A partir de la revolucin introducida por la compaa Apple, multitud de fabricantes vieron como su cuota de mercado se desvaneca de modo que una buena parte de ellos se vieron forzados a introducir cambios en sus dispositivos. Varias compaas Nokia,Samsung,Siemens,etc se vieron obligadas a introducir cambios sustanciales en su modelo productivo, as que se llevo a cabo el desarrollo de un nuevo sistema operativo para este tipo de dispositivos llamado Symbian. Con este nuevo lanzamiento, dichas compaas se volvieron a posicionar en el mercado, ya que las principales caractersticas de este SSOO son muy similares a las caractersticas del iPhone. La mayora de los SSOO para dispositivos mviles se han desarrollo bajo un hardware especfico que apenas permite hacer modificaciones de alguna caracterstica de stos. Este agravante perjudica al desarrollo de aplicaciones para cualquier dispositivo mvil, debido a la dependencia del software del dispositivo y a que el conocimiento de ste es extendido slo por los propios desarrolladores del mismo, lo que dificulta que se puedan desarrollar aplicaciones por terceras partes. Con el transcurso del tiempo, y con el nacimiento de los dispositivos de ltima generacin, los SSOO han ido evolucionando y han permitido que se puedan desarrollar aplicaciones por terceras personas, puesto que permiten implementarse en lenguajes de alto nivel como puede ser Java (J2ME), pero con un ligero inconveniente, en cierta manera, las aplicaciones desarrolladas por particulares son dependientes de la firma del software para su implantacin o de la interfaz de usuario necesaria. Google irrumpi en el mercado, lanzando su propio sistema operativo llamado Android cuyas caractersticas estn basadas en el movimiento OpenSouce, y permiten a cualquier persona desarrollar todo tipo de aplicacin para este nuevo sistema operativo. Android es un stack de software desarrollado exclusivamente para dispositivos mviles cuyo kernel o ncleo est basado en Linux y todas sus aplicaciones se escriben en lenguaje Java. Adems Android est bajo licencia Apache.

3

1.1 MotivacinEste proyecto tiene dos fundamentos importantes: Android facilita la creatividad porque sus aplicaciones se desarrollan bajo un lenguaje de programacin fcilmente accesible ya que permite a cualquier persona que tenga conocimientos bsicos sobre Java poder desarrollar su propia aplicacin. Esta facilidad de desarrollar en un lenguaje de alto nivel, permite que una amplia gama de aplicaciones puedan ser desarrolladas por terceras personas, de forma que el desarrollador se abstrae por completo de los requerimientos de hardware que en un principio requieren las aplicaciones de mviles. Otra caracterstica que soporta Android es que se basa en un cdigo abierto (licencia APACHE) por el cual toda persona tiene acceso al cdigo fuente y de este modo puede adaptarlo a las necesidades que el propio desarrollador considere oportunas sin necesidad obligada de distribuir los cambios realizados. Todo esto acompaado de poderosas libreras que facilitan la labor de la programacin y que en un futuro las aplicaciones desarrolladas puedan ser desplegadas en un telfono mvil. Es importante la innovacin generada por Android. La tecnologa en este mbito ha crecido a pasos agigantados, permitiendo incorporar utilidades tanto en las telecomunicaciones (Bluetooth, 3G,) como en el campo multimedia (reproductores de msica, vdeo) hasta tal punto que los telfonos mviles pueden ser considerados mini- ordenadores ya que incluyen iguales funcionalidades que un ordenador cualquiera. El principal promotor de la idea es Google que son los principales innovadores en el continuo avance tecnolgico.

La principal aptitud es que las aplicaciones creadas en Android son ligeras, en contrapartida a otras arquitecturas en las cuales las aplicaciones son totalmente dependientes del hardware hacindolas ms robustas. Por ltimo, introducir un argumento a favor del proceso de cambio al igual que el creativo que permite el desarrollo de las aplicaciones por terceras personas en vez de por empresas de software especializadas. Aunque existan herramientas para otro tipo de SSOO no todos ofrecen la misma facilidad que ofrece Google.

4

1.2 ObjetivosLos objetivos principales son los siguientes: Desarrollar una mquina virtual que sirve de plataforma para poder ejecutar aplicaciones para Android. Dicha plataforma debe ser portable para que se pueda trabajar con ella. Para llevar a cabo estas aplicaciones de Android, el entorno de programacin debe ser sencillo contando con un simple IDE de programacin instalado como puede ser Eclipse y la SDK proporcionada por Google. Conocer la estructura del sistema operativo Android. Averiguar qu existe dentro del nuevo sistema, conociendo de primera mano los entresijos que son necesarios como es su arquitectura, su diseo, al igual que las ventajas y desventajas que nos puede proporcionar frente a otros competidores. Establecer los principios bsicos para el desarrollo de aplicaciones. Conocer todo el entorno de programacin necesario: SDK esencial, APIs que se necesitan y todo tipo de paquetes o clases necesarias para poder abordar la programacin de cualquier tipo de aplicacin que se desee.

5

Captulo 2 Tecnologa en la actualidad2.1 IntroduccinSe puede considerar a la industria de la telefona mvil como una de las industrias punteras as como estratgicas puesto que sta puede generar un total de un 1 milln de millones de dlares aproximadamente. Este ratio se deriva debido a la principal fuente de ingresos que son las llamadas y mensajera, pero poco a poco va ganando peso los ingresos obtenidos mediante otros servicios como puede ser el trfico de datos, y principalmente a travs de Internet. La irrupcin de Internet en este tipo de dispositivos no slo ha provocado una fuente de ingresos a tener en cuenta dentro de las operadoras telefnicas, si no que ha permitido un avance simblico desde el punto de vista tecnolgico.

A principios de la dcada de los 90 cuando aparecieron los primeros telfonos mviles, slo permitan establecer llamadas, ms tarde con el paso de los aos se fueron introduciendo nuevas funcionalidades como el envo de mensajes, despus se aadieron diversos juegos interactivos hasta llegar a navegar por Internet, realizar fotos e incluso ejecutar diversas aplicaciones multimedia como reproductores de vdeo y/o audio.

La capacidad de realizar y recibir llamadas es solamente una de las funciones de estos dispositivos ya que hoy son autnticos miniordenadores. Son capaces de procesar datos, poseen un teclado similar al de los ordenadores, con ellos se pueden procesar cualquier tipo de textos, acceder a Internet, reproducir archivos de msica y vdeo, y adems poder realizar fotos. Pero, cules son las principales diferencias o similitudes frente al ordenador convencional?

La principal diferencia que existe entre un sistema operativo que corre en un dispositivo mvil frente a una que se encuentra en un ordenador, es que para el primer caso, el sistema operativo debe lidiar contra restricciones mucho ms estrictas en cuanto a limitaciones en la memoria, procesamiento de datos y a que la ejecucin debe ser exacta y en un tiempo de respuesta mnimo. De modo que la gestin de recursos para este caso debe ser estrictamente minuciosa para las diferentes funcionalidades que otorga. Principalmente este hecho se debe a que este tipo de sistemas deben saber acoplarse a las necesidades tcnicas del terminal mvil, hacindolos totalmente robustos y a medida de los requerimientos planteados.

6

Tambin deben aportar una mayor fiabilidad y estabilidad, y estar debidamente analizados y testeados ante fallos. El sistema operativo debe manejar con sumo cuidado el tipo de aplicaciones que se pueden ejecutar. No como en el caso de los sistemas operativos convencionales que estn sujetos a errores y continuamente muestran soluciones a los supuestos fallos producidos, solucionndolos mediante nuevas actualizaciones o versiones del software.

La mayora de estos sistemas operativos deben funcionar en todo momento como si fuera un sistema 24X7 y que proporcione un alto nivel de usabilidad, de forma que el usuario pueda utilizarlo sin ningn requerimiento formativo especfico. As, la usabilidad se sita como un punto clave en el desarrollo de este tipo de dispositivos, ya que con esta funcionalidad se da respuesta a la necesidad demandada por los usuarios, donde el empleo de pantallas tctiles, abren un camino apasionante y excitante en la experiencia de uso en entornos mviles.

Los terminales mviles con grandes pantallas y teclado virtual se han hecho un hueco en el mercado y figuran en los catlogos de los fabricantes importantes. El uso del telfono mvil se ha transformado en algo placentero, divertido y sencillo, lo que ha motivado que la interfaz de usuario se haya vuelto ms atractiva y humana. De modo que los usuarios de telfonos mviles demandan aplicaciones y servicios que se diseen pensando en ellos.

7

2.2 El mercado tecnolgico en la actualidad2.2.1 Principales demandas de mercadoAntes de ver cmo es cada sistema operativo, hace falta realizar una breve reflexin para observar qu se demanda en el mercado. Usabilidad En primer lugar, lo que la gente demanda es el diseo, los servicios y las aplicaciones, es decir, la usabilidad.

El principal detonante en la revolucin tecnolgica sufrida en este sector fue la llegada del iPhone. Este hecho ha producido un cambio importante en el diseo de los terminales mviles, provocando el nacimiento de nuevos dispositivos inspirados en l. Y es que, gracias al terminal de Apple, los usuarios de telfonos mviles, que hasta el momento eran grandes desconocedores del mundo del diseo mvil, han comenzado a escuchar expresiones como multitouch e interfaz de usuario. Esta evolucin no ha escapado a diseadores y fabricantes de mviles, que han seguido muy de cerca las evoluciones en este aspecto. Desde los primeros modelos con pantallas monocromo y mens lineales, pasando por la llegada del color, que increment la demanda de capacidades grficas, incluida la reproduccin de fotografas. El aumento de tamao en la pantalla fue una consecuencia casi inmediata, haciendo que la interfaz pasase de un modelo basado en texto a uno ms grfico. Sin embargo, no basta con llenar la pantalla de iconos y hacer que los mens tengan animaciones. Lo importante es apoyarse en esas nuevas posibilidades para hacer que la experiencia del usuario sea lo ms grata y satisfactoria posible. El mayor desafo en el mercado es cmo agregar toda la funcionalidad que se desea cuando el espacio en pantalla sigue siendo bastante pequeo en relacin al de un PC convencional. Por ello, a la hora de pensar en una nueva aplicacin hay que considerar aspectos tan importantes como si el usuario va a manejar el terminal con una sola mano o con ambas, o el contexto en el cual se va a utilizar la aplicacin.

Conectividad Otro aspecto a tener en cuenta en el desarrollo de aplicaciones es el diseo de servicios Web que sean utilizados desde el mvil.

8

Primeramente, hay que considerar las limitaciones tecnolgicas que impone el propio dispositivo; algunos terminales no est adaptados a cdigos complejos basados en Java Script y muchos no pueden con pginas que pesen mucho. Otra dificultad es conocer en qu tipo de mvil se va a ejecutar el contenido Web, es decir, las dimensiones de pantalla en las que se ver ese contenido, el tipo de navegador, etc. Tambin existen otro tipo de necesidades como pueden ser servicios de localizacin. Dichos servicios constituyen otra rea de soluciones de movilidad que ha evolucionado, expandindose a otros sectores, ms all del tradicional y pionero de transporte. En los tiempos actuales cobra especial importancia la relevancia del contexto, donde no slo interesa dnde se localiza al usuario sino de los servicios que pueden encontrar a su alrededor. Son muchas las soluciones basadas en la localizacin que estn dirigidas a la gestin, control, planificacin, seguimiento de recursos, etc... Tradicionalmente se ha asociado este tipo de servicios con el sector transporte pero ahora tambin permiten ampliarse a sectores como la publicidad o marketing. La apertura de los servicios de localizacin a mltiples sectores ha dado lugar a la aparicin de novedades tecnolgicas, nuevos tipos de soluciones y aplicaciones que aprovechan las oportunidades que brinda la localizacin, como puede ser la geolocalizacin y las aplicaciones que utilizan estas caractersticas. Por ltimo, los servicios de comunicacin entre mquinas (M2M) tiene cada vez ms aplicaciones y estn presentes en numerosos sectores verticales, gracias a los cambios producidos en las tecnologas de red y los dispositivos mviles. La comunicacin entre mquinas y dispositivos es algo habitual. Y se utiliza en los mbitos de telemetra, recogida de datos, control de trfico, mantenimiento remoto, etc. Actualmente estas tecnologas estn revolucionando el mercado. El desarrollo de las redes mviles GPRS y 3G, as como las tecnologas greles Bluetooth, WiFi, WiMAX y RFID que permiten establecer enlaces entre mquinas, han potenciado de forma muy importante las aplicaciones de mquina a mquina (M2M). Al igual que el desarrollo en las mquinas y dispositivos, puesto que estos ltimos son cada vez ms pequeos e inteligentes, formando parte de nuestra vida diaria, con mayores prestaciones, y permitiendo automatizar a travs de los mismos, tareas que antes eran inviables.

9

Movilidad corporativa Cada vez son ms los empleados que tele trabajan o que realizan sus actividades cotidianas fuera de una oficina y que durante su horario laboral deben acceder a aplicaciones, servicios y recursos de la empresa. Acceder a bases de datos comunes, compartir archivos y mantener sincronizados sus equipos de manera rpida, sencilla y sobre todo, segura es vital para la productividad diaria. Un simple dispositivo mvil puede convertir a cualquier persona en un trabajador en movilidad, posibilitando una sensible mejora de muchos sectores en los que los trabajadores se desplazan constantemente. El rango que pueden abarcar estas soluciones pueden ir desde la movilizacin de ERPs y CRMs hasta herramientas ofimticas y servicios de correo corporativo.

2.2.2 Representacin del mercadoEl mercado actual de las TIC est en continua evolucin y transformacin, y ms an si nos fijamos nicamente en el sector de la telefona mvil. Es en l, donde se ha llegado a tener ms impacto sobre la sociedad y donde se constatado la mayor revolucin tecnolgica del momento. Los terminales mviles han pasado de ser simples a ser dispositivos altamente complejos; siendo equiparados a ordenadores, ofreciendo mayor fiabilidad y funcionalidad de todo tipo. Dichos dispositivos son imprescindibles en la vida de las personas para disfrutar de los componentes de ocio que ofrecen. Las nuevas oportunidades y caractersticas que ofrecen estos terminales, han hecho que el mercado de la telefona mvil sea el escenario de una lucha encarnizada. Realmente no hay un ganador claro ni un perdedor absoluto, lo que existe es un ajuste y posicionamiento en funcin de las habilidades de cada fabricante para convencernos de las prestaciones de sus sistemas operativos. El xito de que un terminal mvil triunfe depende de varios factores relacionados con el sistema operativo que contenga. Estos factores tan importantes pueden ser que el sistema operativo tenga las garantas suficientes de poder administrar los recursos y aplicaciones del terminal, de la robustez que ste posea y de que el hardware del dispositivo sea capaz de soportar las instrucciones generadas. Aparte de estas cualidades, lo que generalmente hace ms vistoso a un terminal de este tipo es que el sistema operativo sea fcil de usar y que posea aplicaciones bastante potentes y necesarias.

10

La guerra est abierta y mientras unos intentan mantener la cuota de mercado, otros sin embargo van ganando terreno en este difcil marco en el cual el riesgo de quedarse obsoleto o anticuado puede pagarse caro. Si lo que se quiere son nmeros que reflejen el mercado en la actualidad, segn estudios realizados en Diciembre de 2009, el sistema operativo que lidera actualmente el mercado es el iPhone OS con un porcentaje del 51%, a la estela de iPhone se sitan tanto Symbian OS como Android con porcentajes casi similares, 21% y 16% respectivamente. Por ltimo se encuentran los sistemas operativos de BlackBerry y Windows los cuales suman en total un 9% del mercado. Para poder aclarar, un poco lo datos sobre los porcentajes o cuotas de mercado que anteriormente se han comentado, decir, como nota aclaratoria, que los datos vertidos, representan el nmero mundial de smatphones, es decir, aquellos telfonos mviles que disponen de un sistema operativo identificable. Tambin cabe destacar que el porcentaje de smartphones representan el 14% del montante de telfonos mviles de 2009.

Figura 1. Diagrama de sectores del mercado de la telefona mvil

Para saber cmo se ha hecho fuerte en el mercado iPhone, no hace falta ms que ver la grfica en la cual se puede comprobar que este sistema operativo domina prcticamente en el mercado ocenico llegando a tener un porcentaje del 92%. El sistema operativo de Apple no slo domina el mercado en el continente ocenico, sino que domina tambin domina en mercados tan competitivos como el americano y europeo.

11

Especialmente relevantes son estos datos, pues iPhone OS slo se puede implantar en los dispositivos que propiamente Apple proporciona, mientras que otros sistemas operativos competidores pueden encontrarse en diferentes terminales y de diferentes fabricantes a la vez.

Figura 2. Cuota de mercado de los diferentes competidores Por otro lado, uno de los mayores competidores de iPhone, es Symbian OS, el sistema operativo desarrollado principalmente por Nokia, es por el contrario el lder indiscutible en el continente africano. En este continente Symbian es el claro dominador del mercado con un 87%. Del mismo modo, Symbian, es tambin el principal sistema operativo escogido en el continente asitico con un 69% de la cuota de mercado. Symbian, sigue teniendo un porcentaje significativo en mercados como el europeo o el representado en el mercado suramericano. Tambin hay que destacar que este sistema operativo no tiene representacin alguna en el mercado norteamericano, donde es incapaz de hacer sombra al software de Apple. Otro dato revelador, es que Symbian, es el sistema operativo elegido en al menos 5 de cada 10 telfonos mviles en cualquier tipo de mercado sin considerar el mercado norteamericano o el de Europa del Este. En cuanto al tercer sistema operativo sobre el cual se dirige gran parte de la documentacin elaborada es Android. ste est posicionando en el mercado norteamericano donde Apple es el dominador. Del mismo modo en Europa se est intentando introducirse a pesar de que sus porcentajes no sean muy significativos. Lo que s es realmente significativo, es el crecimiento que Android, poco a poco, est adquiriendo. Respecto al ao 2008, en mercados como el americano o el europeo, ha evolucionado desde un 1% que representaba hasta llegar a un 16%.

12

Por ltimo, comentar que los sistemas operativos como BlackBerry Os y Windows Mobile, slo tienen valores especialmente representativos en el mercado americano, donde tienen unos porcentajes pequeos pero los suficientes para ser considerados en un mercado en el cual el principal sistema operativo reinante es el iPhone OS. La principal causa, puede ser que ambos sistemas operativos, son tambin los representativos de un sector de consumidores con perfil empresarial.

2.2.3 Comparativa de los diferentes SSOOAntes de pasar a comentar cada uno de los sistemas operativos se realizar una breve comparacin introductoria para conocer los aspectos bsicos de cada uno de los sistemas operativos que se comentarn en el apartado siguiente y que se pueden encontrar en diferentes dispositivos mviles. El revolucionario en este mundo sin duda alguna fue Apple, que fue la chispa que inici una gran batalla en un mercado en el cual la tarta estaba repartida entre otros dos gigantes del sector, Windows Mobile y Symbian. Windows Mobile, uno de los decanos en el mundo de la telefona mvil ha logrado mantenerse con en el paso de los aos. A lo largo de los aos son grandes las desventajas adquiridas frente a sus competidores, dichas caractersticas negativas pueden ser su excesivo consumo de recursos, la limitacin que presentan sus aplicaciones, sin embargo una de sus grandes ventajas y por la cual destaca el sistema operativo de Windows es su gran capacidad de integracin con la versin que corre en cualquier ordenador de sobremesa. En cuanto al abanderado de Nokia, Symbian, intenta mantener el liderazgo que obtuvo en aos anteriores. Para volverlo a recuperar, la nueva versin de su software hace hincapi en una pantalla de inicio completamente personalizable mediante widgets. Por otro lado, Apple, la sencillez de su uso y su interfaz, son sin duda alguna las claves del iPhone OS, que resulta ser una especificacin del sistema operativo MacOS para este tipo de dispositivos. Y todo ello a pesar de no ser un software que soporte ser una plataforma multitarea, llegando a ser bastante restrictivo en cuanto al uso del hardware. El recin llegado a este mercado y que parece haberse hecho un hueco en l es, Android, un sistema operativo de plataforma abierta basada en Linux. La fcil integracin con las herramientas Web de Google, as como el uso moderado de recursos hacen que sea una plataforma a tener en cuenta a largo plazo.

13

Otra plataforma que se mantiene en la lucha es BlackBerry, la cual se presenta como una estructura cerrada en lo que a aplicaciones adicionales se refiere, pero ofrece una amplia gama de herramientas multimedia y empresariales.

A continuacin se va a mostrar una tabla comparativa con cada una de las caractersticas ms importantes de las diferentes plataformas que se han descrito en este apartado.

Conectividad Creador Disponibilidad de aplicaciones Disponibilidad de App Store Dispositivos compatibles Licencia Multitarea Tctil/Multitctil Tipo de ncleo

3G,GSM,WiFi

3G,GSM,WiF CDMA

3G,GSM,WiFi, CDMA

3G,GSM,WiFi

3G,GSM,WiFi, GPRS

Nokia Alta

Microsoft Alta

RIM Mediana

Apple Alta

Google Mediana /Alta SSmartphones /netbook

SSmartphone / telfono

SPDA / Smartphone

SSmartphone

SSmartphone

Privada S S Symbian

Privada S S WindowsCE

Privada S S Propio

Privada S S iPhoneOS

Abierta S S Linux

Tabla 1. Comparativa de los principales sistemas operativos para dispositivos mviles

En el apartado siguiente se va analizar con profundidad todas las cualidades descritas, as como otras ms especficas de cada uno de los sistemas operativos enunciados.

14

2.3 SSOO mvilesActualmente se pueden encontrar diversos sistemas operativos destinados para dispositivos mviles, a continuacin se describirn uno a uno las caractersticas principales de cada uno de ellos, as como las posibilidades de poder programar aplicaciones para dichos sistemas.

2.3.1 SymbianSymbian es uno de los sistemas operativos para mviles ms extendido en el mercado. Este software naci en parte gracias al desarrollo de Psion, que junto a fabricantes de este tipo de terminales como son Nokia, Ericsson y Motorola formaron este joint venture en el ao 1998. Aunque en la actualidad la mayora de los activos pertenecen a Nokia. En 2008, y ante la aparicin de iPhone y Android en este mercado, la compaa finlandesa decidi liberar el cdigo, mediante licencias Eclipse, y unir las diferentes personalizaciones que haban surgido de Symbian.

Symbian empez con su primera release en el ao 1998 y estaba basado en el sistema EPOC hasta la actualidad cuya ltima versin lanzada que corresponde a la 9.5 en Marzo de 2007.

Figura 3. Dispositivo con sistema operativo Symbian

15

La estructura del sistema operativo Symbian consiste en : Symbian tiene un microkernel, en realidad un nanokernel de tiempo real que permite que existe slo lo imprescindible proporcionando de este modo mayor robustez, disponibilidad y capacidad de respuesta. Este microkernel est formado por un planificador, un gestor de memoria y controladores de dispositivos. La capa base de servicios, es el nivel ms bajo al que pueden llegar todas las operaciones desde el lado del usuario y en esta capa se incluyen el sistema de archivos, un sistema gestor de BBDD, biblioteca del usuario, as como un gestor de todos los plugins y servicios criptogrficos. El sistema de archivos escogido en Symbian y que vino predeterminado por EPOC es el sistema FAT, lo cual ha permitido una compatibilidad con otro tipo de dispositivos. En la capa de servicios del SSOO, se incluyen todos los servicios genricos del SSOO al mismo modo que tambin se incluyen servicios de comunicaciones y conectividad, y de servicios multimedia y grficos. Por ltimo, destaca la capa de interfaz de usuario. Puesto que en funcin de esta ltima capa se forman las distintas ediciones de Symbian. Dichas ediciones dependen de las diferentes interfaces, las cuales son las siguientes: Serie 60: Es una de las series ms utilizadas en smartphones debido principalmente a que su mayor divulgador ha sido Nokia aunque tambin lo utilizan fabricantes como Siemens, Samsung y Panasonic. Esta serie incluye diferentes versiones de Symbian debidas principalmente a la generacin de los terminales, as podemos encontrarnos para telfonos mviles de primera generacin, los cuales se comercializaron con una versin 6.1 del software destacando por ejemplo al Nokia N-gage o al Siemens SX1. Pasando por versiones desde la 7.0 a la 8.1 para mviles de segunda generacin hasta llegar a los terminales de tercera, cuarta y quinta generacin que incluyen versiones desde la 9.1 en adelante.

Figura 4. Dispositivo N-gage

16

-

Serie 80: Esta edicin va especialmente orientada a dispositivos que disponen de pantalla tctil y funcionalidades multitarea, es decir, tener corriendo varias aplicaciones simultneamente. Para este tipo de interfaz, utilizan versiones 6 y 7 de Symbian para mviles de primera y segunda generacin. Serie 90: Esta versin slo ha sido comercializada en el Nokia 7710, realmente es similar a la serie anterior. Serie UIQ: Fue desarrollado por los creadores de Symbian para su uso en mviles de la marca Motorola y Sony Ericsson. La principal caracterstica de esta serie, es que implementan una especie de multitarea virtual, dando la sensacin de poder realizar varias acciones simultneas pero a la postre elevan el tiempo de respuesta. Las versiones utilizadas principalmente para este tipo de terminales son la 7.0 y 9.x.

-

-

-

MOAP: Para este tipo de interfaz cuyo desarrollo ha sido promovido por el consorcio FOMA, el mayor inconveniente es que su divulgacin slo se ha realizado por Japn.

Las ventajas que ofrece Symbian, es la capacidad que tiene el sistema para adaptar e integrar todo tipo de aplicaciones que pueden ser programadas por diferentes desarrolladores. Tambin hay que tener en cuenta que dichas comodidades que Symbian proporciona se deben en buena medida a la estandarizacin de los protocolos, las interfaces y la gestin de los servicios de la integracin de sus aplicaciones. Adems de tener en cuenta como referencia a la hora de desarrollar dicho sistema bases tan importantes como proporcionar la energa, memoria y gestin de entrada y salida de los recursos requeridos especficamente. En cuanto a la hora de desarrollar aplicaciones, Symbian permite utilizar lenguajes de alto nivel como bien pueden ser Java, C++, Visual Basic o Perl. Por otro lado para el desarrollo de terceras partes, se proporcionan todo tipo de herramientas como SDKs para desarrollar aplicaciones para este tipo de sistema operativo, el inconveniente en este punto es que existen entornos de desarrollo y APIs diferentes en funcin de la interfaz sobre la cual se va a implementar la aplicacin a realizar. Al mismo tiempo que la firma del software generado.

17

2.3.2 Windows MobileWindows Mobile es el sistema operativo destinado a satisfacer las necesidades de los usuarios de dispositivos mviles; es uno de los sistemas operativos para mviles ms veterano que camina por la versin 6.5. Su origen se remonta a las agendas electrnicas denominadas Pocket PC, aunque luego se adapt ante la mejora de prestaciones de los telfonos. Su diseo proviene de Microsoft y representa la evolucin de la primera plataforma conocida que fue Windows CE. Con el desarrollo de este sistema operativo, Microsoft busca un sistema operativo mvil capaz de asegurar flexibilidad, productividad y usabilidad. Estos tres objetivos se alcanzan hacindolo semejante en cuanto a interfaz se refiere, a un Windows normal y corriente que se ejecuta en cualquier PC, pero el diseo de este caso en particular, se ha llevado a cabo teniendo en cuenta las necesidades del terminal. De tal forma, que los sistemas desarrollados, suelen ser modulares para facilitar al fabricante el acoplamiento de dicho sistema a las necesidades del hardware de su dispositivo. Esto se debe en cierta parte al complejo sistema de gestin de procesos e hilos de ejecucin, con el cual se puede ofrecer un tiempo de respuesta que lo convierte en un sistema de tiempo real duro, haciendo satisfacer de esta manera las necesidades de las aplicaciones ms exigentes.

Figura 5.Dispositivos con Windows Mobile Otro punto importante de Windows Mobile es su compatibilidad con los estndares de correo electrnico. Esto supone una mayor facilidad de adaptacin de las aplicaciones y familiarizacin por parte del usuario con ellas. Microsoft dispone de versiones de Office, Outlook, Internet Explorer o Windows Media Player para esta plataforma. Adems en el campo de la ofimtica, tambin ofrece una compatibilidad de esta plataforma con la suite Office, permitiendo de esta manera poder acceder a la visualizacin o edicin de archivos Word, Excel y Power Point que se han elaborado en el PC y favoreciendo de esta manera la continuidad del trabajo fuera de la oficina.

18

Esta integracin y compatibilidad permite a los usuarios disfrutar de una experiencia igual o al menos similar a la que estn habitualmente acostumbrados en su PC.

La estructura bsica de este tipo de sistema operativo, es la siguiente: OEM Layer: Esta es la capa situada en el ms bajo nivel, de modo que se sita entre el hardware del dispositivo mvil y entre el kernel del sistema operativo. Y su funcionalidad bsica es la permisividad que proporciona a los fabricantes para as poder desarrollar sus propios drivers y controlar los diferentes recursos del hardware. Operating System Layer: En esta capa es donde se sita el kernel del sistema operativo y donde tambin residen todas las bibliotecas de comunicaciones, el gestor grfico, y el gestor de ficheros y registros. Application Layer: Es la ltima capa y es sobre la cual se despliegan todas las aplicaciones de los usuarios al igual que las aplicaciones que vienen por defecto en el sistema operativo.

Para poder desarrollar aplicaciones en Windows Mobile es necesario descargarse las SDKs proporcionadas o para smartphones o para PocketPC, la diferencia entre ambos es que Microsoft considera a un Smartphone como de un Pocket PC (phone edition ) pero ms pequeo y sin Office Mobile. Para instalar las herramientas de desarrollo se han de cumplir una serie de requisitos software necesarios, principalmente se resume a que es necesario disponer del IDE de desarrollo de Microsoft, es decir, de Visual Studio. Dicha restriccin supone un serio inconveniente ya que para poder desarrollar es necesario tener software de pago. Existen dos formas de poder desarrollar aplicaciones en este sistema operativo: la primera es crear aplicaciones en cdigo nativo, es decir, cdigo C++ , de manera que se pueden utilizar las APIs de Windows Mobile, y a la vez permite que el cdigo sea mucho ms rpido que de la otra. La segunda forma de poder desarrollar aplicaciones en Windows Mobile, es la de poder programar aplicaciones en cdigo administrado, utilizando de esta manera las clases de .NET Compact Framework. Aunque las aplicaciones sean ms extensas, son ms sencillas de programar pero de esta manera no se permite el acceso a algunas caractersticas del hardware que slo pueden accederse desde el cdigo nativo.

19

En sntesis, es muchsimo ms sencillo programar desde el Compact Framework, puesto que el tamao que ocupe una aplicacin no es tan importante como la rapidez , y cmo pueden existir partes crticas del cdigo que pueden desarrollarse slo en cdigo nativo, por tanto aquellas partes difciles se dejan en cdigo nativo y el resto desde el administrado. Este sistema operativo se puede encontrar en marcas como HTC, Samsung, LG o Sony Ericsson.

2.3.3 iPhoneEn Junio de 2007, Apple lanz su ansiado telfono. Acostumbrados a revolucionar los diferentes mbitos en los mercados en los que participa este ente. El iPhone prometa cambiar el panorama en cuanto a los dispositivos mviles y ha conseguido una importante penetracin en el mercado.

Figura 6. iPhone El telfono inteligente de Apple ha sido revolucionario principalmente porque incorpora un completo sistema operativo. El iPhone OS, nombre del sistema operativo del iPhone, del iPod Touch y del reciente iPad, ha concitado mucha atencin gracias a su sistema patentado de manejo mediante una pantalla multitctil que no requiere de ningn lpiz ptico. La usabilidad y su atractivo diseo se contraponen a carencias como que no reproduzca vdeos en flash (excepto si se libera e instala alguna aplicacin especfica), la imposibilidad de que las aplicaciones trabajen en un segundo plano simultneo, a diferencia de lo que ocurre en las dems plataformas, y a configuraciones ms restrictivas, que restan libertad al usuario. Resulta apropiado para disfrutar del ocio multimedia: escuchar msica, ver vdeos o jugar a videojuegos, entre otras distracciones ya que cuenta con programas adaptados como su propio browser, es decir, Safari, el reproductor iTunes y multitud de aplicaciones ms, por tanto, es normal que destaque el xito de su tienda de aplicaciones entre empresas, programadores y usuarios. Sin embargo, en entornos profesionales se revela como poco eficiente, debido a que su pantalla tctil no resulta cmoda para escribir mensajes, correos electrnicos o para editar archivos de texto.

20

Principalmente, el kernel es un aspecto importante en todo sistema operativo, pero lo que realmente aprecia el usuario, es la interfaz. De este modo, iPhone ha marcado estilo con sus iconos y su fcil acceso a las aplicaciones, adems de la mencionada pantalla tctil que no necesita utilizar ningn puntero o lapicero, al mismo tiempo que en sus ltimas versiones permite personalizar la interfaz. Tcnicamente el iPhone OS deriva del Mac OS X, concretamente basado en una variante del March Kernel que se encuentra en todo dispositivo Mac. Y que al igual que sus hermanos mayores, este sistema operativo mantiene su estructura en cuatro capas. La primera y situada en el nivel ms bajo, est la capa del ncleo del sistema operativo, sobre sta se coloca una capa de servicios principales, y por ltimo las capas de medios de comunicacin y la capa de Cocoa Touch. De estas cuatro capas nombradas, hay que resaltar que las tres primeras son un fiel reflejo de lo que se puede encontrar en cualquier Mac OSX, sin embargo es en la ltima capa, en la Cocoa donde se encuentran las diferencias significativas puesto que se ha tenido que adaptar a los requerimientos de una pantalla tctil.

A continuacin se va a comentar detalladamente cada una de las capas que lo conforma:

Figura 7. Estructura iPhone OS

Capa de ncleo de sistema operativo o Core OS: Es la primera capa del sistema operativo, y es donde residen los pilares bsicos de ste. La importancia de esta capa se debe a que es donde reside el kernel OSX, as como todo el sistema de bibliotecas como de archivos, y toda la gestin de energa, seguridad, certificados y sockets.

21

Capa de servicios principales o Core Services: La capa de servicios principales, est situada por encima de la capa de ncleo y en ella se encuentran los servicios bsicos del sistema. Servicios como son el acceso a archivos, colecciones, redes (acceso a wifi y 3G), hilos (Posix), preferencias del sistema, y acceso a base de datos (sqlite). Capa de medios de comunicacin o Media: Por encima de la capa de los servicios principales del iPhone OSX reside la capa de servicios de comunicacin sobre la cual se otorga toda la responsabilidad de la gestin multimedia, bien sean grficos, audio, videos, etc En sta residen todo tipo de manejadores de audio, reproductores de vdeo, manejadores de archivos fotogrficos o documentos, etc Tambin maneja las bibliotecas necesarias para dibujar 2D y 3D. Adems incluye lo necesario para poder programar en C con soporte a tecnologas como openGL-ES, Quartz y CoreAudio. En ltimo lugar se sita la capa Cocoa Touch: Es en esta ltima capa donde se fija el framework de desarrollo tanto para iPhone, iTouch o iPad. Desde esta capa se puede acceder a la interfaz proveyendo una biblioteca para el manejo de ventanas, cuadros de dilogo, vistas y diversos controladores multi touch. Tambin se pueden acceder a las fotos, los contactos, el acelermetro,

Vista la estructura del sistema operativo del iPhone, existe otra caracterstica existe en estos dispositivos, y es que tanto el iPhone como los iTouch o iPad utilizan procesadores ARM en contraposicin a los x86 que se utilizan en las versiones de sistemas operativos destinadas para PCs. Este hecho desemboca en que cualquier aplicacin probada y ejecutada en cualquier Mac OSX no se puede ejecutar en iPhone OS. Entonces, toda aquella aplicacin que se desee que funcione dentro de un iPhone o similares, tiene que haber sido compilada y escrita para la disposicin ARM y hipen OS. Al igual que una aplicacin debe ser creada para una arquitectura especfica, otra desventaja que muestra iPhone OS, es que no se permite ms de una aplicacin ejecutndose a la vez, y las aplicaciones de terceros no se pueden ejecutar en segundo plano. De esta forma, Apple se evita toda serie de complicaciones y problemas relacionados principalmente con la batera, todo ello a cambio de que los programadores vuelvan a los tiempos de la multitarea cooperativa. Tambin se debe garantizar el buen funcionamiento de la aplicacin cuando otra aplicacin reemplace su lugar y que tampoco se queden a la espera de algn evento por un tiempo indefinido. Aunque en la ltima versin de iPhone (4.0) dicho problema se solventa y permite la multitarea.

22

La nica manera de instalar legalmente un programa en iPhone es a travs de la AppStore. El desarrollador enva la aplicacin finalizada a Apple, quien decide si la publica o no, basndose en criterios propios. El xito de la plataforma est en que la demanda del consumidor obliga a los desarrolladores a seguir trabajando sobre el iPhone, impidiendo Apple la competencia sobre su propio software. En este sentido, iPhone es el nuevo paradigma de la plataforma cerrada, ya que en el ltimo momento es Apple el que decide que se puede instalar sobre su plataforma, realizando un control exhaustivo sobre qu se puede desarrollar, quin puede distribuir las aplicaciones y qu puede hacer el usuario con el dispositivo mvil. Como se ha comentado antes, el desarrollo de aplicaciones para el iPhone no es de fcil acceso debido a las polticas establecidas por Apple, que en cierta manera son restrictivas o arancelarias, dificultando la propagacin entre desarrolladores y no proporcionado APIs tan consolidadas como pueden hacer otros sistemas operativos. Para concluir con este sistema operativo se va a explicar los diversos pasos que se deben realizar para poder desarrollar una aplicacin para iPhone y las facilidades o trabas que se pueden encontrar para poder realizar aplicaciones para este entorno.

1) Inscribirse en el iPhoneDevCenter: este es el portal de Apple donde se da de alta para poder desarrollar aplicaciones para iPhone, aqu, en este website se puede descargar la SDK y diversa documentacin para poder programar en este entorno. Realizado este primer paso, se puede empezar a desarrollar aplicaciones, compilarlas, probarlas en el simulador pero no se pueden instalar en el iPhone.

2) Registrarte en el programa de desarrollo de iPhone (iPhone Developer Program): tras registrarse y tras abonar una cantidad prxima a los 100 dlares se obtiene el derecho a ejecutar la aplicacin que se haya elaborado en el propio iPhone.

3) Obtener certificados: como por defecto slo se pueden ejecutar aplicaciones firmadas por Apple, y como cada vez que se hagan modificaciones en el cdigo programado, no se lo est enviando constantemente los programadores para poder probarlo. Se crea un perfil con el identificador del telfono, y adems se debe obtener otro certificado para poder firmar las aplicaciones.

23

4) Xcode: en este paso, si todos los anteriores han ido bien, ya podemos desarrollar aplicaciones con el IDE que proporciona Apple (Xcode). Anteriormente, Apple tena prohibido a los desarrolladores de aplicaciones hablar sobre su SDK, aunque en la actualidad se ha elevado el nivel de permisividad y se puede comentar entorno a aplicaciones e intercambiar cdigo. Y si por ltimo se desea que la aplicacin sea distribuida para el resto de usuarios del iPhone, se debe de obtener otra certificacin y esperar la verificacin por parte de Apple y una vez que la aplicacin sea aprobada, esperar a que los usuarios quieran utilizar la aplicacin desarrollada.

2.3.4 BlackberryBlackBerry es el sistema operativo de los mviles del mismo nombre fabricados por RIM. Gran parte de sus modelos se han concebido para uso empresarial y para exprimir su teclado completo, aunque el software tambin soporta en la actualidad las pantallas tctiles La BlackBerry es una seria oportunidad de unir el mundo de los negocios con las necesidades personales. Si bien BlackBerry no aporta una interfaz bonita, su sistema operativo sigue siendo el tradicional BlackBerry OS desarrollado por RIM. Un sistema con interesantes cualidades multitarea, que el sistema operativo hace sello de identidad de l mismo, puesto que se puede ejecutar aplicaciones de mensajera instantnea de fondo, mientras navegamos por Internet o redactamos un correo electrnico.

Figura 8. Dispositivo BlackBerry La capacidad de trabajar en entornos multitarea con eficiencia es algo que se valora bastante al realizar la eleccin sobre qu tipo de terminal mvil a utilizar, y muchos usuarios demandan la productividad que se consigue al utilizar varias aplicaciones al mismo tiempo.

24

Con BlackBerry, no solo conseguimos una productividad efectiva, sino que el sistema se vuelve ms dinmico al realizar notificaciones y operaciones en tiempo real mientras realizamos otras tareas. Tambin ofrece amplias garantas a las demandas de que los sistemas operativos ofrecieran servicios de correo electrnico, amn de que fuera fcil de usar y rpido. Estas demandas se ven satisfechas puesto que hoy das RIM aparte de ser el encargado de construir y desarrollar el BlackBerry OS, es una empresa que ofrece un amplio abanico de dispositivos y es tambin proveedor de servicios de correo electrnico a dispositivos que no son BlackBerry como pueden ser Symbian, Windows Mobile o Palm, gracias al programa BlackBerry Connect.

Figura 9. Logotipo empresa RIM En cierta manera, BlackBerry fue el pionero en el campo de introducir servicios de correo electrnico mediante la tecnologa push la cual permite a los usuarios poder seguir conectados al correo electrnico y a muchas aplicaciones corporativas. Dicha tecnologa consiste principalmente en que los mensajes se reciben constantemente, sin necesidad de que el usuario tenga que realizar una conexin y comenzar a descargarlos. As, en un dispositivo BlackBerry es posible redactar, enviar y recibir todo tipo de mensajes de correo electrnico, al igual que en un PC cualquiera. Destaca por la forma en que integra el correo electrnico y enva los mensajes segn se reciben, un servicio que requiere de una tarifa plana de datos para disfrutarlo con comodidad. El sistema operativo deja que funcionen varias aplicaciones al mismo tiempo. Las desventajas que puede ofrecer el sistema operativo de BlackBerry se pueden encontrar que su navegador se caracteriza por ser ms lento que el de sus rivales y no tiene tanta variedad de software de terceros disponible como los dems, y de que no ofrece conectividad va wifi pero s dispone de las aplicaciones ofimticas principales lo cual lo hacer ser la mejor eleccin y ms competitivo para entornos laborales.

25

La estructura en s del sistema operativo de BlackBerry, es propio de la empresa canadiense RIM (Research In Motion) y como bien se ha comentado anteriormente en un ejemplo claro de icono de los entornos de oficina.

Aunque la estructura de este sistema operativo no ste divulgado, ya que ste es propio y cerrado, la base del kernel de BlackBerry es AMX, y la gran parte del sistema operativo est desarrollado bajo los estndares de Java, concretamente Java ME. De lo que se puede extraer de la informacin que puede ser accesible desde la web para saber ms o menos sobre cmo es este sistema operativo se puede tener constancia que la configuracin utilizada por BlackBerry, es decir, el conjunto de clases bsicas destinadas a conformar el corazn de la aplicacin es CLDC (Connected Limited Device Configuration). Este tipo de configuracin va enfocada a todos aquellos dispositivos que tengan toda clase de restricciones de procesamiento y memoria. Sabiendo la configuracin escogida, se puede saber la mquina virtual utilizada, que es la CVM (Compact Virtual Machine). Dicha mquina virtual, tiene las mismas caractersticas que la JVM que se utiliza normalmente para JSE, sin embargo la CVM est orientada para dispositivos electrnicos con procesadores de 32 bits de alta gama y con 2Mb de RAM.

A la hora de programar o poder desarrollar aplicaciones para BlackBerry, hay que tener en cuenta que la plataforma utilizada es Java ME y que la funcionalidad de la mayora de las aplicaciones van destinadas u orientadas hacia entornos corporativos o empresariales.

Es conveniente saber que existe un entorno para poder crear todo tipo de programas empresariales bajo la herramienta BlackBerry MDS Studio, desde la cual se pueden crear interfaces de usuario con la tcnica drag and drop para as poder acceder a datos empresariales va webservice. Tambin desde Blackberry se proporciona gratuitamente una JDE, concretamente el BlackBerry Java Development Enviroment, desde este IDE se proporciona el acceso a las APIs de Java ME como a las propias de BlackBerry, adems de incluir diversos simuladores de este tipo de dispositivos desde donde se puede probar el cdigo desarrollado. El nico inconveniente a la hora de desarrollar para BlackBerry, es que se debe de estar registrado para poder programar y que el cdigo que se quiere desplegar dentro de un terminal de este tipo tiene que estar previamente firmado por RIM.

26

2.3.5 AndroidY en ltimo lugar Android. Antes de hablar sobre este sistema operativo, aclarar previamente que su estructura as como la posibilidad de desarrollar programas bajo este entorno, se van a explicar detalladamente en apartados posteriores, realizando de esta manera en este punto una breve introduccin a este nuevo sistema operativo. Android es un sistema operativo que impuls Google y ahora promueve la Open Handset Alliance (con fabricantes como HTC, Samsung, LG o Motorola adems de la propia Google). Ha sido uno de los ltimos en llegar a este segmento, pero ha irrumpido con fuerza en varios terminales avanzados, como los de HTC. Constituye una pila de software pensada para telfonos mviles y que incluye tanto un sistema operativo, un middleware y diversas aplicaciones de usuario.

Las aplicaciones de Android se programan en lenguaje Java y son ejecutadas en una mquina virtual diseada a medida para este sistema. Cuenta con el aval de la compaa Google. En el aspecto tcnico destaca su creacin a partir del kernel Linux(2.6) y dispone de una licencia libre Apache. Desde el punto de vista de un desarrollador, Android, proporciona de forma gratuita una SDK y un plug-in para el entorno de desarrollo Eclipse, as como un emulador integrado para su ejecucin.

Figura 10. Android En sntesis, la visin que se intenta tener de Android, es la de una misma plataforma que rene todos los elementos que permitan desarrollar, controlar y aprovechar las funcionalidades que ofrecen los dispositivos mviles. Del mismo modo que tambin se busca que todas las aplicaciones sean portables, reutilizables y fciles de desarrollar. Slo recordar que en apartados venideros se hablar con mayor pausa y detenimiento sobre las caractersticas tcnicas que Android ofrece, as como de las facilidades que se ofrecen para poder desarrollar aplicaciones en el sistema operativo de Google.

27

Captulo 3 El sistema Operativo Android3.1 Introduccin

Android es una pila de software de cdigo abierto que incluye un sistema operativo, middleware, y aplicaciones clave con una series de libreras API para poder desarrollar aplicaciones en terminales mviles a las cuales se las pueden dar la forma y el funcionamiento especfico para que pueda funcionar en telfonos mviles. Hasta hace poco, poder desarrollar aplicaciones para telfonos mviles era dificilsimo porque se programaban bajo sistemas operativos propios y en entornos de desarrollo cerrados, a los cuales era imposible acceder. As mismo, los propios terminales priorizaban las aplicaciones nativas, hacindolas prevalecer frente a aplicaciones que se hayan desarrollado por terceras partes. Esto supona una barrera infranqueable para los desarrolladores de este tipo de aplicaciones. En Android las aplicaciones tanto nativas como las desarrolladas por terceras partes son escritas usando la misma API y ejecutadas en las mismas condiciones. Es por ello que en Android todas las aplicaciones son iguales sin hacer ninguna distincin ni discriminacin.

Figura 11. Icono de Android Histricamente, los desarrolladores codificaban sus aplicaciones en lenguajes de bajo nivel, para lo que era necesario entender el hardware especfico sobre el que iban a trabajar, y generalmente solan ser un dispositivo sencillo o un rango de dispositivos provenientes del mismo fabricante. En la actualidad, los avances realizados en el desarrollo de aplicaciones para terminales mviles, han hecho que se pueda programar con un nivel de abstraccin para que el programador se asle de la capa hardware y no estar pendiente de ella.

28

Entre las caractersticas del sistema operativo Android destacamos: Todas sus aplicaciones se programan en lenguaje Java y son ejecutadas en una mquina virtual especfica diseada para esta plataforma.

Todo su software se ha realizado bajo una licencia Apache, de modo que el cdigo es de libre distribucin. Tambin una de las causas primordiales por las cuales se ha escogido una licencia Apache, es porque este tipo de licencia permite que se realicen modificaciones sobre el software inicial y una vez que se realicen los oportunos cambios, no exige que el software alterado se distribuya como software libre. Permite a las operadoras modificar a su gusto la plataforma, aadir nuevas funcionalidades y no tener que compartir el cdigo ni permitir su uso a terceros. As, de este modo, se puede entender como algunos operadores y fabricantes hayan visto con buenos ojos esta iniciativa y es por ello que se hayan sumado a Android. La principal causa de esta adhesin es que dichas compaas podrn modificar el cdigo y desarrollar todo tipo de aplicaciones o trabajos sin la necesidad de verse obligados a compartir todo la elaboracin producida. De todas formas, la licencia Apache propuesta por Android, permite que cualquier persona se pueda descargar, acceder al cdigo fuente, modificarlo y redistribuirlo pero con el ligero inconveniente que a cualquier persona se le exime de este ltimo punto.

A cualquier desarrollador que se plantee programar sobre esta plataforma, se le proporciona de forma totalmente gratuita un entorno de desarrollo, es decir una SDK que se puede instalar junto con un plugin en uno de los IDEs ms famosos y conocidos como es Eclipse. Adems se integra un emulador en el cual se pueden realizar todo tipo de pruebas sobre el programa elaborado y s stas han salido satisfactorias se puede importar el proyecto elaborado al propio dispositivo mvil.

La principal finalidad que busca Android desde el punto de vista del desarrollador, es que ste pueda sacar de s lo mayor posible de la plataforma, poder controlar y aprovechar cualquier funcionalidad que se proporcione desde el sistema operativo, y que toda aplicacin que se pueda crear sea portable, fcil de desarrollar y reutilizable. Con todo ello, se intenta buscar un estndar para el desarrollo de este tipo de aplicaciones. Por ltimo, cabe destacar la gran facilidad que desde Android se ofrece para poder integrar todo tipo de aplicacin con las aplicaciones Web de Google.

29

3.2

Estructura de Android

El stack de software a grandes rasgos, est formado por: un ncleo de Linux, una serie de libreras escritas en cdigo C/C++,un entorno de ejecucin propio (Android Run Time), un framework de aplicaciones y las propias aplicaciones. A continuacin se puede ver el esqueleto de este sistema operativo, y debajo de la misma se explicarn cada una de las partes que lo conforman.

Figura 12.Estructura del sistema operativo Android La estructura del sistema operativo es la siguiente: El ncleo de Linux: es la capa ms baja situada y es donde se sitan los servicios bsicos, es decir, en esta capa se establecen los drivers del hardware, la gestin de procesos y memoria, la seguridad, y las gestiones de redes y de energa. Todo ello est manejado por un kernel de Linux con versin 2.6, y cuya funcin principal es abstraer a las diferentes capas sucesivas que soporta la estructura de Android del hardware de la mquina. Aparte de las propiedades que puede dar dicho kernel de Linux, tambin hay que decir que precisamente dicho ncleo, incluye diversos drivers lo cual le hace semejante a cualquier otro kernel que corre en un ordenador personal. Por otro lado, este kernel, al ser Linux cumple con las expectativas con las que Android se lanzar bajo licencia Apache.

30

Figura 13.Icono licencia Apache Por encima del ncleo de Android se establecen una serie de libreras escritas en lenguaje C/C++, y al igual que el ncleo, estas libreras son iguales de bsicas. Dentro de las libreras, las ms importantes son las siguientes: o Libc: esta librera incluye todas las cabeceras y funciones segn el estndar de C. o SQLite: es la librera que implementa un motor de base de datos. SQLite es software libre, por lo tanto el cdigo fuente es de dominio pblico. o Surface Manager (Administrador de Superficies): es la que realiza toda la gestin del acceso a los subsistemas de pantallas. Adems es la encargada de gestionar todas aquellas pantallas de las diferentes aplicaciones activas que se encuentren en ese preciso instante. o SSL & WebKit: ambas libreras son las encargadas de integrar un navegador para Internet y de proporcionar seguridad cuando se acceda a sta. o Media: el principal uso de esta librera es para poder reproducir tanto archivos de audio o video, as como los archivos fotogrficos. Cabe destacar que en esta librera se proporcionan los cdecs necesarios para poder reproducir los formatos ms populares. o OpenGL / ES y SGL: la ltima libre, la SGL, es la encargada de proporcionar el motor grfico de 2D. Sin embargo, la OpenGL / ES maneja los grficos 3D en el caso de que el hardware del telfono mvil lo disponga. o FreeType: es la encargada de la renderizacin de fuentes, para mapas de bits y vectores.

31

La siguiente capa, y que se sita en el mismo nivel que la anterior, es el entorno de ejecucin de Android, o la Android Run Time. Android incluye un set de libreras base que proveen la mayor parte de las funcionalidades disponibles en las libreras base del lenguaje de programacin Java. Todas las aplicaciones se programan en Java y para poder ejecutarlas se ha creado especficamente para Android una mquina virtual, la Dalvik Virtual Machine. Lo particular de esta mquina virtual, es que ha sido especialmente optimizada y adaptada para las caractersticas de cualquier telfono mvil. Cada aplicacin Android corre su propio proceso, con su propia instancia en la mquina virtual Dalvik. Esta mquina virtual, ha sido escrita de forma que un dispositivo puede correr mltiples mquinas virtuales de forma eficiente. Dalvik ejecuta archivos en el formato Dalvik Executable (.dex), y no con el bytecode generado por Java, de forma que los .dex estn optimizados para un uso mnimo de la memoria y pensados para procesadores pequeos. Dicha mquina virtual est basada en registros, y ejecuta las clases compiladas por el compilador Java y que se han transformado en el formato .dex por la herramienta dx. Para hacernos una idea real de lo que sucede, y de la eficiencia de esta mquina virtual, se va a explicar un poco como se realiza todo el proceso. Una vez que se genera el bytecode de la aplicacin escrita en Java, es decir, una vez que obtenemos los .class la mquina virtual genera un .dex con toda la agregacin de estos cdigos objeto, por hacer un smil sencillo, un .dex podra asemejarse a un archivo jar.

La penltima capa dentro de la estructura del sistema operativo Android es la del Framework de Aplicaciones. A partir de aqu, las ltimas capas de la plataforma, se sustentan sobre Java. En esta capa se proporcionan todas las clases necesarias para poder crear aplicaciones en Android. Del mismo modo, este framework proporciona un nivel de abstraccin del acceso al hardware y la gestin de la interfaz del usuario y de los recursos de la aplicacin. Los desarrolladores tienen acceso a las mismas APIs que las aplicaciones base, con el nico objetivo de poder reutilizar los componentes utilizados para la aplicacin realizada. En cuanto a las APIs ms conocidas son las siguientes: o Administrador de Telfono: destinada para que el desarrollador pueda interactuar con las funcionalidades del telfono, como son los mensajes SMS, llamadas, o Proveedor de Contenidos: con esta API, se pueden compartir los datos de cualquier aplicacin.

32

o Administrador de Ubicaciones: permite que las aplicaciones obtengan informacin sobre la localizacin y posicionamiento de sta. o Administrador de Actividad: es la API encargada de gestionar el ciclo de vida de las aplicaciones. o Administrador de Ventanas: con ella se pasan a gestionar las ventanas de las aplicaciones. o Vista del Sistema: es con la cual se realiza toda la interfaz de usuario.

La capa de Aplicaciones es la ltima capa del software, en la que se encuentran tanto las aplicaciones nativas provistas por Android como las desarrolladas por terceras partes. Todas ellas, han sido construidas en esta capa y utilizando las mismas APIs y bajo el mismo lenguaje de programacin, Java.

33

3.3

Estructura de una aplicacin Android

A la hora de construir una aplicacin en Android, hay que tener en cuenta que dicha aplicacin puede estar compuesta de un tipo especfico de componente o de la combinacin de ambos. Estos componentes son los que a la postre van a identificar y caracterizar a la aplicacin que se llegue a crear, ya que en funcin de stos la clase que se desarrolle heredar las caractersticas del componente, y por lo tanto pueden existir diferentes formas de comportamiento, en cuanto a la aplicacin se refiere, segn el tipo de componente que se decida a usar. Los diferentes tipos de componentes con los cuales podemos crear aplicaciones en Android son los siguientes: Activity Es el componente ms importante en cualquier aplicacin Android, debido principalmente a que es la capa de presentacin para todo tipo de aplicacin. Cualquier pantalla que se muestre al usuario, ser una extensin de la clase Activity. Y para dicha presentacin se sirve de Views, para poder realizar la interfaz con la cual el usuario podr interactuar. Est clase puede ser equivalente a lo que es un formulario en la arquitectura web. Services Este componente, es totalmente opuesto al anteriormente explicado. La clase Services al contrario que la Activity, no interacta para nada con el usuario, y es completamente invisible a los ojos del usuario. Se puede decir prcticamente, que este componente corre por debajo, en un segundo plano, realizando cualquier tipo de procedimiento que est obligado a realizarse sin la necesidad de que sea visible al usuario. La clase Service por as decirlo, son las clases que se ejecutan en background. Content Provider Los Content Provider, son principalmente utilizados para gestionar y almacenar las bases de datos de la aplicacin. Tambin permiten que cualquier aplicacin almacenen los datos en un fichero o cualquier otro formato. La gran ventaja que presenta este tipo de componente, es que permite a cualquier aplicacin acceder a los datos que estn siendo utilizados por otras aplicaciones a la vez.

34

Intent Un Intent, es un simple mensaje, que se utiliza para determinar el objetivo de la aplicacin, es decir, su propsito. La principal peculiaridad es la forma en la cual los Intent describen la tarea que se va a llevar a cabo y los datos necesarios para realizarla. En ltima estancia, es el sistema el que finalmente decide que k ser el ms indicado para realizar sus acciones. Este componente, est muy ligado al Activity, puesto que las Activities, realizan los cambios de vista o de interfaz por medio de los Intent.

Broadcast Receivers Con esta clase, la aplicacin que se crea, est a la escucha de cualquier Intent proveniente de distintas aplicaciones. Al utilizar este componente, la aplicacin puede empezar automticamente y responder al Intent que est a la escucha. Se puede decir que la aplicacin est a la escucha de un evento para llevar a cabo la accin a la cual est predestinada. Generalmente las aplicaciones que utilizan esta clase, se utilizan para lanzar eventos provenientes de cualquier tipo de Intent. Un claro ejemplo puede ser la gestin de las llamadas entrantes que recibe el dispositivo mvil.

35

3.4

Ciclo de vida de una aplicacin en Android

Los componentes que forman las aplicaciones en Android, tienen bien definido un ciclo de vida de manera que se puede saber en cualquier momento en que estado est la aplicacin para poder gestionar los flujos de sta en funcin de su estado. A la hora de ejecutar una aplicacin en Android, sta se lleva a cabo en su propio proceso, de tal modo que Android es el encargado de gestionar todas las aplicaciones, arrancarlas o pararlas en funcin de los recursos que la aplicacin necesite. Android asla totalmente al usuario del dispositivo de la labor que el sistema operativo est realizando para poder ejecutar la aplicacin que el poseedor del telfono desee. Android ejecutar tantos procesos en funcin de los recursos que tenga disponibles, los cuales pueden estar a la vez formados por ms de una actividad (Activity). A diferencia de otros entornos, las aplicaciones en Android, no tienen el control sobre su propio ciclo de vida. En cambio, los componentes de los que est formada dicha aplicacin estn al tanto de los cambios de estado que sta pueda generar. De modo que durante la ejecucin puede suceder que una actividad pare mientras otra sea lanzada, de tal manera que el proceso es consciente del estado en cual se ha quedado para que en un futuro vuelva a dicho estado cuando el sistema le conceda el mando. El caso ms conocido de ciclo de vida, es el del componente Activity, cuyo diagrama es el siguiente:

Figura 14.Ciclo de vida componente Activity

36

Como se puede observar en la figura anterior, los diferentes estados que conforman el ciclo de vida de una actividad son los siguientes: onCreate: Es el estado en el cual da comienzo el ciclo de vida de la aplicacin. onDestroy: Estado en el que se da por finalizado el ciclo de vida. onStart: Junto con el estado onStop forman el conjunto de estados en los cuales se maneja la actividad desde su comienzo. onStop: Es el estado en el cual permanece la actividad cuando sta no tiene el mando para realizar sus procesos. Es similar al estado onPause. onPause: Similar al estado anteriormente descrito. La actividad permanece en este estado cuando sta no recibe el foco de atencin por parte del sistema. onResume: Al igual que el estado onPause, ambos estados acotan el ciclo de vida de la actividad en funcin del foco de atencin dispensado a la aplicacin.

3.4.1

Prioridad de procesos

Una vez visto el ciclo de vida de una aplicacin en Android, y concretamente cuando una aplicacin se crea, su flujo concluye cuando sta finalice o cuando otra actividad necesite los recursos que la aplicacin est consumiendo. La preferencia por parte de Android a la hora de priorizar determinadas aplicaciones en funcin de otras se debe en gran parte al tipo de componente que lo forma, ya que la importancia de stos una aplicacin puede ser ms prioritaria respecto de otra. A la hora de programar una aplicacin hay que tener en cuenta la prioridad a la cual se la va a asignar puesto que en funcin de la prioridad la aplicacin puede morir durante un proceso de ejecucin importante. La importancia en cuanto a procesos se refiere es la siguiente, de mayor a menor prioridad: 1. Procesos activos. Son los procesos cuya importancia es crtica. Son aquellos que estn albergados en aplicaciones que estn continuamente estableciendo contacto con el usuario, y que generalmente son liquidados en ltima estancia.

37

Este tipo de prioridad corresponde a: Activities que se encuentran en un estado activo y que estn respondiendo continuamente a eventos del usuario. Activities, Services o Broadcast Recivers, que se estn ejecutando cuando reciben un evento. Componentes Services que se ejecutan tras un evento proveniente de una aplicacin que se crea, comienza o se destruye.

2. Procesos visibles. Como su propio nombre indica, son componentes de tipo Activity que son visibles pero no estn al mando. En extraos casos son matadas. 3. Procesos de servicio. Son aquellas aplicaciones cuyo principal componente de aplicacin es un Service, y tienen menor prioridad que un Activity, en gran parte a que este tipo de procesos no estn continuamente interactuando con el usuario y a que son consideradas actividades que transcurren en un segundo plano. Este tipo de procesos no son matados a menos que sean necesarios los recursos de los que dispone. 4. Procesos de segundo plano. A diferencia de los anteriores, son procesos que corren en un segundo plano y que no disponen de ningn servicio. 5. Procesos vacos. Son aquellos procesos que se mantienen en cache para un posterior relanzamiento.

38

3.5

Herramientas para el desarrollo

En este apartado se va a comentar las herramientas y los pasos necesarios para poder desarrollar aplicaciones en Android. Es necesario conocer el sistema operativo as como el procesador sobre el cual se va a instalar el conjunto de herramientas necesarias. Este procedimiento es importante porque a la hora de instalar la SDK de Android, existen una serie de necesidades que no hay que pasar por alto. La SDK de Android es totalmente compatible con los principales sistemas operativos que existen en el mercado, es decir, Windows, Mac y Linux. Eso s, es necesario disponer de un procesador de 32 bit. A continuacin es necesario disponer de una JDK, preferiblemente 1.5 o 1.6 y disponer a su vez del IDE de desarrollo Java Eclipse, necesariamente versin 3.4 o superior. Procedimientos para instalar las herramientas.

3.5.1

Instalar SDK Android

Dentro de este apartado, se indicar como configurar dicha SDK dentro del sistema operativo sobre el cual se instalar. Bien, una vez que hemos cumplido los requisitos del apartado anterior, nos dirigimos al website dedicado para Android: http://developer.android.com/sdk/index.html Y una vez all, nos descargamos la SDK en funcin de nuestro sistema operativo, bien puede ser Windows, Mac o Linux. A continuacin, descomprimimos el archivo en cuestin y teniendo en cuenta la ruta en la cual se ha descomprimido dicho archivo.

El siguiente paso es configurar el path de la SDK como variable de entorno. En el caso de que dispongamos de un sistema operativo Windows, es sencillo puesto que pinchamos botn derecho sobre el icono de MiPC y nos dirigimos a Propiedades->Variables de entorno->Variables del sistema

39

Figura 15. Configuracin de la variable del sistema Y dentro de la opcin de Variables del sistema, nos fijamos en la variable Path y la modificamos, introduciendo la ruta en la cual se encuentra la SDK de Android descomprimida, teniendo en cuenta hasta la carpeta tools.

Figura 16. Configuracin de la SDK como Path del sistema Si por el contrario disponemos de un sistema operativo Linux, slo hace falta ejecutar en la lnea de comandos (en modo administrador) y editar el path en el archivo ~/.bash_proile o ~/.bashrc y a continuacin: Export PATH=${PATH}:/tools Concluido el proceso de instalacin de la SDK, se procede a la instalacin del plugin necesario para Eclipse.

40

3.5.2

Instalar plugin en Eclipse

Ahora, el siguiente paso es iniciar Eclipse, para que de este modo podamos incluir el plugin necesario de Android, y as incluir la herramienta ADT (Android Development Tools) la cual permitir crear proyectos de Android, debuggarlos y ejecutarlos. Abierto el IDE Eclipse, en la pestaa Help->Install New Software y en la ventana nueva que aparece, pulsar el botn Add.

De nuevo aparecer una nueva ventana en la cual en los campos Name se pude introducir por ejemplo ADT y en el campo Location la siguiente URL: https://dl-ssl.google.com/android/eclipse/ Y una vez realizado, pulsar el checkbox o el botn Select All y pulsar el botn Next.

Figura 17. Configuracin del plugin de Android en Eclipse I

Figura 18. Configuracin del repositorio ADT

41

Figura 19. Configuracin del plugin de Android en Eclipse II Y a partir de ah comenzar a descargarse el software necesario para comenzar a desarrollar aplicaciones. Por ltimo Eclipse pedir que se reinicie, para poder configurar los cambios realizados.

3.5.3

Completar la instalacin

Tras reiniciar Eclipse, los siguientes pasos a realizar son: 3.5.3.1 Referenciar SDK Para poder crear proyecto, debemos referenciar la SDK en la pestaa Windows>Preferentes->Android->Browse y buscar el path sobre el que se encuentra la SDK.

Figura 20. Configuracin del path de la SDK de Android en Eclipse Y en ltimo lugar pulsar Apply y Ok.

42

3.5.3.2 Configurar emulador AVD y actualizar plugin Para finalizar la configuracin de la SDK en Eclipse, se proceder a la descripcin de la configuracin del emulador y de las posteriores actualizaciones necesarias. A la hora de realizar ambas operaciones se debe pulsar sobre el icono:

Figura 21. Icono Plugin Android en Eclipse Y a continuacin, sobre el campo Virtual Devices pulsar el botn New, y aparecer la siguiente ventana.

Figura 22. Configuracin del emulador de Android En la figura mostrada, es sobre la cual se crear el emulador Android correspondiente, dnde el principal hincapi es en el campo target, puesto que se le asigna la SDK correspondiente.

43

Para finalizar, sobre la primera ventana mostrada tras pulsar el icono anteriormente descrito en la Figura 21, sobre el campo Available Packages, y pulsando el checkbox y posteriormente el botn Install Selected. Comenzar un proceso de actualizacin de la SDK.

Figura 23. Actualizador de versiones

3.5.4

Otras herramientas tiles

Como bien se ha podido apreciar en el apartado anterior la SDK de Android, incluye diversas herramientas y utilidades que permiten al usuario poder crear, testear y analizar las propias aplicaciones. Otra herramienta que aporta la SDK es el emulador. El cual es una propia mquina virtual destinada a ejecutar las aplicaciones de Android, es por ello la manera ms cercana de poder conocer cmo sera un dispositivo mvil con dicho sistema operativo. ste a su vez, dispone de una variedad de posibles maneras de mostrarse como interfaz grfica, es decir, dispone de distintos tamaos de pantalla, resoluciones. Adems de proveer de una buena conexin a Internet, en cuanto a rapidez y latencia respecto a las aplicaciones, y de permitir recibir llamadas y SMS, obviamente simulados. Como aadido a las caractersticas anteriormente habladas, existe una funcionalidad que permite al emulador de Android contactar y realizar operaciones mediante una conexin Telnet. A travs del puerto 5554 se puede entablar todo tipo de rdenes con el emulador.

Tambin existen otro tipo de funcionalidades no menos importantes pero que merecen la pena describirlas.

44

3.5.4.1 Otras funcionalidades del emulador Dentro del emulador, existe la posibilidad de poder utilizar imgenes que puedan simular memorias internas, flash o de otro tipo. Las diferentes tipos de imagen son los siguientes: Imagen de sistema: son el tipo de imagen necesaria para que el emulador pueda arrancar, de modo que slo son de lectura y obtienen informacin sobre la manera de ejecutarse ste. Imagen de runtime: a diferencia de las anteriores, stas permiten escribir adems de la posibilidad de leer de la imagen correspondiente. Y principalmente se utilizan para guardar datos de la sesin, como pueden ser aplicaciones instaladas. Al igual que las imgenes que simulan almacenamientos extrables. Imagen temporal: la caracterstica principal de estas imgenes es que al acabar la ejecucin, es decir, al apagar o cerrar el emulador, se eliminan por completo. Y la utilidad que tienen, es para hacer las labores de cach y para realizar una copia del sistema.

3.5.4.2 Dalvik Debug Monitor Service Aparte del emulador, existen otras herramientas que facilitan la programacin de cualquier aplicacin en Android. De estas herramientas cabe destacar la Dalvik Debug Monitor Service o DDMS. En primera instancia, el emulador, te permite ver qu aspecto presenta la aplicacin, cmo se comporta y poder interactuar con la misma, pero realmente no sabes lo que realmente est pasando dentro. De este modo, la DDMS es una herramienta que permite debutar la aplicacin y conocer en todo momento que est sucediendo dentro de los entresijos de la aplicacin que se est ejecutando. De esta manera, con esta herramienta, se tiene una versin fidedigna de la ejecucin de la aplicacin, porque se pueden acceder a los log, conocer de manera primordial la gestin de recursos, y la simulacin de envo de SMS as como de llamadas entrantes y geolocalizacin.

45

Para poder acceder a esta herramienta basta con pulsar la pestaa Window-> Open Perspectiva-> DDMS. Y aparecer una perspectiva similar a la siguiente imagen.

Figura 24. Imagen DDMS 3.5.4.3 Android Debug Bridge Para finalizar, la Android Debug Bridge o ADB, es una herramienta que mediante una arquitectura cliente servidor permite conectarte desde tu mquina al dispositivo Android. Esta herramienta te permite copiar archivos, instalar aplicaciones o ejecutar comandos para acceder a la shell. Para poder utilizar las utilidades que nos facilita esta herramienta, basta con acceder mediante la lnea de comandos hasta el path en el que se encuentra la SDK, y acceder a la carpeta tools y una vez all, ejecutar los posibles comandos. De entre esos comandos, los ms comunes son los siguientes: adb shell: con este comando se puede acceder al directorio root del terminal y desde ese punto se podrn lanzar diversos comandos contra el dispositivo. Como por ejemplo acceder al sistema para poder borrar las aplicaciones instaladas. adb push [local][remoto]: con este comando se pueden enviar archivos al dispositivo desde nuestra propia mquina.

46

adb pull [remoto][local]: el comando contrario al anterior, con l, nos descargamos archivos desde el dispositivo a la mquina. adb install [path/aplicacion.apk]: con este comando, se permite instalar aplicaciones en el dispositivo, indicndole slo la ruta desde donde se encuentra el paquete compilado de la aplicacin(.apk). adb reboot: comando con el que se reinicia el emulador.

47

Captulo 4 Creacin de una aplicacin AndroidEn este captulo se explica la forma de crear aplicaciones en el sistema operativo Android. En primer lugar se indicar cmo realizar un programa HolaMundo para familiarizarse un poco con la estructura de un programa en Android. Posteriormente, se proceder a realizar un exhaustivo conocimiento de los principios bsicos de la programacin en Android, as como de su estructura para despus finalizar con la programacin de aplicaciones con mayor dificultad, cuyas componentes grficas son muy avanzadas.

4.1

Hola Mundo

En este apartado se presenta cmo programar en Android mediante la creacin de