Gibt es Android-Browser, die das Laden eines Java-Applets im Browser unterstützen?


20

Wir haben einen Client, der von Windows Mobile (und IE Mobile) zu Android-basierten Geräten wechselt.

Wir haben eine bestimmte Software, die wir über ein ActiveX-Applet, das in IE Mobile geladen wird, für die WM-Belegschaft bereitstellen. Android unterstützt ActiveX jedoch offensichtlich nicht. Daher müssen wir unsere Anwendung auf einer Android-spezifischen Plattform erneut ausführen, und Java ist hierfür die naheliegende Wahl.

Gibt es Android-Browser, die das Laden eines Java-Applets im Browser unterstützen, ähnlich wie ein ActiveX-Applet im IE geladen wird (dh vollständig in die Browsererfahrung integriert ist)?

Antworten:


9

Ähnliche Fragen wurden hier schon einmal gestellt, die Kurzversion JAVA-Applets werden auf Android nicht unterstützt. Die Version von JAVA, die auf Android verwendet wird, ist nicht nur Ihre aktuelle JAVA-Version. Sie müssten also zuerst einen JAVA-Compiler auf dem Telefon installieren, um alle Applets ausführen zu können. Was ich nicht für möglich oder zumindest machbar halte.

Warum nicht einfach das Android SDK herunterladen und eine eigene App erstellen? Sie müssen es nicht auf dem Markt verkaufen, aber wenn Ihre App von anderen genutzt werden könnte, könnten Sie dies tun, um etwas Geld für die Entwicklung zurückzugewinnen.


1
Why not just download the Android SDK and make your own app- weil unsere App möglichst plattformübergreifend sein muss. Es ist unglaublich komplex und der Aufwand für die Übersetzung von einer webbasierten App in eine eigenständige App ist phänomenal. Vielen Dank für die Köpfe nach oben. Ist es also absolut unmöglich, zusätzliche Funktionen in einen Browser einzubetten? Wir sammeln hauptsächlich Unterschriften, wie es ein Kurier nach einer Lieferung tut. Im IE war dies ein Kinderspiel mit einem winzigen ActiveX-Steuerelement.

Wenn Ihre JAVA-App auf einer Website vorhanden war, auf die Sie Ihr Telefon verwiesen haben, kann der JAVA-Code möglicherweise auf diese Weise ausgeführt werden. Ich bezweifle dies jedoch weiterhin, da das Android-Betriebssystem keinen systemeigenen Weg hat, JAVA-Code so wie Sie und ich zu verstehen weiß es. Die Version von JAVA unter Android wurde geändert. Am besten ist es, Apps für die verschiedenen Plattformen zu erstellen oder eine andere Sprache wie HTML5 oder Flash zu verwenden (nicht unterstützt auf Apple-Geräten ohne Jailbroke).

Entschuldigen Sie das Double Dip, aber damit Sie wissen, ist es jetzt wirklich einfach, Apps für Apple und Android zu erstellen. Sie haben GUI-Systeme, die die meiste Arbeit für Sie erledigen können. Könnte nicht so schwer sein, wie du denkst. Ich würde es zumindest untersuchen.

1
Da Android 2.2 und höher (und einige Telefone mit Android 2.1) Flash-Applets im Browser ausführen können, ist Flash möglicherweise eine bessere plattformübergreifende Wahl für Sie als Java.
GAThrawn

1
während der Dalvik von Android nicht mit dem Bytecode von JVM kompatibel ist; Java-Code, der keine in Android ausgelassenen Bibliotheken verwendet (z. B. Swing / AWT), sollte praktisch quellkompatibel sein. Daher müssen Sie nur neu kompilieren, und die meisten Dinge sollten nur funktionieren, solange diese ausgelassenen Bibliotheken nicht verwendet werden .
Lie Ryan

3

Die einzigen beiden Optionen, die mir in den Sinn kommen, sind die Erstellung einer plattformübergreifenden mobilen HTML5-App, die über das gesamte Spektrum hinweg funktioniert. Allerdings kann ich Unternehmensumgebungen verstehen, die sich an den IE halten möchten, um ActiveX-Apps im Browser zu unterstützen führt Sie zu der Annahme, dass Java auf dem Desktop dasselbe ist wie auf Android, was jedoch nicht zutrifft .

Zum größten Teil und mit der zweiten Option deckt das SDK eine Teilmenge von Java 5 ab. Sammlungen, Apache usw. sind syntaktisch identisch, sodass möglicherweise eine Neukompilierung der Geschäftslogik und eine neue Benutzeroberfläche für das Front-End erforderlich sind Android-Plattform. (Ja, Sie können dieses Targeting für das Android SDK neu kompilieren ...)

Kurz gesagt, das kann man nur tun, wenn es ein Motiv gibt und der Drang besteht, es neu aufzubauen, damit es jetzt und in Zukunft mit Geräten kompatibel ist.

Bearbeiten

Nach den Kommentaren unten, um zusammenzufassen:

  • Der Browser unterstützt das Ausführen von Java-Applets in sich nicht. JRE! = Android Java Runtime aka DalvikVM. Desktop Java verwendet JavaVM / JRE, wie von Sun / Oracle empfohlen, und das von Oracle genehmigte OpenJava JDK. JRE = Java Runtime Environment

  • Laut diesem Blog ist die Terminal-IDE, die "einen Java-Compiler" enthält, wahrscheinlich (ich werde sie installieren und Feedback dazu geben) eine extrem eingeschränkte Version von OpenJDK. Dies ist die einzige native Version für ARM das nicht tun kann native Java Windowing - Anwendungen wie Schaukel oder Java Beans aufgrund der einfachen Grund , dass die Version der Java Runtime Environment for Android ist sehr unterschiedlich und sehr für die native Prozessor optimiert.

