Está en la página 1de 8

Universidad Abierta y a Distancia de México

Nombre de la Actividad:

Actividad 1. ¿Cuál es la diferencia entre programar en J2ME y


Android?

Curso:

Programación Móvil

Docente en línea: JOSAFAT POCTZIN DIRCIO

Alumno: ISRAEL HERNÁNDEZ PÉREZ

AL12531145

2 de noviembre de 2018
Actividad 1. ¿Cuál es la diferencia entre programar en J2ME y
Android?

Introducción

Tomando como referencia la documentación proporcionada sobre la plataforma Android


(U1. Introducción a la plataforma Android.pdf), y el aprendizaje adquirido sobre J2ME en
las dos unidades previas, será necesario que identifiques las bondades y restricciones de
los elementos de programación de cada una de ellas para determinar en qué entorno
resulta más favorable desarrollar un componente de alguna aplicación para dispositivos
móviles, considerando la necesidad a la que deba dar respuesta.

Propósito de la actividad

Al realizar la actividad podrás:


 Contrastar los entornos de desarrollo J2ME y Android, especificando las
principales similitudes y diferencias entre ellos.

Planteamientos detonadores del aprendizaje

Las siguientes preguntas se plantean como una guía de análisis con el fin de apoyar el
desarrollo de tu actividad 1.
¿Qué tipo de componentes de programación es recomendable desarrollar en J2ME?
¿Qué características debe tener un elemento de una aplicación para dispositivos móviles
para ser desarrollado en Android?

Instrucciones

El propósito de la actividad 1 es que analices cuáles son las diferencias que existen en
las estructuras de programación de J2ME y de Android, con el fin de determinar cuál de
ellos ofrece mejores ventajas, para el desarrollo de aplicaciones en dispositivos móviles.
Para ello, sigue estos pasos:

1. Investiga las diferencias principales entre la programación en el entorno de


J2ME y de Android, contemplando las siguientes categorías:
 APIS que utilizan.
 Requerimientos básicos.
 Plataformas de distribución.
 Máquina virtual que utilizan.
 Portabilidad.
 Componentes que manejan.
2. Analiza y redacta, cuáles serían las ventajas y desventajas de una aplicación
para resolver el problema de las conversiones, creada en J2ME, y de la misma
aplicación creada en Android.
3. Después de la investigación del punto 1, organiza la información en una tabla
comparativa, la cual se integrará en un documento (Junto con el desarrollo del
punto 2), con carátula y los datos de identificación completos, posteriormente
guarda tu actividad con la nomenclatura DPMO_U3_A1_XXYZ. Sustituye las
XX por las dos primeras letras de tu primer nombre, la Y por tu primer apellido y
la Z por tu segundo apellido.

4. Ingresa al Foro y sube el archivo que contenga tu actividad desarrollada.


Redacta en el cuadro de texto una breve reseña de tu actividad no mayor a
cinco renglones. Al finalizar da clic en enviar para publicarlo y esté accesible a
tus compañeros y docente en línea.

5. Ingresa a la participación de uno de tus compañeros como mínimo, y lee


detenidamente su actividad, analízala y realiza un comentario mencionando las
aportaciones a tu propia comprensión sobre el tema.

6. Recuerda que tus ponencias y comentarios deben ser redactados en un


lenguaje respetuoso y en forma de crítica constructiva.
J2ME y Android

J2ME se desarrolla en un IDE (Integrated Development Environment (IDE)) que trabaja


con lenguajes diversos sobre todo JAVA, por ejemplo NETBEANS o ECLIPSE, como se
pudo apreciar en la actividad del conversor de unidades, se tiene que tener conocimientos
básicos de librerías del entorno, principios de java. El desarrollo implicaba un uso continuo
del emulador para pruebas, su instalación requirió de diferentes plug ins y programas
auxiliares, como que no sucede con Android Studio, que como IDE, se tiene todo el
entorno.

Android Studio ofrece como principal ventaja ser un IDE especializado en el desarrollo de
APPS, es decir las herramientas existentes están especializadas, el producto que se
obtiene es un apk, mismo que se puede probar de forma directa, sin requerir migrarlo.

ANDROID: Permite desarrollar aplicaciones en los siguientes entornos de programación:

· Eclipse

· Netbeans

