Sei sulla pagina 1di 40

Programación móvil

Unidad 1. Tecnologías para mis aplicaciones móviles

Ingeniería en Desarrollo de Software


8º Semestre

Programa de la asignatura:
Programación móvil

Unidad 1: Tecnologías para mis aplicaciones móviles

Clave:
15144845

Universidad Abierta y a Distancia de México

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 1


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

Í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

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 2


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

Unidad 1. Tecnologías para mis aplicaciones móviles

Presentación de la Unidad

Bienvenido a la Unidad 1. Tecnologías para aplicaciones móviles de la asignatura


Programación móvil. En esta etapa de la carrera Desarrollo de software ya cuentas con
conocimientos avanzados de programación de sistemas de software, programación
orientada a objetos, y sistemas operativos; sin embargo, te has preguntado, ¿cómo es
posible que un sistema operativo pueda administrar los recursos de un dispositivo móvil tal
como un teléfono? O, ¿cómo es posible que haya aplicaciones para distintos dispositivos?

Ahora bien, seguramente tienes conocimientos de lo que es un dispositivo móvil y has


estado en contacto con ellos, como puede ser un teléfono, una cámara fotográfica con
conexión a internet, una tableta electrónica, con la cual es posible comunicarse, accesar a
plataformas de estudio, tener acceso a diversas formas de entretenimiento desde música,
videos, películas. Seguramente también has observado una serie de aplicaciones que son
muy útiles en la vida diaria, desde el procesador de texto, la hoja de cálculo o la aplicación
para hacer presentaciones, hasta aquellas que permiten organizar las actividades diarias,
tales como, el reloj, la agenda, el GPS, entre otras.

Todas esas aplicaciones fueron programadas (en lenguajes de programación orientados a


objetos) en ciertas plataformas con ciertas herramientas y para ciertos dispositivos, por lo
que es importante que, como futuro desarrollador de software, estudies esta alternativa para
tu vida profesional.

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

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 3


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

desarrollo se cuentan, lo que se aclarará en el tema 1.4, asi como la importancia y la


creación de los archivos JAR y JAD, que se cubrirá en el tema 1.5.

Propósitos

Al finalizar esta unidad lograrás:


 Identificar las tecnologías para el desarrollo de dispositivos móviles.
 Identificar las herramientas de desarrollo y estructuras de desarrollo de dispositivos
móviles.
 Relacionar las estructuras de los dispositivos móviles con las herramientas de
desarrollo.

Competencia específica

Identificar 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.

1. Evolución de los dispositivos móviles

Un dispositivo móvil es, en palabras de Tardáguila (2009), “aquel microordenador que es lo


suficientemente ligero como para ser transportado por una persona, y que dispone de la
capacidad de batería suficiente como para poder funcionar de forma autónoma”.

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.

Revisando la historia de la evolución de los dispositivos móviles, en un artículo de la BBC


Mundo (portal virtual) se muestra la entrevista que se le hizo a Martin Cooper, el creador del
primer celular en 1973, en el programa de tecnología Click.

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 4


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

Martin Cooper con el Motorola DynaTAC. Fuente:


http://www.bbc.co.uk/staticarchive/08f23c3d0804a62ebed6f1a5b27deb736f5b647a.jpg

El dispositivo pesaba mas de un kilo y costaba unos 3,995 dólares aproximadamente. A


partir de este punto la tecnología y las herramientas de desarrollo han evolucionado
exponencialmente, buscando siempre mejorar el desempeño, el tamaño, la comodidad, la
utilidad del mismo y hasta el precio.

Evolucion del tamaño de los celulares. Fuente: https://encrypted-


tbn0.gstatic.com/images?q=tbn:ANd9GcSJLBLLGoBVR64uwWRwNJPo029u8unHItWwX0UNqJURaWG__RTH

Los dispositivos móviles más importantes en la actualidad son:


 Teléfono inteligente: Es un dispositivo que permite hacer llamadas telefónicas, con
