Existe-t-il des navigateurs Android qui prennent en charge le chargement d'une applet Java dans le navigateur?

20

Nous avons un client qui passe de Windows Mobile (et IE Mobile) à des appareils basés sur Android.

Nous avons certains logiciels spécifiques que nous déployons sur leur effectif WM par une applet ActiveX qui se charge dans IE Mobile, mais évidemment Android n'aura pas de support pour ActiveX. Nous devrons donc refaire notre application sur une plate-forme spécifique à Android, et Java est le choix évident pour cela.

Existe-t-il des navigateurs Android qui prennent en charge le chargement d'une applet Java dans le navigateur, de la même manière qu'une applet ActiveX se charge dans IE (c'est-à-dire qu'elle s'intègre pleinement à l'expérience de navigation).

samthebrand
la source

Réponses:

9

Des questions similaires ont été posées ici auparavant, la version courte, les applets JAVA ne sont pas prises en charge sur Android. La version de JAVA utilisée sur Android n'est pas seulement votre version de l'usine JAVA, vous devez donc d'abord obtenir un compilateur JAVA sur le téléphone pour exécuter les applets. Ce que je ne pense pas est possible ou du moins réalisable.

Pourquoi ne pas simplement télécharger le SDK Android et créer votre propre application? Vous n'êtes pas obligé de la vendre sur le marché, mais si votre application peut être utilisée par d'autres, vous pouvez le faire, ce qui pourrait aider à récupérer de l'argent dépensé pour le développement.


la source
1
Why not just download the Android SDK and make your own app- parce que notre application doit être aussi multiplateforme que possible. C'est incroyablement complexe et les frais généraux impliqués dans la traduction d'une application Web vers une application autonome sont phénoménaux. Merci de m'avoir mis au courant. Est-il donc absolument impossible d'intégrer une sorte de fonctionnalité supplémentaire dans un navigateur? La principale chose que nous faisons est de collecter des signatures, comme le fait un courrier après avoir effectué une livraison. Dans IE, c'était un morceau de gâteau avec un minuscule contrôle ActiveX.
Si votre application JAVA existait sur un site Web sur lequel vous avez pointé votre téléphone, vous pourriez peut-être faire fonctionner le code JAVA de cette façon, mais j'en doute encore car Android OS n'a pas de manière native de comprendre le code JAVA comme vous et moi. sachez le. La version de JAVA sur Android est modifiée. Votre meilleur pari serait de chercher à créer des applications pour les différentes plates-formes ou à utiliser une langue différente telle que HTML5 ou flash (non prise en charge sur les appareils Apple non jailbreakés).
Désolé pour le double creux, mais juste pour que vous le sachiez, faire des applications pour Apple et Android est vraiment facile maintenant. Ils ont des systèmes GUI qui peuvent faire la plupart du travail pour vous. Peut-être pas aussi difficile que vous le pensez. Je voudrais au moins enquêter.
1
Comme Android 2.2 et supérieur (et certains téléphones exécutant Android 2.1) peuvent exécuter des applets Flash dans le navigateur, Flash pourrait être un meilleur choix multiplateforme pour vous que Java.
GAThrawn
1
tandis que Dalvik d'Android n'est pas compatible avec le bytecode avec le bytecode de JVM; Le code Java qui n'utilise pas les bibliothèques omises dans Android (par exemple Swing / AWT) devrait être à peu près compatible avec les sources, donc vous n'aurez qu'à recompiler et la plupart des trucs devraient simplement fonctionner tant qu'ils n'utilisent pas ces bibliothèques omises .
Lie Ryan
3

Les deux seules options auxquelles je peux penser sont de créer une application mobile multiplateforme HTML5 qui fonctionnera à travers le spectre, cela dit, je peux comprendre les environnements d'entreprise qui souhaitent s'accrocher à IE pour prendre en charge les applications ActiveX dans le navigateur, ce qui vous amène à penser que Java sur le bureau est le même que sur Android, ce qui n'est pas vrai .

Pour la plupart, et la deuxième option, le SDK couvre un sous-ensemble de Java 5, les collections, apache, etc., en termes de syntaxe, sont identiques, donc peut-être une recompilation sur la logique métier et une nouvelle interface utilisateur pour le front-end pour Plateforme Android. (Oui, vous pouvez recompiler ce ciblage du SDK Android ...)

En bref, personne ne peut le faire à moins qu'il n'y ait un motif et une volonté de le reconstruire pour qu'il soit compatible avec les appareils d'aujourd'hui et de demain.

Éditer

