Desarrollo y Aplicación de la Administración por Valores
Proyecto de aula 4 semestre terminando
1. [Escriba texto] Página 1
DESARROLLO DE UN CLIENTE ANDROID PARA LA NOTIFICACIÓN DE
CONVOCATORIAS DE DIPLOMADOS EN FUNDACIÓN FUNDASABERES EN
LA CIUDAD DE CARTAGENA
AUTORES:
C12209047 ALVAREZ REALES, ANDRES ELIAS
C12209045 BERMUDEZ FUENTES, WILSON
C12209042 BLANCO PEREZ, JHONATAN
C12209050 MIRANDA VIDES, FERNANDO LUIS
C12209038 PUENTES GONZALEZ, GUSTAVO ADOLFO
C12209048 ROCHA SALGADO, EDER CARLOS
C12209039 RODRIGUEZ MALDONADO, YURANIS MARGARITA
C12209040 RODRIGUEZ SABALZA, RODRIGO JESUS
C12209049 TORRES CASTRO, JONATHAN
FUNDACION TECNOLOGICA ANTONIO DE AREVALO
FACULTAD DE INGENIERIA
PROGAMA DE TEGNOLOGIA EN SISTEMAS – lV SEMESTRE
CARTAGENA
2014
2. [Escriba texto] Página 2
DESARROLLO DE UN CLIENTE ANDROID PARA LA NOTIFICACIÓN DE
CONVOCATORIAS DE DIPLOMADOS EN FUNDACIÓN FUNDASABERES EN LA
CIUDAD DE CARTAGENA
AUTORES:
C12209047 ALVAREZ REALES, ANDRES ELIAS
C12209045 BERMUDEZ FUENTES, WILSON
C12209042 BLANCO PEREZ, JHONATAN
C12209050 MIRANDA VIDES, FERNANDO LUIS
C12209038 PUENTES GONZALEZ, GUSTAVO ADOLFO
C12209048 ROCHA SALGADO, EDER CARLOS
C12209039 RODRIGUEZ MALDONADO, YURANIS MARGARITA
C12209040 RODRIGUEZ SABALZA, RODRIGO JESUS
C12209049 TORRES CASTRO, JONATHAN
TUTOR
ING. CARLOS CACERES OCHOA
FUNDACION TECNOLOGICA ANTONIO DE AREVALO
FACULTAD DE INGENIERIA
PROGAMA DE TEGNOLOGIA EN SISTEMAS – III SEMESTRE
CARTAGENA
201
3. [Escriba texto] Página 3
CONTENIDO
1. INTRODUCCIÓN…………………………………………………………………….………….……4
1.1 RESUMEN ABSTRACT…………………………….………………………………………....……5
2. PLANTEAMIENTO DEL PROBLEMA……………………………………………………….……..6
2.1 DESCRIPCION DEL PROBLEMA……..………………………………………………….…..…..6
2.2 FORMULACION DEL PROBLEMA…………………………………………………….………....7
3. JUSTIFICACION…………..………………………………………………………………….….…...8
4. OBJETIVOS…………………….…………………………………………………………….…........9
4.1 OBJETIVO GENERAL…………………………………………………………………..……….….9
4.2 OBJETIVO ESPECIFICOS……………………………………………………………..…….….…9
5. MARCO REFERENCIAL………………………………………………………………………....…10
5.1 MARCO TEORICO…………………………………………………………………………………13
5.2 MARCO HISTORICO………………………………………………………………………………18
5.3 MARCO LEGAL……………………………………………………………………………...……..19
6. DISEÑO METODOLOGICO…………………………………………………………………..…….20
6.1 TIPO DE INVESTIGACION………………………………………………………………..………25
6.2 METODOS DE INVESTIGACION………………………………………………………..…….…26
6.3 DELIMITACION………………………………………………………………………………..……27
6.4 ESPACIAL……………………………………………………………………………………..……27
6.4 TEMPORAL……………………………………………………………………………………….…27
7. CONCLUSION…………………………………………………………………………………..……28
8.BIBLIOGRAFIA…………………………………………………………........................................29
4. [Escriba texto] Página 4
1. INTRODUCCIÓN
En un entorno tan complejo como lo es el mundo actual, han surgido diversos
adelantos en el campo de la computación distintos inventos y aplicaciones que
han revolucionado el mundo de la informática y de las comunicaciones cada vez
más sofisticados. Con la intención de facilitar x o y problemática en la actualidad
nos encontramos con diferentes lenguajes de programación que nos ayudan a
(PROGRAMAR) en diferentes entornos (GRAFICOS O DIRIGIDOS A EVENTOS).
Hoy en día nos encontramos con diferentes lenguajes de programación como
(c++, cobol) entre otros muy destacados. que hasta esta fecha ya son obsoletos,
a la hora de programar en la actualidad nos encontramos con java que es un
lenguaje de programación que ha sido de muy útil para los programadores hoy en
día. mundialmente ha sido uno de los lenguajes más utilizados en la historia de la
programación, pero en este momento ha surgido un nuevo sistema operativo que
ha traspasado y superado muchos sistemas operativos que han superados a los
utilizados anteriormente este sistema operativo se hace llamar por sus creadores
(ANDROID) el cual está basado en el S.O kernel de Linux diseñado principalmente
para dispositivos móviles con pantalla táctil, como teléfonos inteligentes o tabletas,
inicialmente desarrollado por Android, Inc. Google, cual se ha hecho poderosa
mediante dispositivos móviles por su fácil accesibilidad .
De este sistema operativo podemos encontrar diferentes versiones cada vez más
sofisticadas y con muchas mejoras además de sus numerosas aplicaciones que
son innumerables por su gran variedad y tipo este sistema operativo de una u otra
manera ha llegado de un momento a otro para superar los sistemas operativos
utilizados anteriormente mencionados.
5. [Escriba texto] Página 5
1.2 RESUMEN ABSTRACT
various operating systems, specifically in the above we promote throughout this
draft class which is the operating system ANDROID time but previous to this
marked one way or another the computing world simply based on a line of cyber
commands recognized algorithm called by the system even in these times full xxl
century is not as complicated because the pc has already made the algorithm to
perform any task or program everything a pc hits or throws the screen has
reference to an algorithm .
This being all soft for us as end users , operating systems have evolved greatly
about everything after the passage of time more and more have been perfected by
their creators or newer versions exist animations or graphics and a wide variety of
operating systems for each client.
This operating system designed fostered in this classroom is of great vitality for us
as we as technologists systems have the evidence to be always at the forefront of
the various systems are daily this is one of the easiest operating systems to
schedule half the world Alternatively for compatibility with systems other than him
and its easy accessibility.
In conclusion we have much time to study these operating systems but like
everything in this field has its pros and cons time is running against us but not
against technology every day there are more technological advances in medical
formulas as improvements but time will it is no secret that will new operating
systems that meet all the requirements with user expectations that we finally that
we use daily without them everything would be complex for us thankfully is not the
case because we as humans carry a step beyond the technology but sometimes
we programmed not seem all that exists in this technological world today.
6. 6
2. PLANTEAMIENTO DEL PROBLEMA
2.1 DESCRIPCION DEL PROBLEMA
La condición tecnológica en la que también discurre y se regenera la dinámica
social hoy en día como tal, se debe considerar la necesidad de crear aplicaciones
con el sistema operativo (ANDROID) para dispositivos móviles cuyo arquetipo
emblemático no sólo representa un avance tecnológico muy importante para la
humanidad, sino que configura así mismo un nuevo horizonte de desarrollo
tecnológico;
Toda sociedad no sobrevive si no es en un medio gradualmente más sofisticado
tecnológicamente, a nivel local y global. Esta situación no forma parte del futuro,
conforma el presente. Las necesidades de crear aplicaciones android para
dispositivos móviles han generado mucha importancia en la humanidad ya que
son de vital utilidad, tanto que las utilizan en labores empresariales. Ya que ellas
facilitan las tareas funcionales de quienes lo requieren básicamente se da en la
evolución que han tenido a través del tiempo las aplicaciones android no solo se
utilizan en dispositivos móviles sino también en tabletas y todo esto para mejorar
los avances tecnológicos que nos sirven de gran utilidad en nuestro diario vivir.
Las diferentes aplicaciones android que han creado y diseñado los
programadores las hacen con el fin de mejorar las fallas que han tenido las
aplicaciones de otros sistemas utilizados en celulares
7. 7
2.2. FORMULACIÓN DEL PROBLEMA
¿Desarrollo de un cliente android para la notificación de convocatorias de
diplomados en fundación fundasaberes en la ciudad de Cartagena?
8. 8
3. JUSTIFICACIÓN
El mundo como lo conocemos actualmente no sería el mismo sin los sistemas
operativos o (Software) .que durante todo este tiempo en la existencia de la
informática y la computación han surgido para las diversas tareas específicas así
como las de programar o ejecutar programas con una simple línea de comandos
informáticos llamados por excelencia algoritmos (PROGRAMACION).
En el planeta entero existen millones de celulares y dispositivos móviles utilizados
por los seres humanos los cuales trabajan con un sistema operativo llamado
(android) que es un sistema operativo basado en el kernel de Linux, desarrollado
para dispositivos táctiles como celulares, tabletas etc.
De allí surge la necesidad de desarrollar aplicaciones para dispositivos móviles pues
cada día necesitamos nuevas aplicaciones que faciliten nuestra vida ya que un
celular actualmente no es solo para hacer y recibir llamadas si no que se ha
convertido en una herramienta de trabajo.
Para desarrollar aplicaciones móviles existen diversos programas, pero
principalmente trabajaremos con java que es un lenguaje de programación de
propósito general, concurrente, orientado a objetos y basado en clases que fue
diseñado específicamente para tener tan pocas dependencias de implementación
como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones
escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en
inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código
que es ejecutado en una plataforma no tiene que ser recompilado para correr en
otra. Java es, a partir de 2012, uno de los lenguajes de programación más populares
en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10
millones de usuarios reportados.
La realización de este trabajo investigativo es importante ya que con él se puede
investigar la importancia y funcionamiento de las diferentes herramientas y
programas para desarrollar aplicaciones para móviles, además conoceremos los
distintos parámetros de una aplicación de dispositivo móvil.
9. 9
4. OBJETIVOS
4.1. Objetivo General
Como diseñar física y lógicamente un cliente (android) para la notificación de
convocatorias de diplomados en la fundación fundasaberes en la ciudad de
Cartagena
4.2. Objetivos Específicos
Indagar y aprender formas de como diseñar física y lógicamente una
aplicación (android) para móviles
Saber identificar los procesos que se deben tener en cuenta para diseñar una
aplicación (android) para móviles.
Analizar las ventajas que trae el uso de una aplicación (android) para
móviles.
Tener en cuenta el estado de software y hardware de cada uno de los
procesos para el desarrollo óptimo y certero funcionamiento de una aplicación
(android) para móviles.
Investigar a fondo cada aspecto de los procesos, el desarrollo, cuáles son sus
componentes, y que es lo que se necesita para crear una aplicación (android)
para móviles.
10. 10
5. MARCO REFERENCIAL
En 2013 en palo alto california fue fundadad la conpañia Android Inc, lo cual
centraba sus funciones en desarrollo de software para telefonos moviles en 2005 la
compañía google al adquirir Android Inc, contrato aparte del equipo de
confundadores de este, entre los que se incluian Andy Rubin, Rick Miner, Nick
Sears y Chris White. El equipo que encabezo Rubin desarrollo una plataforma para
dispositivos moviles que anunciada a fabricantes de dispositivos y operadores bajo
la promesa de dotar de un sistema actualizable y fexible. Este sistema esta basado
en Karnel de Linux.
En 2006 ya existian rumores acerca de que google tenia intencion de entrar en el
mercado de la telefonia movil ya que la empresa se empeñaba en que sus servicios
de busqueda y aplicaciones estarian disponibles para estos medios para el 2007 se
difundio la noticia de que la empresa estaba solicitando patente de telofonia movil.
El 5 de noviembre de 2007 se creo con el fin de desarrollar estandares abierto para
dispositivos moviles la Open Handset Alliance (OHA), un consorcio de varias
compañias dedicadas a la telefonia, software, comerzializacion, semiconductores y
fabricantes electronicos. Junto con la plataforma de la OHA, el 12 de noviembre se
estreno su primer producto , el Android Software Development Kit (SDK), una
plataforma para dispositivos moviles construida sobre la version 2.6 de Karnel de
Linux.
Es hasta el 22 de octubre de 2008 cuando sale al mercado el primer telefono que
ejecuta ANDROID.
La caracteristicas del sistema de ANDROID esta formado por alrededor de 12
millones de lineas de codigo de estas 2.8 millones de lineas de java y 1.75 millones
de lineas de c++ y 3 millones de lineas son de XML.
Una aplicación móvil o app es una aplicación informática diseñada para ser
ejecutada en teléfonos inteligentes, tabletas y otros dispositivos móviles. Por lo
general se encuentran disponibles a través de plataformas de distribución, operadas
por las compañías propietarias de los sistemas operativos móviles como Android,
iOS, BlackBerry OS, Windows Phone, entre otros. Existen aplicaciones móviles
gratuitas u otras de pago, donde en promedio el 20-30% del costo de la aplicación
se destina al distribuidor y el resto es para el desarrollador.1 El término app se volvió
11. 11
popular rápidamente, tanto que en 2010 fue listada como Word of the Year (Palabra
del Año) por la American Dialect Society.
El desarrollo de aplicaciones para dispositivos móviles requiere tener en cuenta las
limitaciones de estos dispositivos. Los dispositivos móviles funcionan con batería y
tienen procesadores menos poderosos que los ordenadores personales. Los
desarrollos de estas aplicaciones también tienen que considerar una gran variedad
de tamaños de pantalla, datos específicos de software y configuraciones. El
desarrollo de aplicaciones móviles requiere el uso de entorno de desarrollo
integrado. Las aplicaciones móviles suelen ser probadas primero usando
emuladores y más tarde se ponen en el mercado en periodo de prueba. Actualmente
un gran número de empresas se dedica a la creación profesional de aplicaciones.
Aún así, han surgido páginas web como Mobincube3 donde un usuario común
puede crear aplicaciones de manera gratuita y sin conocimiento de programación.
5.1 MARCO TEORICO
Android es un conjunto de sistemas informáticos para dispositivos móviles que
incluye un sistema operativo y otras aplicaciones.
La arquitectura de los componentes principales de Android se puede ver en la
siguiente Arquitectura de componentes de Android.
Servicio web
Un servicio web (en inglés, Web Service o Web services) es una tecnología que
utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos
entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de
programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar
los servicios web para intercambiar datos en redes de ordenadores como Internet.
La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las
organizaciones OASIS y W3C son los comités responsables de la arquitectura y
reglamentación de los servicios Web. Para mejorar la interoperabilidad entre
distintas implementaciones de servicios Web se ha creado el organismo WS-I,
encargado de desarrollar diversos perfiles para definir de manera más exhaustiva
estos estándares. Es una máquina que atiende las peticiones de los clientes web y
les envía los recursos solicitados
Cliente
El cliente es una aplicación informática o un computador que consume un servicio
remoto en otro computador, conocido como servidor, normalmente a través de una
red de telecomunicaciones.1
12. 12
El término se usó inicialmente para los llamados terminales tontos, dispositivos que
no eran capaces de ejecutar programas por sí mismos, pero podían conectarse e
interactuar con computadores remotos por medio de una red y dejar que éste
realizase todas las operaciones requeridas, mostrando luego los resultados al
usuario. Se utilizaban sobre todo porque su costo en esos momentos era mucho
menor que el de un computador. Estos terminales tontos eran clientes de un
computador mainframe por medio del tiempo compartido.
Actualmente se suele utilizar para referirse a programas que requieren
específicamente una conexión a otro programa, al que se denomina servidor y que
suele estar en otra máquina. Ya no se utilizan por criterios de costo, sino para
obtener datos externos (por ejemplo páginas web, información bursátil o bases de
datos), interactuar con otros usuarios a través de un gestor central (como por
ejemplo los protocolos BitTorrent o IRC), compartir información con otros usuarios
(servidores de archivos y otras aplicaciones Groupware) o utilizar recursos de los
que no se dispone en la máquina local (por ejemplo impresión)
Uno de los clientes más utilizados, sobre todo por su versatilidad, es el navegador
web. Muchos servidores son capaces de ofrecer sus servicios a través de un
navegador web en lugar de requerir la instalación de un programa específico
wsdl
WSDL son las siglas de Web Services Description Language, un formato XML que
se utiliza para describir servicios Web . La versión 1.0 fue la primera recomendación
por parte del W3C y la versión 1.1 no alcanzó nunca tal estatus. La versión 2.0 se
convirtió en la recomendación actual por parte de dicha entidad.
WSDL describe la interfaz pública a los servicios Web. Está basado en XML y
describe la forma de comunicación, es decir, los requisitos del protocolo y los
formatos de los mensajes necesarios para interactuar con los servicios listados en
su catálogo. Las operaciones y mensajes que soporta se describen en abstracto y
se ligan después al protocolo concreto de red y al formato del mensaje.
Así, WSDL se usa a menudo en combinación con SOAP y XML Schema. Un
programa cliente que se conecta a un servicio web puede leer el WSDL para
determinar qué funciones están disponibles en el servidor. Los tipos de datos
especiales se incluyen en el archivo WSDL en forma de XML Schema. El cliente
puede usar SOAP para hacer la llamada a una de las funciones listadas en el
WSDL.
El WSDL nos permite tener una descripción de un servicio web. Especifica la
interfaz abstracta a través de la cual un cliente puede acceder al servicio y los
detalles de cómo se debe utilizar.
13. 13
Protocolo
Un protocolo de comunicaciones es un conjunto de reglas y normas que permiten
que dos o más entidades de un sistema de comunicación se comuniquen entre ellos
para transmitir información por medio de cualquier tipo de variación de una magnitud
física. Se trata de las reglas o el estándar que define la sintaxis, semántica y
sincronización de la comunicación, así como posibles métodos de recuperación de
errores. Los protocolos pueden ser implementados por hardware, software, o una
combinación de ambos
XML
XML, siglas en inglés de eXtensible Markup Language ('lenguaje de marcas
extensible'), es un lenguaje de marcas desarrollado por el World Wide Web
Consortium (W3C) utilizado para almacenar datos en forma legible. Deriva del
lenguaje SGML y permite definir la gramática de lenguajes específicos (de la misma
manera que HTML es a su vez un lenguaje definido por SGML) para estructurar
documentos grandes. A diferencia de otros lenguajes, XML da soporte a bases de
datos, siendo útil cuando varias aplicaciones se deben comunicar entre sí o integrar
información. (Bases de datos Silberschatz).
XML no ha nacido sólo para su aplicación para Internet, sino que se propone como
un estándar para el intercambio de información estructurada entre diferentes
plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo y
casi cualquier cosa imaginable.
XML es una tecnología sencilla que tiene a su alrededor otras que la complementan
y la hacen mucho más grande y con unas posibilidades mucho mayores. Tiene un
papel muy importante en la actualidad ya que permite la compatibilidad entre
sistemas para compartir la información de una manera segura, fiable y fácil.
Framework de aplicaciones: es un conjunto de componentes que pueden ser
publicados y usados por cualquier aplicación, esta capacidad permite el reúso de
componentes. En la base de todas las aplicaciones hay un conjunto de servicios
que incluyen vistas (listas, grids, cuadros de texto, botones e incluso un
navegador web embebido), proveedores de contenido que permiten a las
aplicaciones acceder a datos de otras aplicaciones, un administrador de
recursos que provee de acceso a recursos no estructurados como gráficos,
un administrador de notificaciones que le permite a las aplicaciones mostrar
alertas personalizadas en la barra de estado, un administrador de actividades que
maneja el ciclo de vida de las aplicaciones y provee una navegación histórica
común.
14. 14
Bibliotecas: Android incluye un conjunto de librerías C/C++ que se usan en varios
componentes del sistema. Estas se exponen a través del framework de
aplicaciones. Algunas son: biblioteca C del sistema, bibliotecas para
administración de multimedia, bibliotecas de visualización 2D y 3D y SQLite como
motor de datos relacionales.
Runtime: bibliotecas a nivel del núcleo que soportan la mayoría de
funcionalidades que el lenguaje de programación java ofrece.
Cada aplicación Android corre su propio proceso, con su propia instancia de
máquina virtual Dalvik, que se soporta a su vez en el kernel Linux para el
manejo de procesos a nivel de sistema operativo, tales como hilos y manejo de
memoria a bajo nivel.
Kernel de Linux: Android está soportado en una versión 2.6 del kernel de Linux
para los servicios básicos del sistema como seguridad, gestión de memoria,
gestión de procesos, administración de redes y modelo de drivers. El kernel
también actúa como una capa de abstracción entre el hardware y el resto del
conjunto de aplicaciones.
15. 15
5.2 MARCO HISTORICO.
Fue desarrollado inicialmente por Android Inc., una firma comprada por Google en
2005.12 Es el principal producto de la Open Handset Alliance, un conglomerado de
fabricantes y desarrolladores de hardware, software y operadores de servicio.10 Las
unidades vendidas de teléfonos inteligentes con Android se ubican en el primer
puesto en los Estados Unidos, en el segundo y tercer trimestres de 2010,13 14 15
con una cuota de mercado de 43,6% en el tercer trimestre.16 A escala mundial
alcanzó una cuota de mercado del 50,9% durante el cuarto trimestre de 2011, más
del doble que el segundo sistema operativo (iOS de Apple, Inc.)
El anuncio del sistema Android se realizó el 5 de noviembre de 2007 junto con la
creación de la Open Handset Alliance, un consorcio de 78 compañías de hardware,
software y telecomunicaciones dedicadas al desarrollo de estándares abiertos para
dispositivos móviles.21 22 Google liberó la mayoría del código de Android bajo la
licencia Apache, una licencia libre y de código abierto.
La estructura del sistema operativo Android se compone de aplicaciones que se
ejecutan en un framework Java de aplicaciones orientadas a objetos sobre el núcleo
de las bibliotecas de Java en una máquina virtual Dalvik con compilación en tiempo
de ejecución. Las bibliotecas escritas en lenguaje C incluyen un administrador de
interfaz gráfica (surface manager), un framework OpenCore, una base de datos
relacional SQLite, una Interfaz de programación de API gráfica OpenGL ES 2.0 3D,
un motor de renderizado WebKit, un motor gráfico SGL, SSL y una biblioteca
estándar de C Bionic. El sistema operativo está compuesto por 12 millones de líneas
de código, incluyendo 3 millones de líneas de XML, 2,8 millones de líneas de
lenguaje C, 2,1 millones de líneas de Java y 1,75 millones de líneas de C++.
Las primeras aplicaciones datan a finales de los 90’ estas eran lo que conocemos
como la agenda, arcade games cumplían funciones muy elementales y su diseño
era muy simple la evolución de las aplicaciones (apps) se dio rápidamente gracias a
las innovaciones de la tecnología wap y la transmicion de datos (EDGE) esto vino
acompañado de un desarrollo muy fuerte de celulares Apole iPhone y junto con él
llega muchas propuestas de Smartphone entre ellas Android, la competencia más
grande del sistema operativo del iPhone es aquí donde comienza el despunte de
las aplicaciones, juegos, noticias, diseño, arte, fotografía, medicina, todo en tus
manos gracias a la revolución de las aplicaciones móviles. Desde el momento en
que Apple ios y el Android aparecen en el mercado el resto de empresas empieza a
desarrollar nuevas tecnologías y lanza Smartphone cada vez más innovadores cada
vez más potentes.
Están con nosotros en nuestro día a día, los llevamos a todas partes y son capaces
de entretenernos o informarnos hasta trabajar con nosotros las aplicaciones se han
vuelto parte de nuestra vida y son ya tan comunes por la variedad de plataformas
que podemos llegar a encontrar que cualquiera puede acceder a una.
16. 16
Si nos ponemos a pensar en el primer celular con el que tuvimos contacto (que por
el simple hecho de poder hacer llamadas era increíble) comparémoslo con los
teléfonos actuales y mencionemos las diferencias; llevar una cámara, reproductor de
música, consola de videojuego, lectura electrónica de libros, GPS, computadora
portátil y teléfono en el bolsillo y todo en un solo dispositivo son cosas que se veían
en películas de ciencia ficción y parecían la gran cosa.
5.3MARCO LEGAL
Dado que el proyecto NoteRecorder fue realizado para la plataforma operativa
Android, las licencias que se debían tener en cuenta para el desarrollo son las del
proyecto Android de la Open Handset Alliance. Estas licencias hacen parte de
la iniciativa de código abierto, siendo las principales: GPL V2 para el kernel del
sistema operativo y la gran mayoría del resto del sistema Android está licenciado
con la Apache Software Licence.
Estas licencias permiten que cualquier persona haga uso, modifique, copie y
distribuya el código con el que está construido el sistema Android. De esta manera
el uso que se le dio a cada uno de los componentes con los que se desarrolló la
aplicación NoteRecorder estaba respetando las respectivas licencias.
Las herramientas utilizadas para el desarrollo de la aplicación son de distribución
libre y gratuita, éstas son el IDE Eclipse y el plugin ADT para desarrollo en Android,
el Android
SDK y el AVD Manager, accesibles desde
http://developer.android.com/sdk/eclipse- adt.html
Por otro lado, el uso de la metodología Scrum para desarrollo de software se basa
en las guías que las personas que inventaron la metodología comparten en su
página de internet y de los demás recursos que se encuentran en la web con acceso
libre.
17. 17
6. DISEÑO METODOLOGICO
Android es una solución completa de software de código libre para teléfonos y
dispositivos móviles. Es un paquete que engloba un sistema operativo, un "runtime"
de ejecución basado en Java, un conjunto de librerías de bajo y medio nivel y un
conjunto inicial de aplicaciones destinadas al usuario final (todas ellas desarrolladas
en Java). Android se distribuye bajo una licencia libre permisiva (Apache) que
permite la integración con soluciones de código propietario.
Android surge como resultado de la Open Handset Alliance13 un consorcio de 48
empresas distribuidas por todo el mundo con intereses diversos en la telefonía móvil
y un compromiso de comercializar dispositivos móviles con este sistema operativo.
El desarrollo viene de la avalado principalmente por Google (tras la compra de
Android Inc. en 2005) y entre las compañías encontramos compañías de
software (Ebay, LivingImage...), operadores (Telefónica, Vodafone, T-Mobile...),
fabricantes de móviles (Motorola, Samsumg, acer, LG, HTC...) o fabricantes
de Hardware (nVidia, Intel o Texas Instruments).
Arquitectura
Android presenta una arquitectura basada en 4 niveles (figura 10), que
detallamos a continuación por orden ascendente:
• Un kernel linux versión 2.6 que sirve como base de la pila de software y se
encarga de las funciones más básicas del sistema: gestión de drivers, seguridad,
comunicaciones, etc.
18. 18
• Una capa de bibliotecas de bajo nivel en C y C++, como SQLite para
persistencia de datos; OpenGL ES para gestión de gráficos 3D, con aceleración 3D
opcional y Webkit como navegador web embebido y motor de renderizado HTML.
• Un framework para el desarrollo de aplicaciones, dividido en subsistemas
para
Gestión del sistema como el "Administrador de paquetes", el "Administrador de
telefonía" (para la gestión del hardware del teléfono anfitrión) o el acceso a APIs
sofisticadas de geolocalización o mensajería XMPP. Los desarrolladores tienen
acceso completo a los mismos APIs del framework usados por las aplicaciones
base. La arquitectura está diseñada para simplificar el reuso de componentes;
cualquier aplicación puede publicar sus capacidades y cualquier otra aplicación
puede luego hacer uso de esas capacidades (sujeto a reglas de seguridad del
framework). Éste mismomecanismo permite que los componentes
sean reemplazados por el usuario.También incluye un sistema de vistas para
manejar el interfaz de usuario de las aplicaciones, que incluyendo posibilidad de
visualización de mapas o renderizado html directamente en el interfaz gráfico de la
aplicación.
• Aplicaciones: Las aplicaciones base incluyen un teléfono, cliente de
email,
programa de envío de SMS, calendario, mapas, navegador, contactos... que pueden
a su vez ser usados por otras aplicaciones.
19. 19
Arquitectura de Android (reproducida de Wikipedia14)
Las aplicaciones Android están programadas en Java, pero no corriendo sobre Java ME, sino
sobre Dalvik, una máquina virtual Java desarrollada por Google y optimizada para dispositivos
empotrados. La creación de una VM propia es un movimiento estratégico que permite a
Google evitar conflictos con Sun por la licencia de la máquina virtual, así como asegurarse el
poder innovar y modificar ésta sin tener que batallar dentro del JCP. Cada aplicación Android
corre su propio proceso, con su propia instancia de la máquina virtual Dalvik. Dalkiv ha sido
20. 20
escrito de forma que un dispositivo puede correr múltiples máquinas virtuales de forma
eficiente.
. Desarrollo en ANDROID
La comunidad de desarrollo de Android tiene como objetivo hacer el desarrollo de
aplicaciones para Android muy sencillo y accesible al mayor número de sistemas posible.
Sita .http://es.wikipedia.org/wiki/Android
21. 21
Por ello, todas las herramientas, entornos, demos e instrucciones que se
ofrecen son gratuitas y se pueden descargar de su página web,
http://developer.android.com.
Entorno de Desarrollo
Android ofrece un plugin para Eclipse que extiende la funcionalidad de éste y facilita
el desarrollo de aplicaciones para Android. Además, ofrece las herramientas que
utiliza este plugin como scripts de ant para que puedan ser utilizados también desde
otros entornos como Netbeans o Intellij IDEA15. Entre las funcionalidades de este
plugin se encuentra:
• Emulador de Android. Permite elegir entre distintos terminales móviles y la
versión del sistema operativo.
• El acceso a herramientas de desarrollo de Android como tomar
capaturas de pantalla, la redirección de puertos, la posibilidad de depurar con
puntos de parada o
ver el estado de las hebras y los procesos corriendo en el sistema.)
• Asistentes para la creación rápida de aplicaciones Android
• Editores de código para los distintos archivos de configuración (XML) que
facilitan su comprensión y desarrollo
• Interfaces gráficas que permiten el desarrollo de componentes visualmente.
22. 22
Figura 11. Vista del emulador de Android
Sita . http://www.jetbrains.com/idea/
25. Modelado de las aplicaciones
Cada aplicación de Android corre su propio proceso de Linux, y a su vez, cada uno
de estos procesos corre su propia Máquina virtual Java. (Se aísla la ejecución entre
aplicaciones). Para facilitar la reutilización de código y agilizar el proceso de
desarrollo, las aplicaciones Android se basan en componentes. Por ejemplo, si una
aplicación quiere utilizar una lista con scroll puede utilizar una aplicación que sea
simplemente esa lista para hacer la suya sin tener que duplicar el código. Los
componentes pueden ser de 4 tipos:
• Actividades. Son interfaces visuales esperando alguna acción del usuario.
(Por ejemplo, una aplicación para el envío de mensajes podría tener una actividad
que fuera la lista de contactos de la que el usuario elige a uno, otra que fuera el
editor de textos para que el usuario escriba el mensaje y otra con parámetros de
configuración de la aplicación). Una aplicación puede tener una actividad o más, y
desde una actividad se puede invocar a otras y volver nuevamente a la original.
Todas las actividades extienden la clase Activity. El contenido visual de cada
actividad lo proporcionan una serie de objetos derivados de la clase View. Android
proporciona muchos de estos objetos prediseñados como botones, selectores,
menús...
• Servicios. Los servicios no tienen interfaz gráfica. Un ejemplo sería la
reproducción de una canción. Para una aplicación reproductora podríamos tener
varias actividades para mostrar listas de canciones o un reproductor con botones,
pero el usuario esperará que la canción siga sonando aún al salir de la aplicación
(terminar la actividad), por lo que esta aplicación deberá controlar un servicio para
que se reproduzca la música. Cualquier servicio extiende la clase Service.
• Receptores de Eventos. Estos componentes simplemente están escuchando
a que se produzcan determinados eventos (batería baja, cambio del idioma del
dispositivo, la descarga de una imagen nueva...) Cualquier aplicación puede tener
tantos receptores para tantos eventos como quiera, cada uno debe extender la clase
BroadCastReceiver. Un ejemplo sería una galería de imágenes que indexa en la
aplicación cualquier imagen que el usuario se descargue mediante el navegador un
otra aplicación.
• Proveedores de contenidos. Permite que una aplicación ponga ciertos datos a
disposición de otras aplicaciones. Por ejemplo, una grabadora de sonidos puede
compartir esos datos con un reproductor de música. Estos datos pueden
26. almacenarse en el sistema de ficheros o en base de datos. Para proveer contenidos,
se debe extender la clase ContentProvider.
Además, todas las aplicaciones Android deben tener un fichero
AndroidManifest.xml donde se definan todos los componentes de la aplicación
así como los permisos que requiere, o los recursos y librearías que utiliza. A
continuación se muestra un ejemplo de este fichero que utiliza dos actividades y
requiere permiso para acceder a Internet.
27. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1" android:versionName="1.0"
package="com.msi.androidrss">
<application android:icon="@drawable/icon">
<uses-permission android:name="android.permission.INTERNET" />
<activity android:name=".RSSReader"
android:label="@string/app_name" />
<activity android:name=".ShowDescription" />
</application>
<uses-permission android:name="android.permission.INTERNET" />
Caso Práctico. Lector de RSS
Para poner en práctica las metodologías ágiles en el desarrollo de una aplicación
Android, decidimos hacer una aplicación que mostrase las entradas de un blog que
exportase sus entradas en formato RSS 2.0. Para este ejemplo, vamos a realizar
únicamente la primera iteración que proponen estas metodologías, por lo que
nuestra aplicación será únicamente una primera versión como resultado de una
vuelta al ciclo de vida. El único objetivo con esta interacción es conseguir una
aplicación que funciona, aunque no tenga todas las funcionalidades requeridas. Así,
por ejemplo, en esta primera iteración se han aprendido los conceptos básicos del
desarrollo en Android y se ha desarrollado una aplicación que permite leer los
feeds de un sitio usando RSS 2.0. Una vez terminada la aplicación, se han
identificado diversas funcionalidades que podrían ser añadidas o mejoras al
producto que realizar en siguientes iteraciones como podrían ser: almacenar los
28. feeds en la memoria del teléfono, poner un botón de actualizar los feeds, leer otros
formatos con RSS 1.0 o Atom.
El ejemplo desarrollado se compone de dos actividades, una que muestra el listado
de feeds (extendiendo OnItemClikListener que a su vez extiende a ListActivity) y otra
que muestra un feed completo (que simplemente extiende de Activity). Cada
actividad tiene su vista asociada a través de un fichero xml. A continuación se
muestra a modo de ejemplo como se define la vista de un feed que se compone de
una caja de texto (con el texto de la entrada) y un botón de volver.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
<TextView android:text="story goes here ...." android:id="@+id/storybox" />
<Button android:text="Back" android:id="@+id/back" />
</LinearLayout>
31. Publicación de las aplicaciones
Las aplicaciones para Android pueden ser distribuídas y comercializadas a través
del Android Market16, un servicio alojado por Android que facilita a los usuarios
encontrar y descargar aplicaciones para Android y a los desarrolladores
publicarlas. El sistema se encarga además de gestionar las distintas versiones de
una aplicación y su compatibilidad
con las distintas versiones del sistema operativo. Cuando se creó Android se
decidió que todas las aplicaciones deberían ser gratuitas, lo que frenó mucho su
desarrollo. Visto el éxito del iPhone, hace varios meses se decidió dar cabida
también a las aplicaciones de pago. Para subir tu aplicación a Android Market
simplemente hace falta disponer de una cuenta de Google, el proceso es sencillo y
gratuito.
32. 6.1 TIPO DE INVESTIGACION
Educativa
6.2 METODOS DE INVESTIGACION
6.3 DELIMITACION
6.4 ESPACIAL
La delimitación espacial de este trabajo tiene como lugar realizar una
aplicación móvil para la empresa funda saber ubicada en el centro de la
ciudad de Cartagena.
6.5 TEMPORAL
Esta investigación se dio inicio en el segundo semestre periodo del año 2014
33. 7. CONCLUSION.
Este proyecto de aula fue de vital importancia para nuestras vidas como personas
y como estudiantes de tecnología en sistemas ya que pudimos ver o entrar más al
campo de los diversos sistemas operativos en específico en el que fomentamos
anteriormente durante todo este proyecto de aula que es el sistema operativo del
momento ANDROID pero los anteriores a este han marcado de un modo u otro el
mundo de la computación basándose simplemente en una línea de comandos
cibernéticos reconocidos por el sistema llamado algoritmo aunque en estos
tiempos el pleno siglo xxl ya no es tan complicado porque el pc ya tiene realizado
el algoritmo para ejecutar cualquier tarea o programa todo lo que un pc realiza o
arroja por pantalla tiene referencia con un algoritmo .
Siendo así todo programable para nosotros como usuarios final, los sistemas
operativos han tenido una gran evolución respecto a todo tras el paso del tiempo
cada vez más han sido perfeccionado por sus creadores con versiones o nuevas
animaciones o gráficos existiendo así una gran diversidad de sistemas operativos
para cada cliente.
Este sistema operativo fomentado en este proyectó de aula es de gran vitalidad
para nosotros ya que como tecnólogos en sistemas tenemos el indicio de estar
siempre en la vanguardia de los diferentes sistemas que salen diariamente este es
uno de los sistemas operativos más fáciles de programar medio mundo lo prefiere
por su compatibilidad con otros sistemas diferentes a él y su fácil accesibilidad.
En conclusión tenemos mucho tiempo para estudiar estos sistemas operativos
pero como todo en este campo tiene su pro y su contra el tiempo corre contra
nosotros pero no contra la tecnología día a día hay más adelantos tecnológicos
que formulas en medicas a medida del tiempo tendrá mejoras pero para nadie es
un secreto que saldrán nuevos sistemas operativos que cumplan con todo lo
requerido con las expectativas de los usuarios que finalmente somos los que los
utilizamos a diario sin ellos todo sería complejo para nosotros por suerte no es así
ya que nosotros como humanos llevamos un paso más allá de la tecnología
aunque a veces no parezca nosotros lo programamos todo lo que existe en este
mundo tecnológico de hoy.