características como correo electrónico, reproductor de música, radio, televisión,
juegos, redes sociales, cámara fotográfica/video, hojas de calculo, editor de textos,
etc.

 Videoconsola portátil: Es una consola de videojuegos ligera con una pantalla


incorporada, controles y altavoces, que permite a los jugadores llevarla consigo y
jugar en cualquier momento y en cualquier lugar.

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 5


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

 Reproductor de audio portátil: Es un dispositivo móvil personal que permite al


usuario escuchar audio grabado de forma móvil.

 Tableta electrónica que sustituye a la PDA (Personal Digital Assistant): Es una


computadora personal inalámbrica portátil, con una interfaz de pantalla táctil. El
tamaño es mas pequeño que una PC portátil pero mas grande que un teléfono
inteligente. Por su parte, la PDA fue un asistente personal digital que combinaba
funciones computacionales con telefonía e internet.

 Cámara de video y fotografía: Es un dispositivo electrónico portátil capaz de grabar


video y tomar fotografías que pueden compartirse al instante vía internet a las redes
sociales.

 Mensáfono: Es es un dispositivo de telecomunicaciones sencillo que recibe


mensajes de texto corto.

 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.

2. Tecnologías aplicadas a la programación móvil

Para explicar el desarrollo de la tecnología aplicada a la programación móvil es necesario


comprender el concepto de computación ubicua, ya que es la base del desarrollo de la
tecnología móvil e inteligente. El concepto de computación ubicua fue postulado por Mark
Weiser en 1991 (Paredes (2012), quien establece que la computación ubicua “es un
mecanismo por el cual se facilita el uso de computadoras, haciendo que en nuestro entorno
existan múltiples sistemas de computación, pero siendo éstos <<imperceptibles>> para el
usuario, de esta forma, el entorno se transforma en un entorno <<inteligente>> capaz de
responder a nuestros requerimientos”. Lo anterior lo observamos hoy en dia en el uso de los
dipositivos móviles donde hay diversas aplicaciones que se conectan a multiples sistemas
de computación, ya sea en servidores físicos o en la nube, de los cuales el usuario común

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 6


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

no tiene conocimiento (y no es necesario que lo tenga), para intercambiar información en un


entorno transparente e inteligente. Y es cuando “el usuario puede concentrarse en la tarea
que desea realizar y no en la interacción con los sistemas informáticos" (Barro y Bugarín,
2002, p. 377). Según Paredes (2012), la computación ubicua se fundamenta en cuatro
paradigmas, mismos que se exponen a continuación:

La descentralización: Es la etapa siguiente a la centralización del procesamiento en las


computadoras centrales llamadas mainframes. En la era de la computadora personal,
comúnmente llamada PC, se establece la arquitectura cliente-servidor, y es en esta era
donde se detecta la necesidad de la sincronización para mantener los datos actualizados.

La diversificación: Es el paradigma que consiste en ofrecer el mismo servicio, pero


adaptado a diferentes dispositivos, sin depender del entorno y dispositivos con
funcinalidades particulares.

La conectividad: Para el logro de este paradigma, el cual consiste en darle a un dispositivo


la capacidad de conectarse de forma autónoma, fue necesaria la definición de estándares y
protocolos que permitieran una conectividad sin límites, en la que cualquier tipo de software
se pudiera ejecutar sobre cualquier plataforma y red. Ejemplos de estos estándares y
protocolos son:
 WAP (por sus siglas en inglés, Wireless Access Protocol, Protocolo de Acceso
Inalámbrico).
 UMTS (por sus siglas en inglés, Universal Mobile Telecommunications System,
Sistema Universal de Comunicaciones Móviles).
 BlueTooth (protocolo de comunicación para redes inalámbricas mediante
radiofrecuencia).

La simplicidad: Este paradigma se caracteriza por proporcionar al usuario interfaces


intuitivas, sencillas y funcionales, aunado a la rapidez en el acceso a los datos a través de
diseños vanguardistas que combinan el software y el hardware.

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.

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 7


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones 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.

