Estado del Arte 1 Introducción






descargar 0.53 Mb.
títuloEstado del Arte 1 Introducción
página2/14
fecha de publicación15.07.2015
tamaño0.53 Mb.
tipoDocumentos
l.exam-10.com > Documentos > Documentos
1   2   3   4   5   6   7   8   9   ...   14

3 Sistemas Operativos móviles


Para la elección del sistema operativo móvil (desde ahora SO) en el cual desarrollaremos el proyecto, el equipo tuvo que investigar los distintos SO que están presentes en el mercado.

La lista a continuación abarca los principales SO hoy en día, cabe aclarar que la no presencia de Symbian en esta selección es por su unión con Windows y su inminente desaparición en un futuro no muy lejano.

3.1 iOS


iOS[ref 009] es el SO desarrollado por Apple para dotar a sus terminales iPhone y actualmente a las cada vez más popular iPad.

Está basado en el kernel de Mac OS lo que lo dota de un SO robusto y una interfaz gráfica que se caracteriza por su fácil manejo.

La arquitectura del iOS[ref 010] está conformada por cuatro capas, el núcleo del sistema, la capa de servicios, la capa de comunicación y la capa de cocoa touch que es un conjunto de librerías para crear aplicaciones en iOS.

Una de las desventajas de iOS es que no soporta java, en su lugar se usa un lenguaje de programación llamado objective-c que es un superconjunto de c orientado a objetos.

Pero la gran contra de este SO y en particular de los productos de Apple, es que son códigos cerrados y se debe contar con el hardware y software especifico para desarrollar para estos productos por eso fue que se descarto como plataforma a utilizar en el proyecto.


3.2 Windows phone


Es el SO de Windows para dispositivos móvil[ref 007], que anteriormente se llamaba Windows Mobile. Se basa en el sistema Windows CE y se caracteriza por sus similitudes con las versiones de escritorio para facilitar la tarea al usuario.

Este SO será según los expertos el que experimentara mayor crecimiento en cuota de mercado en el periodo 2011 - 2015.

Si bien no se opto por este SO para el desarrollo del proyecto por razones de tiempo y de que no es opensource, es una alternativa a evaluar en un futuro si se quiere seguir con el desarrollo de este proyecto.

Otra de las razones por la cual no se elijo este SO es por que es el que menos cuota de mercado tiene actualmente y la nueva, versión windows phone 7[ref 008], que es la que pretende competir, con los SO de mayor peso en el campo de los dispositivos móviles como Android, iPhone, BlackBerry, esta aun muy verde en comparación a los mencionados anteriormente.

3.3 Android


Android es una plataforma abierta basada en el kernel de linux 2.6 para dispositivos móviles desarrollado inicialmente por Android Inc y luego adquirido por Google. Actualmente se encuentra bajo la Open Handset Alliance que está compuesta por más de 50 empresas de desarrollo de hardware, software y operadores de servicios.

Esta diseñado en una arquitectura en capas donde el kernel de linux hace de una capa de abstracción entre el hardware y el sistema.

En esta capa se encuentran los distintos servicios que ofrece esta plataforma como son la seguridad, gestión de memoria y procesos, manejo de drivers y protocolos de red.

Por encima de esta capa se encuentran el conjunto de librerías, que es la base para el desarrollo de aplicaciones sobre esta plataforma.

El runtime de Android es un conjunto de bibliotecas que determinan la base para las librerías escritas en java.

Uno de los principales componente del runtime es la Maquina Virtual de Dalvik. Esta permite que cada aplicación Android corra su propio proceso en una maquina virtual Dalvik completamente independiente de los demás procesos. Esta máquina virtual ejecuta archivos .dex los cuales son optimizados para un bajo consumo de memoria.

Cuando el código se compila se generan archivos .class que luego si son transformados archivos .dex.

Al mismo nivel del runtime se encuentran un conjunto de librerías escritas en c/c++ que son accedidas mediante la capa de aplicación. Sus funcionalidades abarcan desde la persistencia de datos mediante SQLite pasando por librerías multimedia para audio y video y manejo de aplicaciones gráficas 2D y 3D mediante openGL.

La siguiente capa es quizás la más importante para los programadores ya que es con la que tienen contacto directo para el desarrollo de aplicaciones Android. Esta capa es el framework de Android y es la que utiliza las características antes planteadas.

Esta capa contiene varios componentes que vale la pena mencionar

● Un conjunto de vistas que nos permite desarrollar nuestra interfaz gráfica.

● Los proveedores de contenidos son el método de intercambio de información entre aplicaciones.

● Administrador de recursos que permiten acceder a recursos como strings, gráficos, archivos de layout, etc

● El gestor de notificaciones permite generar alertas personalizadas al sistema.

● El gestor de aplicaciones es el encargado de manejar el ciclo de vida de las actividades.

La última capa es la capa de aplicaciones que vienen por lo general ya instaladas en los sistemas operativos Android. Esta capa es desarrollada con todas las aplicaciones antes mencionadas e incluye cliente de correo, calendario, navegador, agenda de contactos entre otros.



Funcionalidades generales


Las aplicaciones en Android se construyen en base a bloques de software elementales. Aunque no es necesario que una aplicación los utilice todos.

Activity

Una actividad es sin duda el componente más utilizado en una aplicación Android. Se puede definir como una tarea que se lleva a cabo en la aplicación y tiene una interacción con el usuario, en otras palabras se puede decir que una actividad es una pantalla de la aplicación. Nuestras aplicaciones estarán compuestas por muchas actividades que relacionadas entre sí y cada vez que se accede a una nueva actividad la anterior es almacenada en una pila que gestiona el ciclo de vida de las actividades. gracias a esto el usuario podrá navegar así una actividad anterior.