Après les commentaires laissés ci-dessous, pour récapituler:

  • Le navigateur ne prend pas en charge l'exécution d'applets Java en lui-même. JRE! = Java Runtime d'Android alias DalvikVM. Desktop Java utilise JavaVM / JRE tel qu'approuvé par Sun / Oracle et l'OpenJava JDK qui est approuvé par Oracle. JRE = Java Runtime Environment

  • Terminal IDE qui contient "un compilateur java", il y a de fortes chances (je vais l'installer et rapporter des retours sur ce btw) que c'est une version extrêmement limitée d'OpenJDK, c'est la seule disponible nativement pour ARM, selon ce blog qui ne peut pas faire d' applications Java Windowing natives telles que Swing ou JavaBeans pour la simple raison que la version de Java Runtime Environment est très différente pour Android, et hautement optimisée pour le processeur natif.

De plus, DalvikVM ne sait rien de Swing, JavaBeans, etc. d'où la raison pour laquelle il explique en quelque sorte que Java sur le bureau n'est pas le même que Java sur Android.

Quant à l'idée qu'Android ressemble beaucoup à Linux, cette opinion que je maintiens, est-ce, ce n'est pas Linux, le noyau est Linux lui-même, mais les outils utilisateur-terre sont fournis par busybox , en outre, le C natif run- la bibliothèque de temps sous Android est appelée bionique et est limitée en raison de ces petits processeurs comme ARM. Par rapport à la version Linux de bureau, il y a la bibliothèque d'exécution fournie par gcc - GNU C Library ou plus communément appelée glibc - qui prend en charge beaucoup plus d'idiosyncratiques C / C ++ tels que STL, Boost, gestion complète des exceptions. C'est mon point de vue et est séparé du sujet et s'éloigne des sentiers battus ici. :)

t0mm13b
la source
Le système d'entreprise a besoin de Java et je ne peux rien y faire. La seule chose que je puisse faire est de configurer la tablette Android. Ce que je ne comprends pas bien, c'est pourquoi un navigateur open source et jre ne peuvent pas fonctionner sur une tablette Android.
felix
1
Le navigateur ne prend pas en charge l'exécution d'applets Java en lui-même. JRE! = Java Runtime d'Android alias DalvikVM. Desktop Java utilise JavaVM tel qu'approuvé par Sun / Oracle et l'OpenJava JDK ...
t0mm13b
Droite. Je ne comprends pas pourquoi openjava jdk ne peut pas être compilé et installé pour fonctionner sous Android. Peut-être que j'ai une vision trop optimiste de la façon dont Android est comme Linux?
felix
Fait intéressant, il y a terminal-ide.com qui contient un compilateur java semble-t-il.
felix
1
J'apprécie la sortie du chemin, merci! Je suis de plus en plus convaincu maintenant qu'il est parfaitement possible , il est juste que personne ne fait le travail de configuration et compilation encore. Je dois ajouter que je sais que le dalvikvm natif n'est pas pertinent. Ma question n'a jamais été à ce sujet. Il s'agissait de quelqu'un compilant le bureau jre pour android. Je pense qu'il existe déjà une version ARM. Mais pas Android.
felix
2

Le plus proche que j'ai trouvé est http://www.apogee.com/products/cjre-a

Malheureusement, comme indiqué sur cette page:

Notez qu'Apogee a temporairement suspendu le développement de CJRE + A en juin 2012, en raison d'une demande insuffisante pour eux. Veuillez contacter Apogee si vous êtes intéressé par un CJRE + A destiné à un appareil fonctionnant sous Android de votre choix pour une distribution "en volume" à vos clients et / ou à d'autres tiers.

... et un téléchargement / démo est introuvable.

Tiré de leur page de produits http://www.apogee.com/products, il semble que cela aurait été une excellente chose:

CJRE + A - Le «CJRE pour Android» convient aux appareils exécutant Android v4.x ou supérieur, qui doivent exécuter les applications Java SE 5 et SE 6 en plus d'exécuter les applications Android.

On peut encore rêver. Je ne les ai pas contactés. Je connais de nombreuses entreprises qui recherchent cette fonctionnalité. Je ne peux pas imaginer qu'il diminuera trop vite (ou disons plus lentement que le flash)?

Je n'ai pas contacté Apogee, cela pourrait valoir la peine d'essayer ... Si quelqu'un trouve une solution, veuillez nous tenir au courant! Merci.

TryTryAgain
la source
1

Android ne prend toujours pas en charge les applets Java, ni ne le fera, sans travail majeur.

Le Java dans Android n'est pas le «vrai» Java - c'est une version écrite personnalisée par Google. Les applications Android peuvent être écrites en Java, mais elles sont converties en Dalvik au moment de la compilation.

En tant que tel, il serait presque impossible de développer un navigateur compatible avec les applets Java.

Liam W
la source
Y a-t-il une raison pour laquelle les navigateurs tiers ne peuvent pas prendre en charge les plug-ins Java? Je remarque que m0rtadelo sur stackoverflow.com/questions/2433338/… prétend réellement l'avoir fait fonctionner! Je ne suis en fait intéressé à le faire fonctionner sur une tablette que si cela fait une différence.
felix
1
@Felix car Android ne l'a pas inclus dans le système. m0rtadelo exécutait tout un système d'exploitation à l'intérieur de leur appareil, et c'est ainsi qu'ils l'ont fait fonctionner.
Liam W
OK .. Cela ne me dérange pas de le faire sur ma tablette comme solution de contournement si ce n'est pas dangereux et c'est la seule option. C'est peut-être une question distincte.
felix