J2ME tiene dos ventajas competitivas:


 El código se puede ejecutar en diversos modelos de dispositivos móviles, sin
cambios.
 Tiene características de seguridad importantes para el código descargable.

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.

Configuraciones. Una configuración está diseñada para un tipo específico de dispositivo


basado en las limitaciones de potencia del procesador y la memoria, la configuración
especifica una máquina virtual, JVM ( por sus siglas en inglés, Java Virtual Machine), una
API de J2SE, y APIs que puedan ser necesarias.

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.

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 8


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

Perfiles y configuraciones de J2ME (Li y Kudsen, 2005; p. 218)

APIs. Las APIs opcionales definen funcionalidad adicional específica que puede ser incluida
en una configuración especial (o perfil).

La colección en su totalidad (la configuracion, el perfil y las APIs) se implementa en el


dispositivo.

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).

La siguiente tecnología es mas reciente pero no menos poderosa. A diferencia de J2ME,


Android divide sus aplicaciones en componentes básicos, permitiendo la modularidad.
También maneja Intents para el llamado de aplicaciones externas, usa interfaces en código

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 9


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

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

Android es un un producto de Google y nace como un sistema operativo y entorno de


desarrollo para dispositivos móviles. Por su parte, Google surgió como un proyecto
universitario de Page y Brin, según la historia (Google Empresa, s/f), entre 1995 y 1996 en la
Universidad de Stanford. El nombre del proyecto –un motor de búsqueda- fue BackRub, y en
1997 se cambió por Google. Un año después se pone en línea este famoso buscador.
Integrando diversos elementos, Google evoluciona, y en el año 2000 se presenta Adwords –
un sistema de publicidad en línea y la barra Google, abarcando nuevos mercados entre
2004 y 2007: Google maps es un servicio gratuito de aplicaciones de mapas en la web;
Gmail es un servicio gratuito de correo electrónico para POP3 e IMAP. Search Appliance a
nivel empresarial es un sistema de búsqueda universal que permite a las organizaciones
incorporar información procedente de una variedad de fuentes externas e internas.
Y SMS es un servicio de mensajería instantánea a a través de la aplicación de calendario.

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

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 10


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

para ejecutar las mismas aplicaciones y crear un ecosistema mucho más rico para los
desarrolladores y consumidores.

El SDK (por su siglas en inglés, Software Development Kit) de Android es un conjunto de


herramientas de desarrollo de software para el desarrollo de aplicaciones, las cuales se
divividen en:

Herramientas de dispositivo virtual


El manejador AVD (por sus siglas en inglés, Android Virtual Device) proporciona una
interfaz gráfica de usuario en la que pueden crear y gestionar dispositivos virtuales
Android que se ejecutan en el emulador.
Emulador Android, basado en QUEMU2, que se usa para depurar y probar las
aplicaciones en tiempo de ejecución.
Mksdcard, ayuda a crear una imagen de disco que se usa con el emulador para
simular la presencia de un manejador de la tarjeta de almacenamiento externo (como
una tarjeta SD).

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

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 11


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

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.

Y como herramientas de la plataforma se tiene a:


 adb (vista en herramientas de depuración).
 aid (por sus siglas en inglés, Android Interface Definition, definición de la interface
Android).
 aapt (por sus siglas en inglés, Android Asset Packaging Tool), lista y remueve
archivos APK.
 dexdump es un desemblador de aplicaciones.
 dx son archivos ejecutables de la aplicación.

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.

Se incluyen unas herramientas de intérpretes de comandos que pueden ser accesados a


través de adb:
 bmgr, para interactuar con el manejador de respaldos.
 logcat, proporciona un mecanismo para colectar y visualizar las salidas de la
depuración.

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.

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 12


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

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

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 13


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

compatibilidad idiomas hebreo y


árabe.
Android 4.4 KitKat Portadas de álbum o película a
pantalla completa, modo envolvente,
mayor rendimiento del sistema,
Quickoffice.
Android 5.0 Lollipop Notificaciones en la pantalla de
bloqueo, API nueva para la cámara,
OpenGL ES 3.1, nuevo diseño de
interfaz, versión lanzada en
noviembre del 2014.
Android (2014)

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.

