Android
Click here to load reader
-
Upload
shayde-hernandez -
Category
Education
-
view
297 -
download
0
Transcript of Android
Programación de
dispositivos móviles5.4. Ambientes de las aplicaciones
5.5. Protocolo de Interfaz entre aplicaciones
Integrantes
Evelin Shayde Hernandez Vera
Agreguen sus nombres por favor:
Ambientes de las aplicaciones
En los últimos años los dispositivos móviles se han establecido como una parte importante del
acceso a la información y aplicaciones. Estos dispositivos han dejado de ser simples agendas
electrónicas o teléfonos celulares para convertirse en pequeñas computadoras con
capacidad de ejecutar aplicaciones, juegos con gráficos 3D e incluso con capacidades de
acceder a Internet a través de diferentes tecnologías de red inalámbrica de alta velocidad
tales como 3G o WiFi.
El ambiente de desarrollo
Las aplicaciones móviles se pueden adecuar al tamaño de la pantalla y a las características
de las interfaces de usuario de los dispositivos móviles que estos despliegan o soportan. Pero
esto quizá no sea la mejor opción, si significa que se requerirán diversas versiones de las
aplicaciones para cada ecosistema móvil (BlackBerry, Apple iOS, Android, Symbian, Windows
Mobile, Windows Phone 7, Web OS, etc.).
Las plataformas para aplicaciones móviles empresariales (MEAP, por sus siglas en inglés)
pueden aligerar la dificultad del desarrollo, permitiendo desarrollar una aplicación que
funcione en múltiples plataformas. La alternativa es desarrollar una aplicación basada en web
y usar el navegador móvil. Las tabletas han introducido el potencial para la integración del
escritorio virtual, usando herramientas de fabricantes como Citrix y VMware; ambas empresas
tienen clientes móviles.
Sistemas operativos para dispositivos
móviles
Symbian
Symbian: corre exclusivamente en procesadores ARM S.O basado en ROM para ahorrar
energía, consta de un micro kernel. En Symbian cada aplicación corre en sus propios
procesos y tiene acceso solo a su propio espacio de memoria, esto hace que las
aplicaciones sean orientadas a “single threads” y no a “multi threads”.
Posee componentes que permiten el diseño de aplicaciones multiplataforma (diferentes
tamaños de pantalla, color, resolución, teclados, etc.). La mayoría diseñados en C++. Existen
múltiples SDK (Software Development Kit) para el desarrollo de aplicaciones, siendo los
principales UIQ y S60.
Muchos de los dispositivos con Symbian OS además de C++ pueden ser programados en
OPL, Python, Visual Basic, Simkin y Perl, así como en Java ME.
También existe una versión del IDE de Borland para Symbian, así como herramientas o
técnicas desarrolladas por la comunidad para programar en Linux o MacOS.
Symbian OS 6.0 Primera versión de Symbian destinada a teléfonos móviles,
añadió soporte para Bluetooth.
Symbian
OS 9.5 Symbian^3
Se considera la nueva generación del sistema operativo Symbian.
Usada en los smartphones de nueva generación de Nokia, como
el N8, C7, C6-01, y E7.
Entre sus nuevas características destacadas están:
Soporte para gráficos acelerados con la aceleración de
hardware en 2D y 3D.
Soporte para HDMI.
Entrada USB (USB On The Go).
Hasta 3 pantallas de inicio personalizables con widgets.
Mejoras estéticas notables gracias a la aceleración de
gráficos y muchas mejoras generales en estabilidad, entre
ellas la consistencia.
Symbian
OS 9.5 Symbian
Anna
Actualización de Symbian^3 con:
Nuevos iconos.
Soporte básico para NFC.
Una nueva versión del navegador.
Mejoras en el rendimiento general, de la batería y en la
pantalla de inicio.
El sistema venía instalado de fábrica en una versión casi final en
los Nokia X7 y E6.
Symbian
OS 10.1 Nokia
Belle
Nokia cambió la nomenclatura hacia el público de Symbian
Belle a Nokia Belle, sin embargo internamente y de cara a los
desarrolladores el sistema operativo todavía se denomina en
realidad Symbian. Esta versión viene instalada por defecto en
los nuevos Nokia 603, 700 y 701, y también estaría disponibles
para los teléfonos que funcionan con Symbian^3 y Symbian
Anna.
Nokia Belle es una actualización mayor de Symbian OS: 10.1.
Entre sus mejoras están:
Mejoras en la estabilidad y el consumo y la gestión de
memoria RAM del sistema operativo.
Nueva interfaz gráfica de usuario con un nuevo menú,
widgets totalmente nuevos y de diferentes tamaños.
Nueva barra de navegación.
Menú de notificaciones deslizable.
Nueva barra de notificaciones entre otras que deja más
espacio para las aplicaciones.
Esta versión fue lanzada para todos los terminales compatibles el
7 de febrero de 2012 menos el Nokia 500 que tuvo un retraso por
Arquitectura de Mac
CORE OS: Los pilares de
este sistema operativo de
iPhone residen aquí
MEDIA: Capa de gestión multimedia (gráficos,
audio, videos, etc.
Cocoa Touch:El framework de desarrollo
para iPhone/iPod
Touch
CORE SERVICES: Son
los servicios básicos del
sistema
kernel de OSX, sistema de bibliotecas la pila TCP / IP sockets
seguridad gestión de energía keychain certificados sistemas de archivos Bonjour
• colecciones• agenda de direcciones• redes
• acceso a archivos• sqlite (base de datos)• core location• net services• threading• preferencias• utilidades de URL
• Core Audio• openAL,• mezclador de sonido,• grabación de audio• reproducción de video• manejo de jpg, png, tiff, PDF• quartz (2d)• Core Animation
• OpenGL ES
• eventos y controles multi
touch• soporte del acelerómetro• vista jerárquica• localización de aplicaciones• alertas• vista web• selector de contactos
• selector de imágenes• soporte de la cámara
Herramientas que forman parte del entorno
de desarrollo de la plataforma
Xcode: Xcode es la pieza esencial del entorno. También es una aplicación que se encarga de la mayoría de los detalles del proyecto desde el inicio hasta el despliegue
Instruments: Instruments sirve para monitorear la aplicación en desarrollo y sintonizar finamente su performance en un entorno gráfico. Basado en DTrace, una herramienta Open Source desarrollada por Sun Microsystems. Es esencial a la hora de identificar pérdidas de memoria y otros bugs difíciles de rastrear.
Dashcode: Dashcode fue diseñada para desarrollar widgets para el Dashboard de Mac OS X. incluida para facilitar el desarrollo de aplicaciones Web para el iPhone.
Simulator: el simulador de iPhone permite probar las funcionalidades básicas de la aplicación en desarrollo.
Interface Builder: Su uso elemental es el desarrollo de la Interface Humana (GUI). IB es donde los diferentes módulos se conectan, y es también donde se le da vida a muchos de los
módulos pre compilados que se verán en la pantalla.
RIM (Research in motion)
BlackBerry RIM SDK (BlackBerry Research In Motion Software
Development Kit)
Es el entorno para construir aplicaciones para los dispositivos inalámbricos BlackBerry. El
lenguaje de programación utilizado es J2ME, esta es la plataforma de java para dispositivos
móviles. El uso de los dispositivos Blackberries el SDK está orientado fuertemente al desarrollo de
negocio.
RIM provee algunas librerías muy útiles como: net.rim.device.api que provee acceso a
funcionalidades específicas para el hardware RIM. Dentro de este paquete hay clases para
monitorear los puertos COM, la radio, el teclado etc.
EL paquete net.rim.device.api.util incluye construcciones muy útiles como vectores ordenados,
vectores clonables, buffers de datos y otros.
La librería net.rim.device.api.system.mobitex es usada para obtener información de la red
Mobitex (red usada por los dispositivos BlackBerry).
El SDK también incluye un IDE que soporta debugging y el emulador necesario para esto.
Desarrollando para RIM
RIM provee un sistema operativo propietario, multitarea para los dispositivos BlackBerrys que
hace uso intensivo de los dispositivos de entrada como el teclado y el trackball
Cualquier desarrollador puede escribir software usando las APIs propietarias de BlackBerry,
pero para que una aplicación pueda acceder a ciertas funcionalidades restringidas debe
estar firmado digitalmente con un certificado asociado a una cuenta de desarrollador en
RIM, este proceso garantiza la procedencia de las aplicaciones, no así la calidad del
código.
Windows Mobile
Windows Mobile es el sistema operativo de Microsoft destinado a dispositivos móviles.
“Windows Mobile 6 Professional and Standard Software Development Kits Refresh” SDK para el desarrollode aplicaciones en la plataforma Windows Mobile Una vez descargado e instalado el SDK tendremostodo lo necesario para realizar aplicaciones para WM6 incluyendo emuladores (imágenes ROM) para losdistintos tamaños de pantalla de los dispositivos en mercado.
Se pueden desarrollar dos tipos de aplicaciones para Windows Mobile: con código nativo o con códigoadministrado (managed code).
Llamamos código nativo al código C++ que utiliza directamente la API de Windows Mobile, y código
administrado al que utiliza las clases del .NET Compact Framework con C# o .NET. (Windows Mobilees la única plataforma móvil importante que no soporta J2ME).
¿Las diferencias entre ambas? El código nativo es más rápido y ocupa menos recursos, además deproporcionar acceso a algunas características del hardware que son inaccesibles desde el CompactFramework. Sin embargo, en la mayor parte de los casos desarrollar código administrado es la mejoropción. El tamaño del ejecutable es cada vez menos importante, y si la velocidad es un factor críticosiempre se puede optar por programar en código nativo las partes de la aplicación que supongan uncuello de botella. Por lo demás, el desarrollo en .NET resulta mucho más fácil y cómodo.
Versiones de Windows Mobile
Microsoft Windows CE 1.0
Microsoft Windows CE 2.0
Microsoft Windows CE 2.01
Microsoft Windows CE 2.02
Microsoft Windows CE 2.1
Microsoft Windows CE 2.11
Microsoft Windows CE 2.12
Microsoft Windows CE 2.11 H/PC PRO
Microsoft Windows CE 3.0 H/PC 2000
Microsoft Pocket PC 2000 (WinCE 3.0)
Microsoft Pocket PC 2002 (WinCE 3.1)
Microsoft Windows Mobile 2003 para Pocket
PC (WinCE 4.2)
Microsoft Windows Mobile 2003 Second
Edition (WinCE 4.21)
Microsoft Windows Mobile 2005 (WinCE 5.0)
Microsoft Windows Mobile 5
Microsoft Windows Mobile 6
Microsoft Windows Mobile 6.1
Microsoft Windows Mobile 6.5
Microsoft Windows Phone 6.5
Microsoft Windows Phone 7
Microsoft Windows Phone 8
Android Es una plataforma de software basada en Linux para dispositivos móviles que incluye un sistema
operativo, middleware y aplicaciones clave. Esta plataforma está siendo desarrollada por Google y el
Open Handset Alliance. Permite a los desarrolladores escribir código en Java usando librerías desoftware desarrolladas por Google, pero no soporta programas en código nativo.
Android proporciona un paquete completo de software a todos los niveles:
o Un kernel Linux que sirve como base de la pila de software y se encarga de las funciones más básicasdel sistema: gestión de drivers, seguridad, comunicaciones, etc.
o Una capa de librerías de bajo nivel en C y C++.
o Un framework para el desarrollo de aplicaciones, dividido en subsistemas para gestión del sistemacomo el "package manager"; gestión del hardware del teléfono anfitrión ("telephony manager") oacceso a APIs sofisticadas de geo localización o mensajería XMPP. También incluye un sistema devistas para manejar el interfaz de usuario de las aplicaciones, que incluyen posibilidad de
visualización de mapas o renderizado HTML directamente en el interfaz gráfico de la aplicación.
o Una suite de aplicaciones (navegador, agenda, gestión del teléfono).
Las aplicaciones Android están programadas en Java, pero no corriendo sobre Java ME, sino sobreDalvik, una máquina virtual Java
Desarrollando para Android, Anatomía de una aplicación
Android
Activity
•es una pantallaindividual en tuaplicación. Cada"actividad" seimplementa comouna clase que heredade "Activity", lo quehará que la clasedespliegue una UIcompuesta de "Views”y responda a eventos
Intent y IntentFilter
Un "Intent" describe loque una aplicacióndesea hacer. Las dospartes más importantesde la estructura de datosde un "Intent" son laacción y los datos sobrelos cuales se actuará
"IntentFilter" es unadescripción de lo queintenta hacer una"Activity"
IntentReceiver
-Se puede utilizar un"IntentReceiver" cuandoqueramos programaruna aplicación paraque se ejecute comorespuesta a un evento.
-no despliegan UI
-son registrados en elarchivo"AndroidManifest.xml"
Service:
• es una aplicaciónque se mantieneactivada por unlargo tiempo y nodespliega una UI
Content Provider
•Las aplicacionespueden almacenarsus datos en archivos,una base de datos"SQLite" o cualquierotro mecanismo. Sinembargo, un "ContentProvider" es de utilidadcuando los datos detu aplicación debenser compartidos conotras aplicaciones.
Se puede desarrollar una aplicación Android con las mismas herramientas utilizadas para desarrollar en
Java. Las "Android core libraries" proveen las funcionalidades necesarias para construir impresionantes y
poderosas aplicaciones para dispositivos móviles.
El "Android SDK" soporta Windows XP, Windows Vista, Windows 7, Linux y Mac OS y utiliza como IDE de
desarrollo a Eclipse mediante el plug in "Android Development Tools (ADT)” aunque es posible utilizar
Apache Ant para entornos Mac o Linux
Protocolo de Interfaz entre aplicaciones
Interfaz de programación de aplicaciones
Es el conjunto de funciones y procedimientos (o métodos, en la programación orientada a
objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de
abstracción.
Uno de los principales propósitos de una API consiste en proporcionar un conjunto de funciones
de uso general, por ejemplo, para dibujar ventanas o iconos en la pantalla. De esta forma, los
programadores se benefician de las ventajas de la API haciendo uso de su funcionalidad,
evitándose el trabajo de programar todo desde el principio.
EJEMPLOHaciendo todo el trabajo desde el principio:
Traza, sobre papel milimetrado, la forma de las letras (y espacio) "H,o, l, a,M,u, n, d, o".
Crea una matriz de cuadrados negros y blancos que se asemeje a la sucesión de letras.
Mediante instrucciones en ensamblador, escribe la información de la matriz en la memoriaintermedia ("buffer") de pantalla.
Mediante la instrucción adecuada, haz que la tarjeta gráfica realice el volcado de esa informaciónsobre la pantalla.
Por medio de un Sistema operativo para hacer parte del trabajo:
Carga una fuente tipográfica proporcionada por el sistema operativo.
Haz que el sistema operativo borre la pantalla.
Haz que el sistema operativo dibuje el texto "Hola Mundo" usando la fuente cargada.
Usando una aplicación (que a su vez usa el sistema operativo) para realizar la mayor partedel trabajo:
Escribe un documento HTML con las palabras "Hola Mundo" para que un navegador WEB comoFirefox, Chrome, Opera, Safari, Midori, Ice weasel, Web o Internet Explorer pueda representarlo en elmonitor.
La plataforma Android ofrece una API de marco en el que las aplicaciones pueden utilizarpara interactuar con el sistema Android subyacente. La API de marco consiste en:
Un conjunto básico de paquetes y clases
Un conjunto de elementos y atributos XML para la declaración de un archivo de manifiesto
Un conjunto de elementos y atributos XML para la declaración y el acceso a los recursos
Un conjunto de Intenciones
Un conjunto de permisos que pueden solicitar aplicaciones, así como refuerzos de permisoincluido en el sistema
Cada versión sucesiva de la plataforma Android pueden incluir actualizaciones de laaplicación de Android API de marco de trabajo que se ofrece.
En programación orientada a objetos lenguajes, una API por lo
general incluye una descripción de un conjunto de clase las
definiciones, con un conjunto de comportamientos asociados
con esas clases. Un comportamiento es el conjunto de reglas
sobre cómo un objeto, derivado de esa clase, actuará en una
circunstancia
Fuentes de Consulta
Belatrix Software Factory BSF S.A. 2008. Documento de Investigación y
Análisis de las Características de los Dispositivos Móviles Inteligentes (Smart
Phones). Mayo, 18, 2013.
http://www.belatrixsf.com/index.php/spdesarrollosmoviles.
Barrera, Embi y otros. Versiones de Symbian. Mayo, 18, 2013. http://smart-
essential.jimdo.com/symbian/versiones-de-symbian/
Anónimo. 2013. Mac OS X. Mayo, 18, 2013.
https://es.wikipedia.org/wiki/Mac_OS_X
http://en.wikipedia.org/wiki/BlackBerry_OS_version_history
http://es.wikipedia.org/wiki/Android