¿Hay algún navegador de Android que admita cargar un Java Applet en el navegador?

20

Tenemos un cliente que está cambiando de Windows Mobile (e IE Mobile) a dispositivos basados ​​en Android.

Tenemos un software específico que implementamos en su fuerza laboral de WM mediante un applet ActiveX que se carga en IE Mobile, pero obviamente Android no tendrá soporte para ActiveX. Por lo tanto, tendremos que volver a hacer nuestra aplicación en una plataforma específica de Android, y Java es la opción obvia para esto.

¿Hay algún navegador Android que admita cargar un Java Applet en el navegador, de la misma manera que se carga un applet ActiveX en IE (es decir, se integra completamente en la experiencia de navegación).

samthebrand
fuente

Respuestas:

9

Preguntas similares se han hecho aquí antes, la versión corta, los applets JAVA no son compatibles con Android. La versión de JAVA utilizada en Android no es solo su JAVA habitual, por lo que primero deberá obtener un compilador JAVA en el teléfono para ejecutar cualquier applet. Lo cual no creo que sea posible o al menos factible.

¿Por qué no simplemente descargar el SDK de Android y crear su propia aplicación? No tiene que venderla en el mercado, pero si otras personas pueden usar su aplicación, podría hacer lo que podría ayudar a recuperar parte del dinero gastado en desarrollo.


fuente
1
Why not just download the Android SDK and make your own app- porque nuestra aplicación debe ser lo más multiplataforma posible. Es increíblemente complejo y los gastos generales involucrados en la traducción de una aplicación basada en web a una aplicación independiente son fenomenales. Gracias por el aviso. Entonces, ¿es absolutamente imposible incrustar algún tipo de funcionalidad adicional dentro de un navegador? Lo principal que estamos haciendo es recolectar firmas, como lo hace un mensajero después de hacer una entrega. En IE esto fue pan comido con un pequeño control ActiveX.
Si su aplicación JAVA existía en un sitio web al que apuntó su teléfono, es posible que pueda ejecutar el código JAVA de esa manera, pero aún lo dudo porque el sistema operativo Android no tiene una forma nativa de entender el código JAVA como usted y yo Lo sé. La versión de JAVA en Android está modificada. Su mejor opción sería buscar la creación de aplicaciones para las diferentes plataformas o usar un idioma diferente, como HTML5 o flash (no compatible con dispositivos Apple sin jailbreak).
Perdón por la doble caída, pero para que lo sepas, crear aplicaciones para Apple y Android es realmente fácil ahora. Tienen sistemas GUI que pueden hacer la mayor parte del trabajo por usted. Puede que no sea tan difícil como crees. Al menos lo investigaría.
1
Como Android 2.2 y superior (y algunos teléfonos con Android 2.1) pueden ejecutar applets Flash en el navegador, Flash podría ser una mejor opción multiplataforma para usted que Java.
GAThrawn
1
mientras que Dalvik de Android no es compatible con bytecode con el bytecode de JVM; El código Java que no usa bibliotecas que se omiten en Android (por ejemplo, Swing / AWT) debería ser bastante compatible con la fuente, por lo tanto, solo tendrá que volver a compilar y la mayoría de las cosas deberían funcionar siempre que no use esas bibliotecas omitidas .
Lie Ryan
3

Las únicas dos opciones en las que puedo pensar es hacer una aplicación móvil multiplataforma HTML5 que funcione en todo el espectro, una vez dicho esto, puedo entender los entornos corporativos que desean aferrarse a IE para admitir aplicaciones ActiveX dentro del navegador, que te lleva a pensar que el Java en el escritorio es el mismo que en Android, lo cual no es cierto .

En su mayor parte, y la segunda opción, el SDK cubre un subconjunto de Java 5, las colecciones, apache, etc., sintaxis, son idénticas, por lo que tal vez una recompilación de la lógica empresarial y una nueva interfaz de usuario para el front-end para Plataforma Android. (Sí, puede volver a compilar que apunte al SDK de Android ...)

En resumen, no se puede hacer a menos que haya un motivo y un impulso para reconstruirlo para que sea compatible con dispositivos ahora y en el futuro.

Editar

Después de los comentarios que se dejan a continuación, para recapitular:

  • El navegador no admite la ejecución de applets de Java dentro de sí mismo. JRE! = Java Runtime de Android, también conocido como DalvikVM. Desktop Java utiliza JavaVM / JRE según lo respaldado por Sun / Oracle y OpenJava JDK, que está aprobado por Oracle. JRE = Java Runtime Environment

  • Terminal IDE que contiene "un compilador de Java", lo más probable es que (lo instalaré y reportaré comentarios sobre este por cierto) es una versión extremadamente limitada de OpenJDK, es el único disponible de forma nativa para ARM, según este blog que no puede hacer aplicaciones nativas de Java Windowing como Swing o JavaBeans debido a la simple razón de que la versión de Java Runtime Environment es muy diferente para Android y altamente optimizada para el procesador nativo.