En el siguiente tema se abordará la estructura de las aplicaciones móviles mediante las


tecnologías mencionadas.

3. Estructura de una aplicación para tecnología móvil

La estructura de una aplicación móvil es la arquitectura de un entorno de desarrollo, y se


refiere a los elementos que la conforman (Gálvez y Ortega, p. 5); es en sí, cómo está
conformado el proyecto de la aplicación según el entorno de desarrollo que se utilice.

En la asignatura Fundamentos de programación identificaste cómo está conformado un


programa. Ahora bien, una aplicación es finalmente también un programa, el cual vamos a
identificar cómo está conformado en J2ME y en Android, y cuáles son las estructuras que se
generan en sus respectivos proyectos según el entorno de desarrollo.

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.

Con base en lo anterior, en los siguientes temas se revisará la conformación de una


aplicación y la estructura generada de una aplicación para J2ME y en Android.

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 14


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

3.1. J2ME

Las aplicaciones que se programan en el perfil J2ME y la configuracion CLDC se llaman


midlets, por remembranza de los applets. La aplicación está conformada con los siguientes
elementos descritos en la tabla.

// Incluye la superclase de MIDlet


import javax.microedition.midlet.*;
// Incluye las librerías de interfaz de usuario de MIDP
import javax.microedition.lcdui.*;

/*
* 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{

// Componentes de UI8 del MIDlet


private Display display;
private TextBox mainScreen = null;
private Command exit = new Command("exit", Command.EXIT, 2);

// Constructor sin parámetros


public HelloWorld() {
display = Display.getDisplay(this);
mainScreen = new TextBox("Text Box", "Hello World CR", 512,0);
mainScreen.addCommand(exit);
mainScreen.setCommandListener(this);
}

// Implementación el metodo startApp()


public void startApp() {
display.setCurrent(mainScreen);
}

// Implementación el metodo pauseApp()


public void pauseApp() {
}

8
UI Interfaz del usuario

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 15


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

// Implementación el metodo destroyApp()


public void destroyApp(boolean unconditional) {
}
/*
* Implementa el metodo correspondiente del interfaz
CommandListener
*/
public void commandAction(Command c, Displayable s) {
if (c == exit) {
destroyApp(false);
notifyDestroyed();
}
}
}
Estructura de una aplicación en J2ME

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.

Los nuevos métodos de la tecnología J2ME a conocer están documentados en:


http://docs.oracle.com/javame/config/cldc/ref-
impl/midp2.0/jsr118/javax/microedition/midlet/MIDlet.html, a continuación se revisará su uso:

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 ()

Debido a que es una clase abstracta, se puede redefinir, y la implementación depende de la


aplicación en sÍ, y lo que normalmente se hace es guardar el estado actual y liberar
cualquier recurso que estuviera usando; la aplicación pasa a un estado seguro, a partir del
cual se puede reanudar la ejecución.

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 16


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

destroyApp():
protected abstract void destroyApp (boolean unconditional);

Cuando la aplicación ya cumplió con lo solicitado, o simplemente se desea cerrarla, el


método le dice al MIDlet que termine la aplicación para entrar en el estado de Destruido; y
en respuesta a esto la aplicación tiene que liberar todos los recursos usados y guardar los
datos persistentes tales como las preferencicias o estados.

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 ():

La estructura que se genera al crear el proyecto de la aplicación en J2ME


Wireless Toolkit se puede observar en la imagen siguiente :

Estructura de una aplicación en en J2MEWireless Toolkit (Gálvez, 2010; p.10)

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

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 17


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

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

A continuación se revisa la estructura de una aplicación en Android.


package com.example.helloworld; Paquete de helloworld
import android.os.Bundle; Importación de las
librerías Bundle,
Activity y Menu.
import android.app.Activity;
import android.view.Menu;

public class HelloWorldActivity extends Clase principal