MIDP/CLDC: Permite desarrollar aplicaciones en los siguientes entornos de


programación:

· J2ME Wireless Toolkit 2.2

· J2ME WTK 2.5

· Java ME Platform SDK 3.0

· Netbeans: Mobility Pack 4.1

· Eclipse: Plug-in EclipseME

Tras comenzar a estudiar las características de Android, pueden observarse algunos


aspectos que, si bien no siempre resultan una ventaja frente a sus competidores, sí son
interesantes y pueden repercutir positivamente en su elección como plataforma. Por
ejemplo:

o A pesar de que Google evita usar el término demasiado, el hecho de utilizar un


lenguaje tan popular como Java ayuda a que cualquier programador mínimamente
experimentado pueda comenzar a programar sus aplicaciones sin mayor
complicación, además de animar a los que ya estén muy familiarizados. Incluye,
además, las API más importantes de este lenguaje como java.util, java.io o
java.net.
o La licencia Apache permite a todo el mundo poder estudiar, modificar y distribuir el
sistema Android, a la vez que da opción al desarrollo privado mediante la
publicación comercial de aplicaciones. Cada desarrollador puede decidir cómo
quiere distribuir su propio trabajo.
o Como ya es sabido, Android divide todas sus aplicaciones en componentes o
bloques básicos que, combinados, constituyen el programa final. Así, tenemos
bloques visibles para el usuario mediante interfaces (Activity), bloques que se
ejecutan en background fuera de su conocimiento (Service), bloques a la escucha
de determinados eventos (Broadcast Receiver) y bloques que ofrecen contenidos
a otras aplicaciones (Content Providers). Esta filosofía es original y ayuda a
modularizar funcionalmente las aplicaciones.
o La delegación de acciones en otras aplicaciones mediante Intents es otro de los
aspectos más innovadores ofrecidos por Android. Mediante un Intent, la aplicación
simplemente expresa lo que desea hacer y es el sistema el encargado de buscar
la aplicación más adecuada (para llamar, mandar un correo electrónico, abrir una
página web, etc.). Así mismo, las aplicaciones pueden anunciar a las demás que
están preparadas para poder atender determinados tipos de Intents.
o La construcción de interfaces de usuario ha sido un aspecto muy cuidado, no sólo
por la amplia colección de elementos y diseños incorporados, sino por la
posibilidad de ser definidas tanto en el código fuente como mediante documentos
XML externos.
o El acceso a los recursos del dispositivo, como GPS, Wi-Fi, etc., se convierte en
una tarea fácil y simple gracias a las API del SDK.
o La declaración y uso de recursos externos, tales como imágenes, cadenas de
texto, valores numéricos, o incluso diferentes modelos de interfaz de usuario y de
diseños es cómoda y fácil de realizar.
o Android no tiene método main como en las aplicaciones de J2ME, el problema de
este Sistema Operativo móvil es que sus aplicaciones son muy básicas, debido a
que los dispositivos móviles, la mayoría, creados con este lenguaje, casi no llegan
a ser táctiles.
o Android en cambio es mucho mejor visualmente, y por parte de la codificación,
aunque sea un poco complejo aprenderlo al comienzo debido a las muchas
carpetas que posee en SCR, pero en mi opinión existe un mayor mercado para
Android que para J2ME, nadie dice que sea mejor, pero es más pedido.

Diferencias técnicas1:

Sistema
J2ME Android
Operativo

1
http://programadoreswebperu.blogspot.com/2014/11/j2me-vs-android-la-hora-de-programar.html
Clase Hello.class Hello.dex

Ejecutable Hello.jar Hello.apk

Pantalla visual Midlet Screen Activity Screen

JVM (Máquina virtual de DVM(Máquina Virtual


Máquina Virtual
Java) Dalvik)

Uso de memoria

ANDROID: En este aspecto Android es el ganador ya que los terminales Android no


imponen restricciones de memoria, debido a que cada aplicación Android corre su propio
proceso, con su propia instancia de la VM Dalvik. Dalvik permite el uso eficiente de dichas
instancias. Ejecuta ficheros en el formato .dex optimizado para el consumo mínimo de
memoria.

MIDP/CLDC: Los sistemas J2ME tienen restricciones importantes de memoria para el


almacenamiento y ejecución de aplicaciones, restricciones por debajo de 50K.

