Kann ich einmal in J2ME programmieren und es auf jedem Handy ausführen, so wie ich es mit dem .Net Compact Framework tun kann?J2ME - Code einmal und überall laufen?
Antwort
Der J2ME Code, den Sie in Bezug auf die Laufzeit und die Klassen benötigt eine bestimmte Umgebung auf dem Handy schreiben, die ihm zugänglich sind. Je nachdem, was Sie in Ihrer Anwendung verwenden, können Sie es auf einigen Telefonen ausführen und es funktioniert nicht auf anderen. Für z.B. sagen wir Ihnen eine J2ME-Anwendung, die MIDP 2.0 und CDLC 1.1 verwendet. Jetzt funktioniert Ihre App nur auf Telefonen, die diese Profile unterstützen.
Normalerweise zielen Sie beim Schreiben von Mobiltelefonanwendungen auf ein bestimmtes Segment von Mobiltelefonen ab. Sie erwarten nicht, dass eine Acceleratometer Anwendung auf Handys funktioniert, die kein Acceleratometer haben! (Ich glaube nicht, dass J2ME irgendeine Unterstützung für Accelerometer hat;))
Sie werden Unterschiede feststellen, wie jeder Anbieter seine JVM implementiert hat. Da die Hardware jedes Telefons anders ist, funktionieren sie alle etwas anders. Die meisten Sachen werden funktionieren, aber es könnte einige Unterschiede geben.
Weder J2ME noch .NET Compact Framework sind allgegenwärtig, obwohl J2ME auf einer beeindruckenden Anzahl von Telefonen unterstützt wird. Sie können nur auf Telefonen laufen, die sie unterstützen. In beiden Fällen können Sie also einmal schreiben und ausführen, wo immer die Plattform/das Framework unterstützt wird.
Ja, Sie können Ihre Midlets auf allen Java-unterstützten Telefonen ausführen.
Aber wenn es um J2ME-Codierung kommt, der Slogan "einmal schreiben, überall ausführen" wird
"einmal schreiben, schreiben überall"
oder
"write once, debug überall"
Ich bevorzuge die etwas optimistischere (und möglicherweise machbare) Version: "schreibe einmal, teste überall" :) – Martin
Mehrere Bereiche, die von Fragmentierung leiden:
Wenn Sie nur grundlegende GUI-Steuerelemente verwenden, sieht Ihre Anwendung möglicherweise von einem Telefon zum nächsten etwas anders aus. Wenn Sie nicht müssen, müssen Sie Code schreiben, der verschiedene Bildschirmgrößen und Eingabemethoden behandelt (Tastatur oder Touchscreen).
Die Hersteller neigen dazu, die Spezifikationen für Multimedia und Netzwerke unterschiedlich zu interpretieren oder einfach Telefone mit Fehlern zu versenden. Einige Mobilfunknetzbetreiber erlauben nur HTTP-Netzwerkverkehr.
Die Sicherheitsrichtlinien, die den Dateisystemzugriff regeln, unterscheiden sich von Telefon zu Telefon. RMS-Datensätze können bei einigen Telefonen in der Größe begrenzt sein.
Die Leistung variiert stark von einem Telefon zum nächsten.
...
Zunächst möchte ich sagen, dass die meisten Kommentare hier wahr sind, verschiedene JVMs können tatsächlich etwas anders funktionieren und Sie sollten sich an APIs erinnern du benutzt.
Es gibt jedoch eine weitere Überlegung, die berücksichtigt werden sollte: Standardisierung.Ich meine solche Dinge wie Mobile Services Architecture (MSA - JSR 248), sie sehr vereinfachen Dinge, indem Sie einige Standard-Sätze von APIs erstellen. Darüber hinaus enthalten sie einige Erläuterungen zu den enthaltenen APIs und Regeln zu ihrer Implementierung.
Auch solche Dinge wie MIDP 2.1 sind verschärfte standarts. 2.1 Verison ist im Grunde 2.0, aber mit "verschärften Schrauben": strengere Regeln, die einige Aspekte klarstellen und mögliche Fragmentierung beseitigen. Zum Beispiel ist es erforderlich, in jedem Fall eine doppelte Pufferung vorzusehen oder einen Touchscreen in Java zu unterstützen, wenn ein Gerät einen solchen hat.
Ich sollte daraus schließen, dass die Fragmentierung wirklich abnimmt, Hersteller nehmen Standards wie JSR 248 an. Aber testen Sie Ihre Anwendungen so oft wie nötig, wir sind alle Menschen und JVM-Entwickler machen auch Fehler und lassen Fehler ihr Code.
- 1. Django/Python: Einmal importieren, überall verwenden
- 2. Gulp Watch nur einmal laufen
- 3. Wie machen Methode nur einmal laufen
- 4. laufen PHP-Skript einmal in der Woche
- 5. SQLite und J2ME
- 6. J2ME Gruppennamen und Zahlen
- 7. Code J2ME-Anwendungen mit Visual Studio 2008?
- 8. Javascript laufenden Code einmal
- 9. Code zum Senden von SMS mit J2ME
- 10. laufen Matlab-Code von PHP
- 11. qml laufen JavaScript-Code nach Zustandsänderung
- 12. factory: Wie erstelle ich eine Fabrik einmal und es überall, auch in Verbänden verwenden
- 13. Lassen Sie den Firefox-Erweiterungscode nur einmal pro Sitzung laufen.
- 14. Zugriffsanforderungskontext überall
- 15. j2me Netzwerkverbindung
- 16. Wie man Cronjobs öfter als einmal pro Minute laufen lässt?
- 17. Quarz-Scheduling - einmal laufen, dann zu einer bestimmten Zeit laufen (täglich)
- 18. J2me Web-Service-Aufruf und Fehler java.rmi.ServerException:
- 19. SQL überall 5 Fehler
- 20. J2ME Wecker
- 21. J2ME Hintergrundbeleuchtung
- 22. J2ME notifyDestroyed()
- 23. Laufender Code, nachdem alle Reduzierungen laufen
- 24. Downgrade Java Code 1.5 auf 1.4 (Bonuspunkte: J2ME, Blackberry !!!)
- 25. Wie führe ich Code einmal und nur einmal in Swift aus?
- 26. Wird Code endlich nach einer Weiterleitung laufen?
- 27. OpenWebKitSharp und klicken Sie einmal?
- 28. iOS - Datenbankschema erstellen (Code nur einmal ausführen)
- 29. Geteilter Text in J2ME
- 30. Collapse alle XAML Code Abschnitte auf einmal
Das ist nicht der Fall; siehe die Sensor-API (JSR 256). http://jcp.org/en/jsr/detail?id=256 – funkybro
Ich hatte kein JSR dafür. Wie auch immer, der Punkt, den ich vermitteln wollte, ist, dass Sie Ihre Handys aufgrund ihrer Fähigkeiten und Ihrer Anwendungsanforderungen ansprechen. – Prashast