Activity helloWorldActivity que
se extiende de la clase
Activity.
{
@Override protected void
onCreate(Bundle Método onCreate()
savedInstanceState) cuyo parámetro
contiene el estado
anterior de la actividad.
{super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

@Override public boolean Método


onCreateOptionsMenu(Menu menu) onCreateOptions()
recibe como parámetro
un objeto de tipo menú.
{
// crea el menú; esto agrega elementos a la
barra de acción si está presente
getMenuInflater().inflate(R.menu.main,
menu);
return true;
}
Estructura de aplicación en Android (Mkyong, 2011)

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 18


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

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):

Estructura del proyecto Android en NetBeans (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.

Directorio src y MainActivity obtenido de http://www.sgoliver.net/blog/estructura-de-un-proyecto-android/

Directorio res obtenido de http://www.sgoliver.net/blog/estructura-de-un-proyecto-android/

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 19


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

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)

Contiene los archivos de definición XML de las


diferentes pantallas de la interfaz gráfica. De acuerdo a
la orientación del dispositivo, se definen distintos layouts
/res/layout/ en dos subcarpetas:
 /layout (vertical)
 /layout-land (horizontal)

Contiene la definición de las animaciones utilizadas por


/res/anim//res/animator/ la aplicación.

Contiene archivos XML de definición de colores según


/res/color/ estado.
Contiene la definición XML de los menús de la
/res/menu/ aplicación.
Contiene otros archivos XML de datos utilizados por la
/res/xml/ aplicación.
Contiene recursos adicionales, normalmente en formato
/res/raw/ distinto a XML.
Contiene otros archivos XML de recursos de la
aplicación, tales como cadenas de texto (strings.xml),
/res/values/ estilos (styles.xml), colores (colors.xml), arrays de
valores (arrays.xml), etc.
Directorio res (Sgoliver, 2014)

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 20


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

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 gen (Sgoliver, 2010)

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).

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 21


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

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 bin (Sgoliver, 2010) http://www.sgoliver.net/blog/?attachment_id=3392

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.

Directorio libs (Sgoliver, 2010) http://www.sgoliver.net/blog/?attachment_id=3394

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.

Ya se explicó la estructura de una aplicación y de un proyecto en Android, donde se observa


que el tipo de programación es orientada a objetos, en donde se trabaja con clases, objetos y
se realizan las actividades normales de instanciación, redefinición de métodos y la estructura
del proyecto con la serie de directorios y el contenido que se debe observar.

Conociendo ya la estructura de una aplicación en J2ME y en Android, se tiene que es posible


que una aplicación de J2ME (MIDlets) pueda usarse en un ambiente Android, mediante el uso
del plugin de Android en el entorno de desarrollo de J2ME, por lo que es necesario conocer
los estados y las acciones que se pueden hacer con un MIDlet, considerando que la estructura
se abordó en el tema 3.1.

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 22


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

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:

 Gestionar el ciclo de vida de los MIDlets.


 Controlar los estados por los que pasa el MIDlet mientras está en ejecución.

La estructura del programa ya se revisó en el subtema 3.1. J2ME, y en el presente subtema


se expondrán las acciones que se pueden realizar mediante un MIDlet.

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:

Ciclo de vida del MIDlet (Gargenta, 2011, p. 29)

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

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 23


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

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.

Cuando el estado es pausado, es posible regresar al estado activo llamando a la función


startApp(); por supuesto que se reanuda en el estado que se quedó antes de la pausa,
por lo que resulta necesario hacer la diferenciación entre la llamada de primera vez del
método y el llamado después de la pausa.

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.

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 24


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

• 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.

La instalación se da por completa cuando el MIDlet esté disponible en el dispositivo, y no


haya ocurrido un error irrecuperable.

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

En el vertiginoso mundo de la programación, herramientas más herramientas menos, es