Uso de hilos (contextos)

ANDROID: Ofrece el paquete java.util.concurrent, heredado de java, y android.os para


mecanismos de sincronización de procesos, tareas, hilos y actividades.

La principal diferencia entre las dos tecnologías es que Android ofrece un “entorno
multitarea”, es decir, cada aplicación de Android corre en su propio proceso, el cual es
creado por la aplicación cuando se ejecuta y permanece hasta que la aplicación deja de
trabajar o el sistema necesita memoria para otras aplicaciones. Una característica
fundamental de Android es que el ciclo de vida de una aplicación no está controlado por
la misma aplicación sino que lo determina el sistema a partir de una combinación de
estados como pueden ser que aplicaciones están funcionando, que prioridad tienen para
el usuario y cuanta memoria queda disponible en el sistema. De esta manera, Android
sitúa cada proceso en una jerarquía de "importancia", concretamente sigue el estándar
POSIX, de modo que la política de eliminación de procesos es TRANSPARENTE para el
programador, ya que la capa inferior de la plataforma está compuesta por un núcleo Linux
(versión 2.6) que se usa como capa de abstracción de hardware (HAL, Hardware
Abstraction Layer). Si el programador desea ver los procesos en ejecución a bajo nivel, la
única posibilidad es usar la herramienta AIDL, la cual ofrece al programador la
visualización de las llamadas del SO a los métodos IPC.

MIDP/CLDC: Java ME, al igual que Android ofrece un entorno “multithreaded”, ya que
permite realizar múltiples actividades simultáneamente, pero se diferencia en que el
Planificador de hilos (el cambio de contexto) no lo puede controlar el programador sino
que puede suceder en cualquier momento. Aun así, existen “trucos” para que el
programador sea capaz de gestionar varios hilos dentro de una misma aplicación.

Propiedades del sistema

ANDROID: Las propiedades del sistema se definen en el fichero AndroidManifest.xml, el


cual describe la aplicación, los permisos necesarios, etc… Todos los proyectos Android
tienen este archivo que, entre otras cosas, nos dará la posibilidad de pedir los permisos
que vayamos necesitando, y definirá la actividad inicial que se ejecutará.

MIDP/CLDC: Las propiedades del sistema se definen en el fichero descriptor de la


aplicación (JAD) y se obtienen via java.lang.System y javax.microedition.MIDlet, por
ejemplo:

System.getproperty(String key)

Midlet(Java ME) vs. Activity(Android)

ANDROID: En Android una pantalla (asociada a una interfaz de usuario) se corresponde


con la clase Activity, y para pasar de una pantalla a otra se utiliza la clase Intent de la
siguiente manera:

Intent intentLista = new Intent();


intentLista.setClass(Clase1.this,Lista.class);//origen,destino

startActivity(intentList);//para pasar a la pantalla asociada a la clase Lista

MIDP/CLDC: En MIDP para pasar de una pantalla otra se utiliza la clase Display de la
siguiente manera:

this.midlet.getDisplay().setCurrent(this.midlet.getLista());

Donde el método getLista() devuelve un objeto del tipo List de la API de alto nivel

Además, se usa la clase Command para añadir un comando al Displayable y poder


cambiar de una pantalla a otra.

Programación:

En Android se puede utilizar Java, C#, Visual Basic e incluso C/C++ de forma nativa, en
JME solo se puede programar en Java, así que la principal ventaja de Android Studio es
la variedad de lenguajes de programación que se pueden utilizar.
Licencia.

JME posee una licencia GPL esto implica que el código debe ser abierto y compartido
con todo el mundo, para modificaciones, no lo puedes hacer de autoría ni reservar
derechos, Android tiene dos licencias GNU GPL 2 y Apache 2.0 misma que no te obliga a
compartir ni liberar el código.

Conectividad.

Fuentes:

http://moodle2.unid.edu.mx/dts_cursos_mdl/pos/TI/MN/AM/08/Android_vs_javame.pdf

https://www.dspace.espol.edu.ec/bitstream/123456789/25446/1/Resumen%20de%20tesis
%20GPazmi%C3%B1o%20y%20MRosero%2C%20director%20de%20tesis%20Mag.%20
Marcos%20Millan%20T.%2005%20febrero%202014.pdf

También podría gustarte