Además, DalvikVM no sabe nada sobre Swing, JavaBeans, etc., por lo que explica de alguna manera que Java en el escritorio no es lo mismo que Java en Android.

En cuanto a tener la opinión de que Android es muy parecido a Linux, ese punto de vista me atengo, es esto, es no Linux, el núcleo es el mismo Linux, pero las herramientas de zona de usuario son suministrados por busybox , además, el Run-C nativa La biblioteca de tiempo en Android se llama bionic , y está limitada debido a esos pequeños procesadores como ARM. En comparación con la versión de escritorio de Linux, existe la biblioteca de tiempo de ejecución suministrada por gcc, GNU C Library o más comúnmente conocida como glibc , que admite una gran cantidad de idiosincráticas C / C ++ como STL, Boost, manejo de excepciones completo. Ese es mi punto de vista y está separado del tema y se desvía de los caminos trillados aquí. :)

t0mm13b
fuente
El sistema corporativo necesita Java y no hay nada que pueda hacer al respecto. Lo único que puedo hacer es configurar la tableta Android. Lo que no entiendo completamente es por qué no se puede hacer que un navegador de código abierto más jre funcione en una tableta Android.
felix
1
El navegador no admite la ejecución de applets de Java dentro de sí mismo. JRE! = Java Runtime de Android, también conocido como DalvikVM. Desktop Java utiliza JavaVM según lo respaldado por Sun / Oracle y OpenJava JDK ...
t0mm13b
Correcto. No entiendo por qué openjava jdk no se puede compilar e instalar para ejecutarse en Android. ¿Quizás tengo una visión demasiado optimista de cuánto es Android como Linux?
felix
Curiosamente, hay terminal-ide.com que contiene un compilador de Java que parece.
felix
1
Agradezco el desvío del camino, gracias! Ahora estoy cada vez más convencido de que es perfectamente posible que simplemente nadie haya realizado aún el trabajo de configuración y compilación. Debo agregar que sé que el dalvikvm nativo es irrelevante. Mi pregunta nunca fue sobre eso. Se trataba de alguien compilando el JRE de escritorio para Android. Creo que ya hay una versión ARM. Simplemente no es un androide.
felix
2

Lo más cercano que he encontrado es http://www.apogee.com/products/cjre-a

Lamentablemente, como se indica en esa página:

Tenga en cuenta que Apogee suspendió temporalmente el desarrollo adicional de CJREs + A en junio de 2012, debido a una demanda insuficiente para ellos. Póngase en contacto con Apogee si está interesado en un CJRE + A dirigido a un dispositivo con Android que elija para la distribución de "volumen" a sus clientes y / u otros terceros.

... y no se puede encontrar una descarga / demostración en ninguna parte.

Tomado de su página de productos http://www.apogee.com/products , parece que hubiera sido una gran cosa tener:

CJRE + A: "CJRE para Android" es adecuado para dispositivos con Android v4.xo superior, que necesitan ejecutar las aplicaciones Java SE 5 y SE 6 además de ejecutar las aplicaciones de Android.

Aún podemos soñar. No los he contactado. Soy consciente de muchas empresas que buscan esta funcionalidad. ¿No puedo imaginar que disminuirá demasiado rápido (o digamos más lento que el flash)?

No he contactado a Apogee, podría valer la pena intentarlo ... Si alguien alguna vez encuentra una solución, ¡manténganos actualizados! Gracias.

Try TryAgain
fuente
1

Android todavía no es compatible con los applets de Java, ni lo hará, sin un trabajo importante.

El Java en Android no es Java 'real', es una versión escrita personalizada por Google. Las aplicaciones de Android pueden estar escritas en Java, pero se convierten a Dalvik en tiempo de compilación.

Como tal, sería casi imposible desarrollar un navegador que sea compatible con los Applets de Java.

Liam W
fuente
¿Hay alguna razón por la que los navegadores de terceros no puedan incluir soporte para complementos de Java? ¡Noté que m0rtadelo en stackoverflow.com/questions/2433338/… en realidad afirma que lo hizo funcionar! En realidad, solo estoy interesado en hacer que funcione en una tableta si eso hace alguna diferencia.
felix
1
@Felix porque Android no lo tiene incluido en el sistema. m0rtadelo estaba ejecutando un sistema operativo completo dentro de su dispositivo, y así es como lo hicieron funcionar.
Liam W
OK ... no me importa hacer eso en mi tableta como solución alternativa si no es peligroso y es la única opción. Tal vez esa es una pregunta separada.
felix