posible encontrar un sinnúmero en el mercado; sin embargo, depende de la facilidad de su
uso o accesibilidad el que sobrevivan en la jungla digital, dependiendo de la compatibilidad
con el sistema operativo. Las herramientas de desarrollo son aquellas que permiten
programar, compilar y ejecutar las aplicaciones para los dispositivos móviles,
proporcionando un entorno de desarrollo y características propias para ciertos dispositivos.
Por ejemplo, existen las siguientes para la plataforma Java :

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 25


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

 Java 2 SDK
 Java 2 Micro Edition.
 Netbeans
Mismas que se abordarán a continuación.

4.1. Plataformas: Eclipse, Netbeans, J2ME

Las plataformas de desarrollo proporcionan un entorno para el desarrollo de aplicaciones


para los dispositivos móviles. La selección de cualquiera de ellos dependerá del
programador y lo cómodo que se sienta con la selección, así como el objetivo de las
aplicaciones móviles que se desarrollarán, las especificaciones del proyecto, perfil de
usuarios, etcétera. A continuación se explicará cada uno de los entornos de desarrollo:

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:

Entorno de desarrollo de Eclipse en Android

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 26


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

El entorno de desarrollo es sencillo y tiene los siguientes elementos:


1.-Barras de menú
2.-Barra de iconos o accesos rápidos
3.-Ventana de despliegue de directorios
4.-Ventana de edición de programas
5.-Ventana de salida

Este ambiente de desarrollo permite desarrollar aplicaciones tanto en J2ME y en Android,


utilizando sus respectivos plugin9. Veamos en la imagen siguiente la integración del plugin
de J2ME con Eclipse.

Entorno de desarrollo Eclipse con J2ME

Como se observa, el desarrollo de aplicaciones con Eclipse es muy versátil, con un


ambiente amigable y totalmente gráfico.

Netbeans. Es un entorno de desarrollo de aplicaciones JAVA con módulos para desarrollo


de aplicaciones para dispositivos móviles. Es posible bajar el IDE en la siguiente dirección:

9
Complemento de una aplicación que se relaciona con otra para aportarle una función nueva y
generalmente muy específica

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 27


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

htpp://www.netbeans.org; el IDE contiene el complemento para aplicaciones móviles Java


ME, durante la instalación es posible selecionarlo o no, tal como se muestra en la imagen
siguiente.

Ventana de de instalación con el componente Java ME incluido

La ventana del entono de desarrollo de Netbeans es la siguiente:

Entorno de desarrollo Netbeans con J2ME

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 28


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

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

Tambien es posible programar aplicaciones para Android con su correspondiente plugin, el


cual puedes encontrar en la siguiente liga:
http://plugins.netbeans.org/plugin/19545/nbandroid

Entorno de desarrollo de Netbeans para Android

Como se puede observar, Netbeans es un poderoso IDE que permite el desarrollo de


aplicaciones para J2ME y Android.

J2ME. Es un paquete completo de desarrollo en conjunto con la herramienta KToolbar y el


perfil MIDP. Con la herramienta KToolbar se puede compilar código sin necesidad de
interactuar directamente con CLDC, al mismo tiempo que se dispone de un emulador de
terminal telefónico y es posible probar el funcionamiento de la aplicación sobre el dispositivo
móvil. La dirección de descarga es http://java.sun.com/javame/downloads/index.jsp. La
versión más reciente es la 2.5; en la imagen siguiente es posible observar el entorno de
desarrollo.

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 29


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

Entorno de desarrollo Toolkit de J2ME,


http://www.it.uc3m.es/~celeste/docencia/j2me/tutoriales/midp1_0//PracticaIntroJ2ME/imag/ktoolbar.bmp

El J2ME Wireless Toolkit es un ambiente de desarrollo exclusivo para J2ME, a diferencia de


Eclipse y Netbeans, que pueden ser un entorno de desarrollo tanto para J2ME como para
Android y programas JAVA. Considerando que los tres entornos de programación utilizan el
perfil MIDP, se recuerda que las aplicaciones desarrolladas con este perfil son para
dispositivos móviles tales como teléfonos y tabletas.

Se ha revisado ya cuál es la estructura de las aplicaciones y las herramientas de desarrollo


