Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad 1 Tecnologias para Mis Aplicaciones Moviles DPMO
Unidad 1 Tecnologias para Mis Aplicaciones Moviles DPMO
Programa de la asignatura:
Programación móvil
Clave:
15144845
Índice
Unidad 1. Tecnologías para mis aplicaciones móviles ........................................................... 3
Presentación de la Unidad ..................................................................................................... 3
Propósitos.............................................................................................................................. 4
Competencia específica......................................................................................................... 4
1. Evolución de los dispositivos móviles................................................................................. 4
2. Tecnologías aplicadas a la programación móvil ................................................................. 6
2.1. J2ME .............................................................................................................................. 8
2.2. Android ......................................................................................................................... 10
3. Estructura de una aplicación para tecnología móvil ......................................................... 14
3.1. J2ME ............................................................................................................................ 15
3.2. Android ......................................................................................................................... 18
3.3. Midlets .......................................................................................................................... 23
4. Herramientas de desarrollo .............................................................................................. 25
4.1. Plataformas: Eclipse, Netbeans, J2ME ......................................................................... 26
4.2. Emuladores................................................................................................................... 30
4.3. Importancia y creación de archivos JAR y JAD ............................................................. 35
Cierre de la Unidad .............................................................................................................. 38
Para saber más ................................................................................................................... 38
Fuentes de consulta ............................................................................................................ 39
Presentación de la Unidad
Es por eso que esta primera unidad tiene la intención de que conozcas las tecnologías para
el desarrollo de aplicaciones híbridas para dispositivos móviles de transmisión de datos
mediante la estructura de una aplicación. Esto como parte fundamental para el logro de la
competencia de la materia, la cual es el desarrollo de aplicaciones híbridas para dispositivos
móviles de transmisión de datos dirigidos al diseño e implementación de soluciones de
acceso y gestión de información en un entorno organizacional mediante las tecnologías
Android y J2ME.
Estos dispositivos, sin la programación de las diferentes aplicaciones que salen dia con dia,
serían únicamente una maquinaria sin sentido. Ante ello, lo que nos ocupa conocer y
desarrollar en esta asignatura es, precisamente, las diversas tecnologías de programación
de estas aplicaciones para dispositivos móviles que hacen dan vida a la maquinaria diversa
que existe para comunicación y los diversos ámbitos de la vida. Para esto se requiere el
conocimiento de la tecnología aplicada a la programación móvil que se abordará en el tema
1.2, así como el conocimiento de la estructura de una aplicación para la tecnología móvil a
desarrollar en el tema 1.3. Asimismo, se requiere conocer con qué herramientas de
Propósitos
Competencia específica
Bien, ahora, ¿cuantos años tienes hoy? La pregunta va orientada a que mires atrás y
visualices cómo era tu vida antes de la época de los teléfonos inteligentes. Si eres más
joven seguramente no conociste los primeros teléfonos, y si eres mayor, has vivido la
evolución de los mismos.
Computadora portátil: Es una computadora que está diseñada para ser movida de
un lugar a otro.
Los teléfonos celulares han recorrido un largo camino en estos últimos tiempos. Hoy es
impactante observar el tamaño de los mismos, pues algunos caben en la palma de la mano;
sin embargo, por las múltiples necesidades generadas y la idea de que ya no es sólo un
celular, es un dispositivo móvil inteligente que sirve para comunicar, entretener y como
herramienta de trabajo, entre otros usos que pueda tener. La reducción del tamaño,
dependiendo de los fines, puede ya no ser funcional, ya que la pantalla ha aumentado en
algunos teléfonos, priorizando la ventaja visual que puede tener una pantalla grande. Lo que
se proyecta en el futuro es que el dispositivo se pueda doblar o incluso quizás ni sea
necesario tocarlo, pues se proyecta que pueda estar implantado en el cuerpo.
De acuerdo con lo anterior y con la evolución de los dispositivos móviles, lo que se espera
en el futuro es conectividad en tiempo real 24 horas 7 dias a la semana, el establecimiento
de precios y planes de datos asequibles, mejora en la infraestructura de las comunicaciones
e internet, acceso a todo tipo de sitios e información desde la plataforma de la nube y, por
supuesto, que lo anterior detone en el desarrollo de aplicaciones para dispositivos móviles.
La tecnología a considerar en este curso es J2ME y Android, puesto que según las
tendencias del mercado son las más populares, accesibles e intuitivas en el desarrollo de
aplicaciones para dispositivos móviles.
2.1. J2ME
Java es un lenguaje orientado a objetos que surge en 1995 (Oracle, 2014b), que poco a
poco se ha ganado el lugar que tiene hoy en día en el desarrollo de software. Comenzó con
los applets (pequeños programas que se descargan y se ejecutan a demanda), los cuales
funcionaban en un entorno de internet lento y con un modelo de seguridad ambivalente
todo/nada restrictivo. Después surgieron los servlets, derivados de la clase Servlet, que son
programas que amplían las capacidades de un servidor. Debido a que el lenguaje se
expande del lado del servidor, el lenguaje Java se adjudica el nombre de Java 2 Platform
Enterprise Edition (J2EE ), lo cual se conoce como la primera revolución del lenguaje. La
segunda revolución es la explosión de la programación para dispositivos móviles. Para esto
se estableció la plataforma Java 2 Plataform Micro Edition (J2ME), que se ha cambiado a
JME. Por cuestiones prácticas, en la presente unidad y en las subsiguientes se hará
referencia a esta plataforma mediante el término J2M.E.
Como explica Li y Kudsen (2005), J2ME se divide en configuraciones, perfiles y APIs (por
sus siglas en inglés, Application Programming Interface, que es el conjunto de subrutinas,
funciones, procedimientos y métodos, en la programación orientada a objetos), que
proporcionan información acerca de las diferentes familias de dispositivos.
Los fabricantes de los dispositivos se encargan de incluir una configuración específica para
sus dispositivos.
Perfiles. Los perfiles son más específicos que las configuraciones. Un perfil se basa en una
configuración y proporciona APIs adicionales tales como la interfaz de usuario, el
almacenamiento persistente y todo lo que es necesario para desarrollar aplicaciones para el
dispositivo. Revisa los perfiles y configuraciones de J2ME en la siguiente tabla.
APIs. Las APIs opcionales definen funcionalidad adicional específica que puede ser incluida
en una configuración especial (o perfil).
En 1999 la versión del JDK 1.1 fue sustituida por la plataforma Java 2, y también surgió la
J2ME para reemplazar las plataformas reducidas basadas en el JDK 1.1 y crear una sola
solución basada en Java 2 (Oracle, 2014b).
En el año 2000 nació la primera versión de una configuración, el Connected Limited Device
Configuration (J2ME CLDC 1.0). Durante ese mismo año se creó la primera implementación
de un perfil, el Mobile Information Device Profile (MIDP), el cual fue aceptado por la
comunidad de desarrolladores de aplicaciones para dispositivos móviles. Actualmente la
versión de J2SE es 8u31, misma que puedes descargar del sitio de Oracle (2014a).
fuente y XML1, tiene facilidad para el acceso de los recursos del dispositivo con la API del
SDK y la capacidad de declarar y usar recursos externos. Es por ello que se hace necesario
revisar este entorno de desarrollo como alternativa al desarrollo de aplicaciones para
dispositivos móviles.
2.2. Android
Con la enorme influencia de Google en la web de sus aplicaciones, el paso lógico era
aprovechar la infraestructura e incursionar en el lanzamiento de un dispositivo móvil, el cual
fue el HTC Dream y/o Google Phone a finales del 2007, con Android incluido, como una
plataforma de código abierto diseñado para dispositivos móviles, que consiste en un
paquete de software compuesto por:
Sistema operativo Linux, sistema operativo de libre distribucion.
Capa de librerías de bajo nivel en C y C++, para programación específica del
dispositivo.
Framework de desarrollo de aplicaciones; es decir, un entorno para el desarrollo de
las aplicaciones.
Suite de aplicaciones iniciales, reloj, calendario, correo, etcétera.
Tambien se creó la Open Handset Alliance, compuesto por las siguientes empresas:
Google, Motorola, HTC, LG, Samsung, Tmobile, China mobile, Intel, Nvidia, entre muchas
más, con el objetivo de acelerar la innovación en los consumidores móviles y ofrecer una
experiencia móvil más completa con menos costo.
Android revoluciona el mercado al ser una plataforma verdaderamente abierta que separa el
hardware del software que se ejecuta en él, permitiendo un mayor número de dispositivos
1
XML es un subconjunto de SGML(Estándar Generalised Mark-up Language), simplificado y adaptado a Internet
para ejecutar las mismas aplicaciones y crear un ecosistema mucho más rico para los
desarrolladores y consumidores.
Herramientas de Desarrollo
Android. Permite el manejo de los dispositivos virtuales, proyectos y demás
componenetes del SDK.
Vista de jerarquías. Proporciona una representación visual del diseño y una vista
ampliada de la pantalla .
Lint. Es una herramienta de análisis de código estatico que verifica que los archivos
fuentes del proyecto Android no tengan errores para permitir mejoras de
optimización.
SDK Manager. Permite manejar los paquetes de SDK, tales como las plataformas y
los sistemas.
Sqlite3. Permite accesar a los archivos de SQlite3 creados y usados por las
aplicaciones Android.
Herramientas de depuración
adb (por sus siglas en inglés, Android Debug Bridge) es un conector de depuración
que permite comunicarse con una instancia del emulador o con el dispositivo
Android.
ddms (por sus siglas en inglés, Dalvik Debug Monitor Server) permite depurar las
aplicaciones.
Traceview proporciona una vista gráfica de la ejecución de los logs guardados por la
aplicación.
2
Es un emulador de máquina de origen genérico, abierto y virtualizador
3
Es un sistema de gestión de bases de datos relacional relativamente pequeño
Herramientas de construcción
JOBB permite encriptar y desencriptar archivos APK en OBB (por sus siglas en
inglés, Opaque Binary Blob).
Archivos APK
ProGuard empaqueta y optimiza el código mediantes la eliminación de código no
usuado.
Zipaling optimiza los archivos .apk.
Herramientas de imagen
Draw 9-patch permite crear un gráfico NinePatch4 usando un editor WYSIWYG5.
Etc1tool, utilidad de línea de comando que codifica imágenes .pgn a la norma de
comprensión etc1 y decodificar de forma inversa.
Tracer de OpenGL ES, permite capturar comandos OpenGL ES6 y da seguimiento
cuadro por cuadro de los gráficos.
Las anteriores herramientas son llamadas por las herramientas de construcción o el ADT
(por sus siglas en inglés, Android Development Tools, herramientas de desarrollo de
Android), no se accesan directamente por el programador.
Como observarás que todas ellas son necesarias para empezar a desarrollar para Android,
a partir del año 2013 aparece el Android Studio, un entorno de desarrollo integrado,
conocido como IDE (por sus siglas en inglés, Integrated Development Environment), en
donde se pueden encontrar todas la herramientas.
4
La clase Nine Patch permite dibujar un bitmap en 9 o más secciones.
5 Acrónimo de What You See Is What You Get, ‘lo que ves es lo que obtienes’.
6 Es una variante simplificada de la API gráfica OpenGL diseñada para dispositivos integrados.
Las diversas versiones de Android que han surgido desde que fue desarrollado son las
siguientes:
Versiones Características
Android Beta Etapa de producción en proceso por
la empresa Android Inc.
Android 1.0 Apple Pie Navegador Web, soporte para
mensajes de texto SMS y MMS,
discador para llamadas, wifi y
bluetooth.
Android 1.1 Banana Bread Soporte para diseños de sistemas,
guardado de archivos adjuntos en los
mensajes, y reseñas de negocios en
los mapas.
Android 1.5 Cupcake Teclado virtual en la pantalla y la
inserción de widgets7.
Android 1.6 Donut Cuadro de búsqueda mejorado,
cámara y aplicación de galería, y
renovada Android Market.
Android 2.0/2.1 Eclair Aplicaciones organizadas y los
widgets en varias pantallas y dentro
de carpetas, fondos de pantalla
animados responden al tacto.
Android 2.2.x Froyo Dictado por voz que permite ingresar
texto y las acciones de voz que
controlan el teléfono.
Android 2.3.x Gingerbread Nuevos sensores para juegos, para
tocar, presionar, inclinar.
Android 3.x Honeycomb Optimizado para tablets.
Android 4.0.x Ice Cream Sandwich Nuevo, refinado, sencillo, e inteligente
diseño.
Android 4.1 Jelly Bean. Gráficos mas definidos y con Google
Now, se consigue la información que
se necesita en el momento justo.
Android 4.2 Jelly Bean (Gummy Bear) Soporte para múltiples usuarios,
mejora de la barra de notificiaciones
con Quick Settings.
Android 4.3 Jelly Bean Perfiles restringidos para tabletas,
completado automático,
7
Pequeña aplicación o programa
Las dos tecnologías más importantes para el desarrollo de aplicaciones móviles son Android
y J2ME. El recorrido por su historia permite analizar la evolución de estas tecnologías. Como
expertos en el desarrollo de software, es posible ampliar el panorama en relación con los
desarrollos de aplicaciones móviles.
Para consultar algunas nociones sobre la plataforma J2ME y Android, revisa el documento
U1. Nociones de J2ME y Android respectivamente, en la carpeta Materiales para el
desarrollo de la Unidad 1.
3.1. J2ME
/*
* 1. Todos los MIDlets deben extender la clase MIDlet.
* 2. CommandListener es el interfaz de gestión de envento del API
de alto nivel de MIDP. */
public class HelloWorld extends MIDlet implements CommandListener{
8
UI Interfaz del usuario
Como se puede observar, se manejan los conceptos de clases, objetos y constructores tal
como un programa Java; recuerda los conceptos revisados en las asignaturas Programación
orientada a objetos I, II y III.
startApp():
protected abstract void startApp ()
Es un método abstracto de la clase MIDlet, y por esa razón tiene que ser implementado en
el Midlet. El hecho de que sea un método protegido (protected) indica que sólo puede ser
utilizado en el paquete javax.microedition.midlet.MIDlet. Y puede ser redefinido como público
(public) para que pueda ser llamado desde otro sitio. Si no hay ningún error (excepción),
comenzará la ejecución del MIDlet.
pauseApp():
pauseApp()protected abstract void pauseApp ()
destroyApp():
protected abstract void destroyApp (boolean unconditional);
Los métodos se usan para notificar que el Midlet ha pasado al estado pausado, destruido o
activo, respectivamente.
public void notiyPaused (), public void notiyDestroyed (), public
void resumeRequest ():
El directorio apps es el directorio principal que contiene el directorio del proyecto; a su vez,
contiene una serie de subdirectorios tales como:
src, contiene los archivos fuentes java.
res, contiene los recursos del Midlet.
lib, contiene librerías adicionales en formato JAR o ZIP
bin, contiene los archivos JAD y JAR
clases, contiene las clases del proyecto
tmplib, contiene las librerías temporales
tmpclasses, contiene las clases temporales
Para consultar algunas nociones sobre J2ME, revisa el documento U1. Nociones básicas de
J2ME, que se ubica en la carpeta Materiales de desarrollo de la Unidad 1.
Las acciones que se hacen con el MIDlet se explicarán en el tema 1.3.3. Midlets. Pero,
¿cuál es la estructura del entorno de desarrollo de Android? A continuación se expondrá
este tema.
3.2. Android
Como es posible observar, la programación es orientada a objetos, con nuevas clases por
conocer y aplicar. Ahora bien, la estructuctura que se genera automáticamente para un
proyecto de Android, en la aplicación Netbeans, es la siguiente (Gargenta, 2011):
El directorio /src/ contiene todo el código fuente de la aplicación, código de la interfaz gráfica,
clases auxiliares, etcétera. Inicialmente, Eclipse crea el código básico de la pantalla (Activity)
principal de la aplicación, que normalmente se llama MainActivity, y siempre bajo la
estructura del paquete java definido, tal como se observa en la imagen siguiente.
Contiene todos los archivos de recursos necesarios para el proyecto: imágenes, videos,
cadenas de texto, etcétera. Los recursos se distribuyen entre las siguientes subcarpetas:
Carpeta Descripción
Contiene las imágenes y otros elementos gráficos
usados en por la aplicación. Puede contener
subcarpetas para definir diferentes recursos,
dependiendo de la resolución y densidad de la pantalla
/res/drawable/ del dispositivo:
/drawable-ldpi (densidad baja)
/drawable-mdpi (densidad media)
/drawable-hdpi (densidad alta)
/drawable-xhdpi (densidad muy alta)
Directorio /gen/
Contiene elementos de código generados automáticamente al compilar el proyecto. Estos
elementos no deben modificarse manualmente.
Incluso la cabecera de estos elementos incluye una leyenda al respecto:
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
Directorio /assets/
Contiene los archivos auxiliares necesarios para la aplicación, tales como las texturas,
configuración y los datos del juego (que se incluyen en el paquete).
Directorio /bin/
Contiene los elementos compilados de la aplicación y otros archivos auxiliares. El archivo
con extensión .apk es el ejecutable de la aplicación que se instala en el dispositivo, el cual
es el archivo Android-hola-usuario.apk, como se observa en la imagen siguiente:
Directorio /libs/
Contiene las librerías auxiliares, normalmente en formato .jar, que se utilizan en la
aplicación Android. Tal como se observa en la imagen, el archivo en el directorio libs,
Android-support-v4.jar.
Archivo AndroidManifest.xml
Contiene la definición en XML de los aspectos principales de la aplicación, como por
ejemplo, su identificación (nombre, versión, icono, …), sus componentes (pantallas,
mensajes, …), las librerías auxiliares utilizadas o los permisos necesarios para su ejecución.
3.3. Midlets
“Los MIDlets son aplicaciones creadas usando la especificación MIDP (Mobile Information
Device Profile). Están diseñados para ser ejecutados, como ya sabemos, en dispositivos con
poca capacidad gráfica, de cómputo y de memoria” (Gálvez y Ortega, 2003, p.31). En estos
dispositivos se dispone de líneas de comandos para poder ejecutar las aplicaciones que se
deseen. Los MIDlets contienen un software que los ejecuta y gestiona los recursos que
éstos utilizan. El software que utilizan los MIDlets se llama gestor de aplicaciones o AMS
(Application Management System), y su función es gestionar los MIDlets. El gestor de
aplicaciones se encuentra en el dispositivo, lo cual posibilita la ejecución, pausa o
destrucción de las aplicaciones J2ME. El AMS tiene las siguientes funciones:
Un Midlet tiene un comportamiento que se traduce en los diferentes estados en los que
puede estar durante su ciclo de vida; estos estados se exponen en la imagen a
continuación:
Estado cargado: Para que una aplicación pueda ser usada, debe estar cargada en el
dispositivo móvil.
Estado activo: Sucede después de inciarse el MIDlet con el método New() que genera una
instancia del mismo. Es posible que en cualquier momento pueda pasar a un estado
pausado, por ejemplo, debido que se recibe una llamada al dispositivo y éste decide que
necesita los recursos (pantalla y teclado) para tratar esa llamada entrante.
El método destroyApp() puede ser llamado desde el estado activo, pausado o cargado.
Puede suceder que el MIDlet pida que no quiere entrar en el estado destruido, por lo que
lanza una excepción MIDletStateChangeException. La excepción es válida si el parámetro
del método (boolean unconditional) es falso; si es verdadero, el Midlet terminará su
ejecución y su destrucción es inevitable.
Al principio del subtema se mencionaron las funciones del AMS. A continuación se revisarán
a detalle estas funciones desde la posición del usuario del dispositivo móvil; todo comienza
cuando el usuario requiere de un Midlet, ya sea como entretenimiento o para actividades
profesionales, entonces busca en cualquiera de los portales, como Play Store o Galaxy App,
la aplicación deseada. Encontrando la aplicación requerida, el AMS del dispositivo móvil
realiza lo siguiente (Gálvez y Ortega, 2003; p.32):
La instalación
1. Si el AMS descarga primero el JAD, el MIDlet debe tener exactamente la misma URL
especificada en el descriptor del archivo JAD.
2. Si el servidor responde a la petición del MIDlet con un código 401 (Unauthorized) o un
407 (Proxy Authentication Required), el dispositivo debe enviar al servidor las
correspondientes credenciales.
3. El MIDlet y las cabeceras recibidas deben ser validadas para verificar que el MIDlet
descargado puede ser instalado en el dispositivo. El usuario debe ser notificado de los
siguientes problemas durante la instalación:
• Si no existe suficiente memoria para almacenar el MIDlet, el dispositivo debe retornar el
código de estado (Status Code) 901.
• Si el JAR no está disponible en la URL del JAD, el dispositivo debe retornar el Código
907.
• Si el JAR recibido no coincide con el descrito por el JAD, el dispositivo debe retornar el
código 904.
• Si el archivo manifesto no puede ser extraído del JAR, o existe algún error al extraerlo,
el dispositivo debe retornar el código 907.
• Si los atributos MIDlet-Name, MIDlet-Version y MIDlet Vendor del archivo JAD no
coinciden con los extraidos del archivo manifest del JAR, el dispositivo debe retornar
el código 905.
• Si la aplicación falla en la autenticación, el dispositivo debe retornar el código 909.
• Si falla por otro motivo distinto del anterior, debe retornar el código 911.
• Si los servicios de conexión se pierden durante la instalación, se debe retornar el código
903 si es posible.
Actualización de MIDlets
El MIDlet ya está cargado en el dispositivo, y después de un tiempo de uso, resulta que hay
una nueva versión del MIDlet. El dispositivo debe ser capaz de informar al usuario de la
actualización y permitir que el usuario decida si desea actualizar o no el MIDlet; si accede a
a la actualización, si es afirmativo, considerar que un MIDlet sin firma no debe reemplazar a
otro que sí la tenga.
Ejecución de MIDlets
Cuando el usuario hace uso de la aplicación, ejecuta el MIDlet que, a su vez, invoca a las
clases CLDC y MIDP requeridas por la especificación MIDP. La interfaz del usuario debe
permitir al usuario selccionar el MIDlet seleccionado.
Eliminación de MIDlets
Suele suceder que el usuario instala a diestra y siniestra MIDlets, y muchos, por supuesto,
consumen recursos, y es cuando el dispositivo debe permitir al usuario eliminar MIDlets no
necesarios. Antes de eliminar una aplicación, el usuario debe de confirmar la orden. El
dispositivo debe de notificar alguna circunstancia durante la eliminación que requiera
atención, como que el MIDlet a borrar podría contener a otros MIDlets que afectarían el
funcionamiento del dispositivo.
Como te habrás dado cuenta, hemos abordado dos estructuras básicas, la del Android y la
de J2ME, así como las acciones que son posibles realizar desde la posición del usuario y el
AMS con los MIDlets. Veamos ahora con qué herramientas se cuenta para el desarrollo de
las aplicaciones en el siguiente tema.
4. Herramientas de desarrollo
Java 2 SDK
Java 2 Micro Edition.
Netbeans
Mismas que se abordarán a continuación.
Eclipse. Es un entorno de desarrollo para Java y tiene un plugin para Android para la
programación de las aplicaciones. El IDE no necesita instalación, se baja del sitio oficial de
Eclipse y se descomprime. Es necesario también descargar el SDK de Android, que se
encuentra en el sitio de desarrolladores de Android; descomprime una vez descargado,
teniendo presente la ruta. Se requiere el plugin de Android para Eclipse; en el menú
Ayuda/Help, en Actualización de software/Software updates, se encuentra el plugin según la
versión del IDE. El entorno de desarrollo de Eclipse se muestra a continuación:
9
Complemento de una aplicación que se relaciona con otra para aportarle una función nueva y
generalmente muy específica
1.-Barra de menú
2.-Barra de iconos
3.-Ventana de estructura del proyecto
4.-Ventana de trabajo, muestra el código del programa
5.-Ventana de miembros del programa , muestra los métodos de la clase
4.2. Emuladores
Según la Real Academia Española (2014), ‘emular’ significa imitar las acciones de otro,
procurando igualarlas e incluso excederlas. Aplicado el término en programación móvil, es
posible afirmar que los emuladores son programas que imitan la función del equipo móvil,
permitiendo aceptar los mismos datos, ejecutar los mismos programas y conseguir los
mismos resultados que en un dispositivo móvil.
Como ejemplos de emuladores tanto para Android y J2ME se presentan los siguientes:
BlueStacks
Este emulador reproduce aplicaciones y juegos Android en pantallas completas, permite
usar las que tiene instaladas en el dispositivo a través de Bluestacks Cloud Conect, y
dispone de 10 aplicaciones ya instaladas.
Su uso es medianamente fácil, por lo que es recomendable para interesados en este tipo de
programas cuyo fin fundamental sea probar juegos populares de teléfonos inteligentes
(smartphones). La imagen siguiente representa el entorno del emulador.
Youwave
Este emulador se puede ejecutar en Windows XP, Vista 7 y 8. Envía y recibe imágenes
desde las unidades usuales de memoria y posee simuladores de tarjetas SD. El
inconveniente podría ser que no hay versiones gratuitas. La imagen siguiente muestra el
entorno del emulador.
Android SDK
Este emulador fue lanzado por Google, y su ventaja es que emula el sistema operativo de
un smartphone con un poco más de precisión. Dispone de gran cantidad de configuraciones,
permite probarlas previamente y comprobar su funcionamiento, además de incluir un SDK
Manager para la descarga de paquetes modulares. En la figura siguiente se puede observar
el emulador.
Para conocer el proceso de instalacion del Android JDK, revisar el video Instalación del
Android SDK, en la carpeta Materiales para el desarrollo de la Unidad 1.
Android para PC
Éste es un excelente sistema operativo de código abierto, una excelente opción para instalar
en netbooks en resolución nativa, pues soporta la aceleración del hardware OpenGl, para
AMD Radeon y chipsets de Intel. Android para PC es el mejor emulador de Android; no
obstante, una desventaja pudiera ser la instalación un poco complicada en la configuración,
pero nada imposible. El contexto del emulador se presenta en la siguiente imagen.
Para que observes el uso del emulador de Android, revisa el documento U1. Emulador de
Android, en los Materiales de desarrollo de la Unidad 1.
Emulador Kemulator
http://i970.photobucket.com/albums/ae185/jlg390/kemulator.jpg
Es importante recalcar la importancia de los archivos JAR y JAD porque son los que
contienen los archivos ejecutables y la descripción de tales archivos, respectivamente, y
son éstos los que precisamente se instalan en el dispositivo móvil. Pero antes de abordarlos,
hay un archivo manifiesto que describe el contenido del archivo JAR, el cual puede ser
creado en cualquier editor de texto con la siguiente estructura: MIDlet-1: Inicio, inicio.png,
Inicio:
MIDlet-Name: Inicio
MIDlet-Vendor:
MIDlet-Version: 1.2
Microedition-Configuration: CLDC-1.0
Microedition-Profile: MIDP-1.0
La creación del archivo manifiesto es opcional.
Ahora bien, ¿qué son los archivos JAR y JAD? Un archivo JAR (por sus siglas en inglés,
Java ARchive) es aquel archivo que permite ejecutar aplicaciones escritas en el lenguaje
Java (Gálvez y Ortega, 2003). El archivo JAD (por sus siglas en inglés, Java Application
Descriptor) es aquel archivo que contiene la descripción del programa, tal como la contenida
en el archivo manifiesto y otra información de complemento, tales como (Gálvez y Ortega,
2003):
MIDlet-Name
MIDlet-Vendor
MIDlet-Version
MIDlet-Description
MIDlet-Icon
MIDlet-Info-URL
MIDlet-Data-Size
MIDlet-Jar-Size
MIDlet-Jar-URL
Los atributos ofrecen información sobre los MIDlets incluidos en el conjunto de programas
(suite). Por ejemplo, se desarrolla una suite denominada Glucómetro, que permite al
usuario registrar el nivel de glucosa y la presión arterial desde un dispositivo móvil. La suite
contiene dos MIDlets: uno para registrar la información, y otro para consultar la información.
Para desarrollar la clase se han usado métodos de utilidad, pertenecientes a la clase
utilidades. En definitiva, las clases involucradas serían las siguientes (teniendo en cuenta
que forman parte del paquete desarrollo.moviles):
desarrollo.moviles.RegistraGlucosa
desarrollo.moviles.ConsultaGlucosa
desarrollo.moviles.Utilidades
MIDlet-Name: Glucometro
MIDlet-Vendor: Programas Maria
MIDlet-Version: 1.2.0
MIDlet-Description: Conjunto de midlets de Glucometro
MIDlet-Icon: /desarrollo/moviles/iconos/gota.png
MIDlet-Info-URL: http://www.programasmaria.com/glucometro/info.html
MIDlet-Data-Size: 516
MicroEdition-Profile: MIDP-1.0
MicroEdition-Configuration: CLDC
MIDlet-1:
Registra,/desarrollo/moviles/iconos/registra.png,desarrollo.moviles.
RegistraGlucosa
MIDlet-2:
Consulta,/desarrollo/moviles/iconos/consulta.png,desarrollo.moviles.
ConsultaGlucosa
META.INF/MANIFEST.mf.
/desarrollo/moviles/RegistraGlucosa.class
/desarrollo/moviles/ConsultaGlucosa.class
/desarrollo/moviles/Utilidades.class
/desarrollo/moviles/iconos/glucosa.png
/desarrollo/moviles/iconos/registrapng
/desarrollo/moviles/icones/consulta.png
El archivo JAR contiene las clases correspodientes a ambos MIDlets; note que la clase de
utilidades se incluye pero no hay ninguna referencia a ella en el archivo manifiesto.
•El atributo MIDlet-Icon contiene la ruta absoluta del archivo que contiene el icono del suite.
•Asociado a cada MIDlet hay un atributo que describe su nombre y le asocia un identificador.
El valor del atributo incluye nombre, icono y clase asociada.
Esta información se mostrará al usuario en la pantalla del dispositivo, así como la URL del
archivo JAR. En este caso, los atributos comunes tienen el mismo valor tanto en el archivo
de manifiesto como en el archivo JAD. Para que la suite sea portable, es preciso que el
archivo JAR esté codificado usando la codificación ISO-8859-1 (es el estándar
de carácteres predeterminado en HTML 4.01.), y se requiere que todas las
implementaciones de MIDP soporten esta codificación.
En tiempo de ejecución, los MIDlets pueden acceder a los archivos del JAR asociado a la
suite y obtener información sobre los valores de los atributos, por lo que la importancia de
estos dos archivos radica en que deben estar en el dispositivo móvil para la ejecución de la
aplicación.
Cierre de la Unidad
Si los temas desarrollados en la presente unidad te han generado curiosidad por saber más
al respecto, se te comparten los siguientes recursos para ampliar tu conocimiento:
Fuentes de consulta
Barro Ameneiro, S., y Bugarín Diz, A.J. (2002). Fronteras de la computación. Madrid:
Díaz de Santos.
Business Angels IAE (2014). Modelo de resumen ejecutivo ampliado. Buenos Aires,
Argentina: Business School, Universidad Austral. Recuperado el 12 de febrero de
2015 de http://www.businessangelsclub.com.ar/recursos.html
Gálvez, S, y Ortega L. (2003). Java a tope: J2ME (Java 2 Micro Edition). Malaga:
Departamento de lenguajes y ciencias de la computación, Universidad de Malaga.