Java 2 Micro Edition Vortragsüberblick

Werbung
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Vortragsüberblick
•
•
•
•
•
Historische Entwicklung
Konfigurationen und Profile
Anwendungsentwicklung
Beispiele
Anwendungsmöglichkeiten
1
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Historische Entwicklung
• 1990 Überlegungen zur Evolution der
Computerentwicklung
• „Green Project“
• Ergebnis: Star7 („*7“)
– Kabelloser PDA
– 5 Zoll Touchscreen
– Datenaustausch per Funk
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Historische Entwicklung
• Anforderungen an das O/S des Star7:
– Weniger als 1Mb groß
– Hohe Effizienz
• James Gosling entwickelt „Oak“
• 1992 Fertigstellung des Star7
2
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Historische Entwicklung
• 1995 Java wird „offiziell“
• Überbleibsel aus Oak:
• Hauptziele haben sich geändert:
– Optimierung für Arbeitsplatzrechner
– Schnelle Ausführungsgeschwindigkeit
– Keine Rücksicht auf Ressourcen
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Historische Entwicklung
•
•
1998 Projekt „Spotless System“
Ziele:
– Erstellung kleinstmöglicher JavaLaufzeitumgebung
– Portierungsmöglichkeit auf größtmögliche
Menge verfügbarer Systeme
•
Implementierung in Palm-PDA
3
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Historische Entwicklung
•
Ergebnis:
– Laufzeitumgebung mit nur kleiner
Untermenge der Klassenbibliothek der
Arbeitsplatzversion
– Komponenten für grafische
Benutzeroberflächen speziell auf Palm-PDA
angepasst, nicht portierbar
– Besteht aus zentraler Palm-Applikation
= Programmstarter um Klassen mit
statischer main() Methode zu starten
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Historische Entwicklung
•
Entwicklerkonferenz JavaOne99:
– Ergebnisse des Spotless-Projekts fliessen in
die Java-Familie ein
– Sun teilt die Java-Technologie in 3 Sparten:
•
•
•
Java 2 Enterprise Edition (J2EE)
Java 2 Standard Edition (J2SE)
Java 2 Micro Edition (J2ME)
4
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Historische Entwicklung
•
•
•
•
Herzstück der J2ME bildet die:
KVM „Kilobyte Virtual Machine“
Nachfolger aus dem Spotless System
Klassenbibliothek wurde überarbeitet
Weiterentwickelte Klassenversionen für
grafische Benutzeroberflächen
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Historische Entwicklung
•
Sun startet Java Community Process:
– KVM wird nicht mehr nur in den SunLabs
entwickelt
– Privatpersonen und Firmen können an der
Entwicklung teilnehmen
– So genannte Java Specification Requests
(Vorschläge) müssen dazu eingereicht
werden
5
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Konfigurationen und Profile
•
Konfiguration:
Hier sind grundlegende Eigenschaften und
Grundfunktionen der Java-Laufzeitumgebung
für eine Gerätesparte definiert.
Momentan zwei Konfigurationen für J2ME
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Konfigurationen und Profile
•
Connected Device Configuration (CDC)
– Größere PDAs oder Settopboxen
– Vollständige JVM
– Kleinere Einschränkungen bei den APIs
6
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Konfigurationen und Profile
•
Connected Limited Device Configuration
(CLDC 1.0)
– Mobiltelefone, PDAs oder Pager
– KVM
– Stark eingeschränktes API
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Konfigurationen und Profile
•
Mindestanforderungen CLDC 1.0
–
Display:
•
•
•
–
Auflösung: 96x54
Farbtiefe: 1-bit (schwarz/weiss)
Pixel shape (Seitenverhältnis): ungefähr 1:1
Input:
•
–
einen oder mehrere der folgenden Mechanismen:
"one-handed keyboard„ "twohanded keyboard" oder "touch screen"
Speicher (Memory):
•
•
•
–
128 Kbyte beständiger Speicher für die MIDP Komponenten
8 Kbyte beständiger Speicher für von der Applikation erzeugten Daten.
32 Kbyte flüchtiger Speicher für die Java Runtime
Networking:
•
bidirektional, drahtlos, mind. 9600bps
7
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Konfigurationen und Profile
•
Einschränkungen der CLDC (1.0)
–
–
–
–
–
–
–
–
Keine Unterstützung für Fließkommazahlen (kein double oder float)
Keine Reflection (Features die es einem Java-Programm erlauben
die Objekte in einer JavaVM zu inspizieren: Inhalt von Klassen,
Objekten, Methoden, Feldern, Threads, Execution-Stacks, ...)
Keine Thread-Gruppen oder Daemon-Threads
Keine weak refrerences (Referenzen auf Objekte behalten, die an
sich ein Kandidat für den Garbage Collector wären)
Vereinfachte Fehlerbehandlung
Keine Finalisierung (fehlende finalize() Methode)
Keine Unterstützung für das Java Native Interface (JNI)
Keine benutzerdefinierten Klassenlader
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Konfigurationen und Profile
•
Das vereinfachte Sicherheitsmodell
– Sandbox Modell:
Java Anwendungen
laufen in abgeschlossener
Umgebung, in der nur „unkritische“ Aktionen
ausgeführt werden können.
– Sicherheitsmodell der J2SE verbraucht
zuviel Ressourcen
8
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Konfigurationen und Profile
•
CDC und CLDC
im Vergleich
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Konfigurationen und Profile
•
Profil:
Im Gegensatz zur Konfiguration viel stärker auf
einen bestimmten Gerätetyp zugeschnitten.
Hier findet man z.B. Schnittstellen für die
grafische Benutzeroberfläche und die
persistente Datenhaltung in Datenbanken
9
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Konfigurationen und Profile
•
Mobile Information Device Profile (MIDP)
–
–
–
–
–
Spezialisiert auf Mobiltelefone und Pager
Erweiterungen der in der CLDC enthaltenen Klassen
Eigenständiges Paket javax.microedition.midlet
Abstrakte Benutzerschnittstelle LCDUI
(nicht kompatibel mit Swing oder AWT)
Record Management System (RMS) zur Speicherung
persistenter Daten in einfacher Datenbank
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Konfigurationen und Profile
•
J2ME Pakete der CLDC, MIDP
10
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Anwendungsentwicklung
•
Prinzipieller Ablauf:
–
–
–
–
–
–
Erstellen der .java Dateien
Kompilieren (.class Dateien generieren)
Preverify
Test im Emulator
„Verpacken“ in .jar File, Erstellung .jad
Transfer auf Zielgerät (Infrarot, Bluetooth, OTA Over the Air)
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Anwendungsentwicklung
•
Entwicklungsmöglichkeiten:
–
Referenzimplementierung und manuelle Kompilierung
–
Wireless Toolkit (und angepasste SDKs der Hersteller)
–
IDEs:
• Sun ONE Studio, Mobile Edition
• JBuilder mit Mobile Set
• ME Plugin für Eclipse
• Metrowerks Codewarrior Wireless Studio
11
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Anwendungsentwicklung
•
MIDlet:
– Grundsätzlich abgeleitet von Klasse MIDlet
– 4 verschiedene Zustände möglich:
•
•
•
•
loaded
active
paused
destroyed
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Anwendungsentwicklung
•
Lebenszyklus eines MIDlet
12
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Anwendungsentwicklung
•
„Gerüst“ eines MIDP-Programms
public class Geruest extends MIDlet {
protected void startApp() {
}
protected void pauseApp() {
}
protected void destroyApp(boolean unconditional) {
}
}
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Anwendungsentwicklung
•
Das High-Level-API des lcdui Pakets
–
–
–
•
Unterstützt Formulare und Formularelemente wie z.B.
Textfelder, Selektionsboxen
Formularelemente können nicht frei im Formular platziert
werden, nur 2 Modi screen oder item
Anordnung nach dem gerätespezifischem Look and Feel
Das Low-Level-API des lcdui Pakets
–
Voller Zugriff auf Display eines MIDP Geräts auf Pixelebene
Vermischung von Low und High Level nicht möglich!
13
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Anwendungsentwicklung
•
Einfaches Beispielprogramm mit Formular und Formularelementen:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;
public class HelloMidp extends MIDlet {
Form meineform = new Form("HelloMidp für Isem");
Display meindisplay;
protected void startApp() {
meindisplay = Display.getDisplay(this);
meindisplay.setCurrent (meineform);
try {
ImageItem logo =new ImageItem
("FH-Weingarten",Image.createImage ("/welle.png"),
ImageItem.LAYOUT_CENTER
|ImageItem.LAYOUT_NEWLINE_BEFORE
|ImageItem.LAYOUT_NEWLINE_AFTER, "Welle");
meineform.append (logo);
}
catch (IOException e){
meineform.append (new StringItem
("FH-Weingarten","Logo not available:" +e));
}
}
protected void pauseApp(){}
protected void destroyApp(boolean unconditional){}
}
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Anwendungsentwicklung
14
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Anwendungsentwicklung
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Beispiele
15
Java 2 Micro Edition
Informatikseminar - Steffen Lahm
Anwendungsmöglichkeiten
•
•
•
•
•
•
•
•
•
•
•
Spiele
E-Mail Clients
WebBrowser
Instant Messenger
Chatclients
Mobile SQL
Telnet Client
Kalender
Blutzucker Logbuch
Währungsrechner
…
16
Herunterladen