con las que se cuentan. Es importante que, al desarrollar las aplicaciones, se trabaje con
emuladores; es decir, con programas mediante los cuales sea posible comprobar que la
aplicación desarrollada funcione adecuadamente antes de ponerla a disposición de los
usuarios. En el siguiente subtema se explicará el uso de los emuladores.

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.

Generalmente en los ambientes de desarrollo se integran emuladores para probar la


aplicación, mientras que hay otros emuladores que se pueden usar de acuerdo a la
preferencia del programador. Normalmente los requerimientos técnicos de estos emuladores
ajenos al entorno de desarrollo varían, pero, en promedio, se puede decir que los requisitos
técnicos mínimos son los siguientes:
 1 Gb de RAM

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 30


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

 20 Gb libres en el disco duro


 1.2 Ghz en el procesador

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.

Entorno de emulador BlueStacks


http://www.programasgratisfull.com/wp-content/uploads/2014/11/bluestack1.jpg

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.

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 31


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

Entorno del emulador YouWave


http://www.poderpda.com/wp-content/uploads/2011/10/YouWave-Android.png

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.

Emulador Android SDK. http://oi38.tinypic.com/20i8j1z.jpg

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 32


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

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.

Emulador Android para PC. https://www.youtube.com/watch?v=r-mRYye_4qg minuto.4:49

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.

Los emuladores para J2ME, son:

1. Wireless Toolkit incluye el emulador de dispositivos móviles; la imagen es la siguiente:

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 33


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

Emulador del Wireless Toolkit

2. MidpX es una herramienta de integración que permite a los usuarios a administrar el


J2ME. En la figura siguiente se puede observar el emulador.

Emulador Android SDK


http://www.f1cd.ru/soft/screens/windows/mobile/emulator/m_midpx_102_3.jpg

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 34


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

3. KEmulator lite es un emulador completo que permite ejecutar aplicaciones en formato


JAR con una interfaz de una larga lista de móviles de todas las marcas. Es la la mejor vía
para probar aplicaciones sin necesidad de abandonar la computadora y con la ventaja de
poder solucionar cualquier error en cuestión de segundos.

Emulador Kemulator
http://i970.photobucket.com/albums/ae185/jlg390/kemulator.jpg

4.3. Importancia y creación de archivos JAR y JAD

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.

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 35


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

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

El manifiesto para esta suite sería el siguiente:

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:

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 36


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

Registra,/desarrollo/moviles/iconos/registra.png,desarrollo.moviles.
RegistraGlucosa
MIDlet-2:
Consulta,/desarrollo/moviles/iconos/consulta.png,desarrollo.moviles.
ConsultaGlucosa

En el archivo JAR correspondiente, el archivo de manifiesto aparecería como:

META.INF/MANIFEST.mf.

El archivo JAR también contendría los siguientes archivos:

/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.

El archivo JAD asociado a este MIDlet contendrá la siguiente información:


MIDlet-Name: Glucometro
MIDlet-Vendor: Programas Maria
MIDlet-Version: 1.2.0
MIDlet-Description: Conjunto de midlets para registrar la glucosa y la presión arterial
MIDlet-Info-URL: http://www.programasmaria.com/glucometro/info.html
MIDlet-Data-Size: 516
MicroEdition-Jar-Size: 10132
MIDlet-Jar-URL: http://www.programasmaria.com/glucometro/Glucometro.jar

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.

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 37


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

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

¿Que te ha parecido la unidad? Interesante, ¿verdad?, ya que se ha expuesto cómo han


ido evolucionando los dispositivos móviles a través del tiempo y así podemos entender el
porqué de las caracetristicas de los dispositivos actuales y visualizar cómo serán en un
futuro cercano. Asimismo, conociste dos de las tecnologías mas populares del momento por
su sencillez y portabilidad, J2ME y Android; por supuesto que fue menester conocer las
respectivas estructuras de las aplicaciones para poder identificarlas y aplicarlas en futuras
programaciones con el uso de las herramientas de desarrollo disponibles y de libre
distribución como Eclipse, Netbeans y J2ME.

