Java 2 Micro Edition.ppt [Schreibgesch.tzt] - hs …keller/Downloads/Java2MicroEdition.pdf• Mobile...

16
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

Transcript of Java 2 Micro Edition.ppt [Schreibgesch.tzt] - hs …keller/Downloads/Java2MicroEdition.pdf• Mobile...

1

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

2

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

3

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 Java-Laufzeitumgebung

– Portierungsmöglichkeit auf größtmögliche Menge verfügbarer Systeme

• Implementierung in Palm-PDA

4

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-PDAangepasst, 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)

5

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 SunLabsentwickelt

– Privatpersonen und Firmen können an der Entwicklung teilnehmen

– So genannte Java Specification Requests(Vorschläge) müssen dazu eingereicht werden

6

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

7

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

8

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 Anwendungenlaufen in abgeschlossenerUmgebung, in der nur „unkritische“ Aktionenausgeführt werden können.

– Sicherheitsmodell der J2SE verbraucht zuviel Ressourcen

9

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

10

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

11

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

12

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

13

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!

14

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

15

Java 2 Micro Edition Informatikseminar - Steffen Lahm

Anwendungsentwicklung

Java 2 Micro Edition Informatikseminar - Steffen Lahm

Beispiele

16

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• …