Außerdem weiß DalvikVM nichts über Swing, JavaBeans usw., weshalb erklärt wird, dass Java auf dem Desktop nicht mit Java auf Android identisch ist.

Was die Ansicht betrifft , dass Android Linux sehr ähnlich ist, so sehe ich das auch so: Es ist nicht Linux, der Kernel ist Linux selbst, aber User-Land-Tools werden von busybox bereitgestellt , außerdem das native C-Run- Die Zeitbibliothek unter Android wird als bionisch bezeichnet und ist aufgrund der kleinen Prozessoren wie ARM begrenzt. Im Vergleich zur Desktop-Linux-Version gibt es die Laufzeitbibliothek von gcc - GNU C Library oder besser bekannt als glibc -, die wesentlich mehr C / C ++ -Idiosynkratiken wie STL, Boost und vollständige Ausnahmebehandlung unterstützt. Das ist aus meiner Sicht eine Trennung vom Thema und ein Abweichen von den ausgetretenen Pfaden. :)


Das Unternehmenssystem benötigt Java, und ich kann nichts dagegen tun. Das einzige, was ich tun kann, ist das Android Tablet zu konfigurieren. Was ich nicht vollständig verstehe, ist, warum ein Open Source-Browser und jre nicht auf einem Android-Tablet zum Laufen gebracht werden können.
Felix

1
Der Browser unterstützt das Ausführen von Java-Applets in sich nicht. JRE! = Android Java Runtime aka DalvikVM. Desktop Java verwendet JavaVM, wie von Sun / Oracle und dem OpenJava-JDK empfohlen ...
t0mm13b

Recht. Ich verstehe nicht, warum openjava jdk nicht für Android kompiliert und installiert werden kann. Vielleicht habe ich zu optimistische Ansichten darüber, wie viel Android Linux ähnelt?
Felix

Interessanterweise gibt es terminal-ide.com, das anscheinend einen Java-Compiler enthält.
Felix

1
Ich weiß es zu schätzen, dass ich vom Weg abgekommen bin, danke! Ich bin mehr und mehr davon überzeugt , dass jetzt es ist durchaus möglich , es ist nur , dass niemand die Projektierung und Erstellung der Arbeit noch nicht getan. Ich sollte hinzufügen, dass ich weiß , dass der gebürtige Dalvikvm irrelevant ist. Meine Frage war nie darüber. Es ging um jemanden, der das Desktop-JRE für Android kompilierte. Ich denke, es gibt bereits eine ARM-Version. Nur kein Android.
Felix

2

Der nächste, den ich gefunden habe, ist http://www.apogee.com/products/cjre-a

Leider wie auf dieser Seite angegeben:

Beachten Sie, dass Apogee die Weiterentwicklung von CJREs + A im Juni 2012 vorübergehend eingestellt hat, weil die Nachfrage danach nicht ausreicht. Wenden Sie sich an Apogee, wenn Sie an einem CJRE + A interessiert sind, das auf ein Android-Gerät Ihrer Wahl zur "Volumen" -Verteilung an Ihre Kunden und / oder Dritte abzielt.

... und ein Download / Demo ist nirgends zu finden.

Der Produktseite http://www.apogee.com/products entnommen , hört es sich so an, als wäre es eine großartige Sache gewesen:

CJRE + A - Das "CJRE für Android" eignet sich für Geräte mit Android v4.x oder höher, auf denen zusätzlich zur Ausführung der Android-Anwendungen die Java SE 5- und SE 6-Anwendungen ausgeführt werden müssen.

Wir können immer noch träumen. Ich habe sie nicht kontaktiert. Mir sind viele Unternehmen bekannt, die diese Funktionalität suchen. Ich kann mir nicht vorstellen, dass es allzu schnell schwindet (oder sagen wir langsamer als der Blitz)?

Ich habe Apogee noch nicht kontaktiert, könnte einen Versuch wert sein ... Sollte jemand eine Lösung finden, halten Sie uns bitte auf dem Laufenden! Vielen Dank.


1

Android unterstützt noch immer keine Java-Applets und wird dies auch ohne größere Arbeit nicht tun.

Das Java in Android ist kein "echtes" Java - es ist eine benutzerdefinierte Version von Google. Android-Apps sind möglicherweise in Java geschrieben, werden jedoch beim Kompilieren in Dalvik konvertiert.

Daher ist es nahezu unmöglich, einen Browser zu entwickeln, der mit Java-Applets kompatibel ist.


Gibt es einen Grund, warum Browser von Drittanbietern Java-Plugins nicht unterstützen können? Ich stelle fest, dass m0rtadelo bei stackoverflow.com/questions/2433338/… behauptet, es funktioniert zu haben! Ich bin eigentlich nur daran interessiert, es auf einem Tablet zum Laufen zu bringen, wenn das einen Unterschied macht.
Felix

1
@Felix, weil Android es nicht im System hat. m0rtadelo hat ein ganzes Betriebssystem in seinem Gerät ausgeführt, und so hat es funktioniert.
Liam W

OK .. Es macht mir nichts aus, das auf meinem Tablet zu tun, um das Problem zu umgehen, wenn es nicht gefährlich ist und es die einzige Option ist. Vielleicht ist das eine andere Frage.
Felix

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.