Ahora bien, se resaltó la importancia del SDK en la programación de las aplicaciones, y


teniendo éstas, ¿como las probamos? Se explicó la importancia del uso de los emuladores
para distintos dispositivos y probar si las aplicaciones son funcionales o no, para hacer las
correcciones debidas antes de ponerlas a la venta, por ejemplo, o usarlas. Superada la
etapa de las pruebas de la aplicación, se identificó en qué momento se crean los archivos
JAR y JAD, considerando la importancia de ambos en la portabilidad de la aplicación a un
dispositivo móvil.

La unidad sienta un precedente para el desarrollo de las unidades subsecuentes,


Aplicaciones J2ME y Aplicaciones en plataforma Android, respectivamente.

Para saber más

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:

 Investiga en internet la historia de los dispositivos móviles de diversas empresas de


telefonía móvil.

 La historia de Google, entre lo que se encuentra la aparición de Android en el


mercado de los dispositivos móviles, puedes consultarla en el siguiente sitio:
https://www.google.com/about/company/history/?hl=es

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 38


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

 Las variantes de la norma ISO-8859


http://www.w3schools.com/charsets/ref_html_8859.asp

 En el siguiente sitio podrás consultar una reseña histórica de la evolución de la


programación de dispositivos móviles
http://www.poderpda.com/editorial/programacion-para-dispositivos-moviles-una-
resena-historica/

 Investiga en internet diversos videos, donde es posible observar el emulador para


aplicaciones y juegos java (Sun Java Wireless Toolkit 2.5.1 + JADMaker).

Fuentes de consulta

 Android (2014). La historia de Android. Recuperado de


http://www.android.com/history/

 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.

 Gargenta, M. (2011). Learning Android. Estados Unidos: O’Reilly Media, Inc.California.

 Google Empresa (2014). Nuestra historia en profundidad. Recuperado de


https://www.google.com/about/company/history/?hl=es

 Li, S. y Knudsen, J. (2005). Beginning J2ME: From Novice to Professional. 3rd.


Edition. Estados Unidos: Apress.

 Mkyong (3 de noviembre 2011). Android Hello World Example. Recuperado de


http://www.mkyong.com/android/android-hello-world-example/

 Oracle. (2014a). Java SE Development Kit 8 Downloads. Recuperado de


http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-
2133151.html

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 39


Programación móvil
Unidad 1. Tecnologías para mis aplicaciones móviles

 Oracle (2014b). The History of Java Technology. Recuperado de


http://www.oracle.com/technetwork/java/javase/overview/javahistory-index-
198355.html

 Paredes Velasco, M., Santacruz Valencia, L.P., Domínguez Mateos, F.(2012).


Programación multimedia y dispositivos móviles. Guía didáctica del profesor. Madrid:
RA-MA.

 Poder PDA. (5 de septiembre 2014). Programación para dispositivos móviles: una


reseña histórica http://www.poderpda.com/editorial/programacion-para-dispositivos-
moviles-una-resena-historica/

 RAE Real Academia Española (2014). Riesgo. [En línea]


http://lema.rae.es/drae/?val=emular

 Robledo Sacristán, C., y Robledo Fernández, D. (2011). Programación en Android.


Madrid: Ministerio de cultura de España.

 Sgoliver (28 de diciembre 2014). Estructura de un proyecto Android (Android Studio).


Recuparado de http://www.sgoliver.net/blog/estructura-de-un-proyecto-android-
android-studio/

 Sgoliver (9 de agosto 2010). Estructura de un proyecto Android (Eclipse).


Recuperado de http://www.sgoliver.net/blog/estructura-de-un-proyecto-android/

 Tardáguila, C. (2009). Dispositivos móviles y multimedia, Repositorio Institucional:


Universitat Oberta de Catalunya (UOC). Recuperada en Febrero 8, 2015, del sitio
Web tema: Portal de Recursos Educativos Abiertos (REA) en
http://www.temoa.info/es/node/145900

Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software 40

Potrebbero piacerti anche