330 likes | 456 Views
Java 2 Micro Edition Von Andreas Scharf Seminar Internettechnologie. 19.01.07. Inhalt. Java 2 Micro Edition – Was ist das? Geschichte Grundlagen Architektur Überblick Konfigurationen Profile Optionale Pakete Anwendungsentwicklung (CLDC + MIDP) Einstieg
E N D
Java 2 Micro EditionVon Andreas ScharfSeminar Internettechnologie 19.01.07
Inhalt • Java 2 Micro Edition – Was ist das? • Geschichte • Grundlagen • Architektur Überblick • Konfigurationen • Profile • Optionale Pakete • Anwendungsentwicklung (CLDC + MIDP) • Einstieg • Schritte zum Programm (JAR, Manifest, JAD) • Lebenszyklus • Grafikbibliothek • Zusammenfassung • Fragen
Java 2 Micro Edition • Was ist das? • „Java für Handys, Set-Top-Boxen, Eingebetette Systeme,…“ • Ist Teil von Java • Was kann es? • Einfache Entwicklung von Software (Programme, Spiele,…) • Unterstützung von grafischen Elementen • Möglichkeit auf „Low-Level“-Ebene zu arbeiten • Canvas • Grundlegende Unterstützung von Netzwerkkommunikation: • Generic Connection Framework (GCF) • HTTP(S), TCP, UDP
Inhalt • Java 2 Micro Edition – Was ist das? • Geschichte • Grundlagen • Architektur Überblick • Konfigurationen • Profile • Optionale Pakete • Anwendungsentwicklung (CLDC + MIDP) • Einstieg • Schritte zum Programm (JAR, Manifest, JAD) • Lebenszyklus • Grafikbibliothek • Zusammenfassung • Fragen
Geschichte • Januar 1991 : Offizieller Startschuss des Java Development Kits (JDK) 1.0 • 1997 : JDK 1.1 und erstmals Java Runtime Environment (JRE) • Ende 1998 : JDK 1.2. Begriff „Java-2-Platform“ entstand. • 1999 : Unterteilung des sehr groß gewordenen JDK in: • Mai 2000 : J2SE 1.3 • Anfang 2002 : J2SE 1.4 • Ende 2004 : Java 5.0 (Versionsnummer nach außen – 1.5 nach innen) • Ende 2006 : Java 6.0 • Java 2 Platform Micro Edition (J2ME) • Java 2 Platform Standard Edition (J2SE) • Java 2 Platform Enterprise Edition (J2EE)
Inhalt • Java 2 Micro Edition – Was ist das? • Geschichte • Grundlagen • Architektur Überblick • Konfigurationen • Profile • Optionale Pakete • Anwendungsentwicklung (CLDC + MIDP) • Einstieg • Schritte zum Programm (JAR, Manifest, JAD) • Lebenszyklus • Grafikbibliothek • Zusammenfassung • Fragen
Grundlagen • J2ME Java mit deutlich geringerem Funktionsumfang • Idee: Einmal entwickeln läuft überall • 2 Gerätegruppen: • Mobiltelefone, … • Sehr geringe Rechenleistung • Wenig Speicher • Akku • Kleines Display • Smartphones, Set-Top Boxen, … • Erhöhte Rechenleistung • Mehr Speicher • (Größeres Display)
Grundlagen • Aufteilung der Java Platform
Konfiguration Bibliothek JVM Grundlagen • Architektur Überblick Spezieller Optionale Pakete Profile J2ME Betriebssystem
Grundlagen • Konzept der Konfigurationen: • Connected Limited Device Configuration (CLDC) Basiskonfiguration für Geräte mit limitiertem Funktionsumfang (Mobiltelefone) • Connected Device Configuration (CDC) Basiskonfiguration für Geräte mit mehr Rechenleistung, Speicher, Energiebedarf (Smartphones, Set-Top Boxen, Eingebettete Systeme) • Legen Minimalanforderungen fest: • Prozessor-Typ und Geschwindigkeit • Typ und Minimum an verfügbarem Speicher • Typ der Netzwerkverbindung
Grundlagen • Für CLDC sind das: • Monochrom-Display, 96×54 Pixel, Pixelseitenverhältnis 1:1 • 2-Wege-(Drahtlos-)Netzwerk • Eingabegerät (Ein-/ Zweihandtastatur oder Touchscreen) • 128 KB nichtflüchtiger Speicher für MIDP-Komponenten • 8 KB nichtflüchtiger Speicher • 32 KB flüchtiger Speicher für die Ausführung einer Java Virtual Machine • Java-fähige Mobiltelefone müssen dies einhalten • C(L)DC = Java Virtual Machine + Standardbibliotheken
Konfiguration Bibliothek JVM Grundlagen • Architektur Überblick Spezieller Optionale Pakete Profile J2ME Betriebssystem
Grundlagen • Profile bauen auf Konfigurationen auf • Angepasst auf bestimmte Gerätegruppen • Besitzen neue Bibliotheksfunktionen Erweiterter Funktionsumfang • z.B. das Mobile Information Device Profile (MIDP) • Baut auf CLDC auf • Funktionen zur Ansteuerung und Abfrage von Einhandtastaturen, Miniaturbildschirmen und Speicher im Kilobyte Bereich • Bibliotheken für grafische Benutzeroberflächen • Profile für CDC: Foundation Profile, Personal Basis Profile, Personal Profile
Konfiguration Bibliothek JVM Grundlagen • Architektur Überblick Spezieller Optionale Pakete Profile J2ME Betriebssystem
Grundlagen • Optionale Pakete z.B. Herstellerspezifisch (Nokia, Siemens,…) • Noch mal erweiterter Funktionsumfang • Zugriff auf Spezialfunktionen (Handyspezifisch) • Multimedia Support wie Streaming-Video • Bluetooth • WLAN • Zugriff auf das Dateisystem
Grundlagen • Beispiel: Motorola • Multimedia Support für einige ausgewählte Modelle • Jeweils beiliegende Emulatoren
Inhalt • Java 2 Micro Edition – Was ist das? • Geschichte • Grundlagen • Architektur Überblick • Konfigurationen • Profile • Optionale Pakete • Anwendungsentwicklung (CLDC + MIDP) • Einstieg • Schritte zum Programm (JAR, Manifest, JAD) • Lebenszyklus • Grafikbibliothek • Zusammenfassung • Fragen
Anwendungsentwicklung • Benötigt werden: • Eine Konfiguration • Ein zur Konfiguration passendes Profil • Zum Beispiel: CLDC + MIDP • Am einfachsten: • Download von Sun Java Wireless Toolkit 2.5 for CLDC, Beta 2 • Enthält alles was man braucht • Lediglich ein Editor wird noch benötigt
Anwendungsentwicklung • Schritte zum Erstellen einer Anwendung: Java Quellcode HelloWorld.java Kompilieren Java Bytecode HelloWorld.class Präverifizieren Java Bytecode HelloWorld.class Packen Ressourcen Manifest Grafik.png Manifest.mf HelloWorld.jad Jar-Datei HelloWorld.jar
Anwendungsentwicklung • Syntax genauso wie bei Java publicclass HelloWorld extendsMIDlet{ publicvoidstartApp() { Display display = Display.getDisplay(this); Form mainForm = new Form("HelloWorld MIDlet"); mainForm.append("Hello World!"); display.setCurrent(mainForm); } publicvoidpauseApp () {} publicvoiddestroyApp(boolean unconditional) {} }
Anwendungsentwicklung • Programmlebenszyklus: new() Paused destroyApp() Destroyed pauseApp() startApp() Active destroyApp()
Anwendungsentwicklung • Manifest.mf Manifest-Version: 1.0 MIDlet-Name: HelloWorld MIDlet-Vendor: Andreas Scharf MIDlet-1: Hello World MIDlet,pi-logo2.png,main.HelloWorld MIDlet-Version: 1.0.0 MicroEdition-Profile: MIDP-2.0 MicroEdition-Configuration: CLDC-1.1
Anwendungsentwicklung • Java Application Descriptor (JAD) HelloWorld MIDletExamples.jar beschreibt HelloWorld.jad AlertMIDlet pi-logo2.png MIDlet-1: AlertMIDlet,pi-logo2.png,main.AlertMIDlet MIDlet-2: HelloWorldMIDlet,pi-logo2.png,main.HelloWorld MIDlet-Jar-Size: 4503 MIDlet-Jar-URL: MIDletExamples.jar MIDlet-Name: MIDlet Example Suite MIDlet-Vendor: Andreas Scharf MIDlet-Version: 1.0.0 MicroEdition-Configuration: CLDC-1.1 MicroEdition-Profile: MIDP-2.0
Anwendungsentwicklung • Beispiel: MIDP Klassen für grafische Benutzeroberfläche Display TextBox High-Level API Alert <<abstract>> Screen Gauge List ImageItem <<abstract>> Item <<abstract>> Displayable Form StringItem DateField … <<abstract>> Canvas Low-Level API
Anwendungsentwicklung • Benutzeroberflächen: • Verschiedene „High-Level“ Komponenten: List Alert TextBox Gauge
Anwendungsentwicklung Alert publicvoidstartApp() { Display display = Display.getDisplay(this); Alert alert = null; try { alert = new Alert( „HelloWorld MIDlet", "Internettechnologie alert", Image.createImage("/pi-logo2.png"), AlertType.INFO); } catch (IOException e) {} display.setCurrent(alert); }
Anwendungsentwicklung List publicvoidstartApp() { Display display = Display.getDisplay(this); List liste = new List( "Teilnehmerliste", List.EXCLUSIVE); liste.append("Anton Arendt", null); liste.append("Berta Besen", null); liste.append("Carola Cola", null); display.setCurrent(liste); }
Anwendungsentwicklung • Low-Level API: Canvas Klasse • Wird benutzt um Pixel für Pixel zeichnen zu können • Andere Formen werden möglich (durch drawXXX – Methoden) • z.B. für Spiele
Inhalt • Java 2 Micro Edition – Was ist das? • Geschichte • Grundlagen • Architektur Überblick • Konfigurationen • Profile • Optionale Pakete • Anwendungsentwicklung (CLDC + MIDP) • Einstieg • Schritte zum Programm (JAR, Manifest, JAD) • Lebenszyklus • Grafikbibliothek • Zusammenfassung • Fragen
Zusammenfassung • Es wird immer eine Konfiguration und ein Profil benötigt • Derzeit (und wahrscheinlich in Zukunft): • Konfigurationen: CLDC + CDC • Profile: MIDP Foundation Profile, Personal Basis Profile, Personal Profile • Idee „Einmal entwickeln läuft überall“ greift leider nicht 100%ig • Viele Hersteller sind relativ neu im Gebiet Java • Dadurch fehlerhafte Implementierung der VM • Nicht zu vergleichen mit der Desktop Variante • Die J2ME hat Zukunft: • So gut wie alle neuen Handys bieten Java Unterstützung (großer Markt) • Keine neue Sprache
Fragen Fragen?
Quellen • SUN: „The Java ME Platform“. URL: http://java.sun.com/javame/index.jsp [Stand: 19.01.2007] • Wikipedia: „Java Platform, Micro Edition“ URL: http://de.wikipedia.org/wiki/Java_2_Platform_Micro_Edition [Stand: 19.01.2007] • Area Mobile: „Application Development in J2ME“ URL: http://www.areamobile.de/specials/J2ME/teil_I.php [Stand: 19.01.2007] • Galileo Computing: „Java ist auch eine Insel“ URL: http://www.galileocomputing.de/openbook/javainsel5/javainsel19_009.htm [Stand: 19.01.2007] • dpunkt: „Die Sprache Java“. URL: http://www.dpunkt.de/java/Die_Sprache_Java/Einleitung/11.html [Stand: 19.01.2007]