Intent

Un intento como dice su nombre es la intención por hacer algo como puede ser “abrir el navegador” o “enviar un sms”. Android por su parte buscara la aplicación más adecuada para llevar a cabo esta petición. Estos intentos pueden ser los predefinidos por Android como se menciono arriba o los creados por nosotros para navegar entre nuestras actividades.

Service

Un servicio es un proceso que se ejecuta en background sin necesidad de que haya interacción con el usuario y probablemente por un largo periodo de tiempo. Se podría decir que es equivalente al daemon de Unix. Por ejemplo un servicio podría estar ejecutando el reproductor de música, realizar operaciones de entrada/salida o enviar un sms todo esto en background.

Content Provider

Los proveedores de contenido recuperan y almacenan la información haciéndola accesible para otra aplicación. Es la forma que Android tiene para compartir información ya que no hay una zona donde todos paquetes puedan acceder.

Ciclo de vida de las aplicaciones


Android maneja una jerarquía de procesos para determinar cuál debe continuar y cual debe matar en base a los componentes y el estado que se están ejecutando.

● Proceso en primer plano: Un proceso en este estado es aquel en el cual el usuario esta interactuando. Este será la última opción cuando se tenga que eliminar uno

● Proceso visible: Este es un proceso que es visible por el usuario pero este no está interactuando directamente con él. Esta situación se puede dar por ejemplo cuando tenemos una confirmación en una ventana emergente. Al igual que el anterior, un proceso en este estado será de los últimos en ser elegidos para su eliminación por falta de memoria.

● Proceso de servicio: Aunque un proceso de servicio no es visible por el usuario y no necesitaría interacción de este, si hace cosas que al usuario le importa cómo puede ser el reproductor de música.

● Proceso de segundo plano: Estos procesos no se encuentran visibles por el usuario y el sistema podría matarlo en cualquier momento para recuperar memoria para otro proceso.

● Proceso vacío: Un procesos vacío es aquel que no contiene ningún componente activo y son frecuentemente eliminados por el sistema. La única razón para mantenerlos activos es para manejar un cache y mejorar los tiempos de inicio.

Ciclo de vida de las actividades


El ciclo de vida de una actividad es una parte muy importante para desarrollar aplicaciones performantes y flexibles.

Las actividades se van almacenando en una pila de actividades, cuando se llama a una actividad esta pasa a la parte superior de la pila y la anterior queda por debajo de esta en background hasta que vuelva nuevamente a la parte superior o sea eliminada por falta de memoria.

Los estados de una actividad son:

● En ejecución: La actividad se encuentra en el tope de la pila y tiene el foco del usuario.

● En Pausa: Una actividad está en pausa cuando deja de ser la principal pero aun es visible por el usuario. Esto es posible cuando se llama a una ventana emergente transparente de confirmación que deja ver la actividad anterior. Cuando la ventana emergente se cierra la anterior continúa con sus datos en el estado de ejecución.

● Parada: En este estado la actividad no es visible por el usuario pero sigue manteniendo toda la información. Sin embargo una actividad en este estado es elegible para ser eliminada de la pila si es que el sistema necesita memoria para otra aplicación.

El ciclo de vida de una aplicación está muy relacionado con el ciclo de vida de una actividad.

Android da prioridad a las actividades que están en interacción con el usuario. Para manejar el ciclo de vida de una actividad en Android tenemos los métodos de la clase Activity que son invocados con los cambios de estados correspondientes. Los métodos son: OnCreate(), OnDestroy(), OnPause(), OnStop(), OnFrezze(), OnResume() , OnRestart() y Finish().




Justificacion de la elección
La elección de Android como plataforma en la cual desarrollar el proyecto se debe básicamente a tres puntos

1. Es open source, cumpliendo uno de los requisitos que planteaba este proyecto que exigía un código libre.

2. Además de ser el líder en cuota de mercado de hoy en día, las proyecciones lo dan como el ganador a futuro con el 43.8% de mercado en el 2015

3. Por último dado la experiencia de los integrantes del equipo en el lenguaje de programación java y dado que Android utiliza este lenguaje es otro de los puntos a

favor que determinaron en la elección de esta plataforma.

La siguiente infografía muestra la cuota de mercado de los sistemas operativos para dispositivos móviles mas importantes.



1   2   3   4   5   6   7   8   9   ...   14

similar:

Estado del Arte 1 Introducción iconIntroducción antecedentes del Estado

Estado del Arte 1 Introducción iconE L arte que propone un análisis del concepto del arte que se valora...

Estado del Arte 1 Introducción iconLección historia e introducción al derecho eclesiástico del estado

Estado del Arte 1 Introducción iconResumen En este trabajo se analiza el estado del arte del problema...

Estado del Arte 1 Introducción iconLa música (del griego: μουσική [τέχνη] mousikē [téchnē], "el arte...

Estado del Arte 1 Introducción iconIntroducción al arte de inventar historias
«Si dispusiéramos de una Fantástica, como disponemos de una Lógica, se habría descubierto el arte de inventar.» Era muy bello. Casi...

Estado del Arte 1 Introducción iconEs un estado de ánimo que se produce en la persona cuando cree haber...

Estado del Arte 1 Introducción icon2. El concepto de arte. Evolución del término “arte”

Estado del Arte 1 Introducción iconFundamentos de la composición visual
«La buena teoría del arte debe oler a taller, aunque su lenguaje deba ser distinto del de la charla doméstica de pintores y escultores»...

Estado del Arte 1 Introducción iconResumen: Entendemos el campo del arte contemporáneo como un laboratorio...






© 2015
contactos
l.exam-10.com