KI in Computerspielen Gliederung Java ME versus Java SE

Werbung
KI in Computerspielen
KI in Computerspielen
Bernd Ludwig
Bernd Ludwig
Grundlagen
von Java ME
Grundlagen
von Java ME
Gliederung
KI in Computerspielen
Bernd Ludwig
1 Grundlagen von Java ME
Lehrstuhl für Künstliche Intelligenz
Institut für Informatik
Friedrich-Alexander-Universität Erlangen-Nürnberg
24.10.2006
KI in Computerspielen
KI in Computerspielen
Java ME versus Java SE
Bernd Ludwig
Grundlagen
von Java ME
Configurations, Profiles und
Optional Packages
Bernd Ludwig
Grundlagen
von Java ME
• Java ME ist kein Softwaresystem.
• Java ME ist keine Spezifikation.
• Java ME
• ist eine Sammlung von Technologien und
Spezifikationen
• bietet eine Plattform für verschiedenartige Geräte
1
• spezifizieren eine JVM (Speicher, Netzwerk, ...)
• spezifizieren alle Basis-APIs für das Zielgerät
2
• Eine JVM für Java ME implementiert eine Untermenge
der JVM von Java SE.
• Die APIs von Java ME sind eine Teilmenge der APIs
von Java SE.
• Java ME enthält auch APIs, die es in Java SE nicht gibt.
Profiles
• erweitern eine gegebene configuration um essentielle
Bestandteile für Applikationen: GUI, Zugriff auf
permanenten Speicher, ...
• Jedes Gerät kann unterschiedliche Teile von Java ME
realisieren.
Configurations
3
Optional Packages
• erweitern die Nutzungsmöglichkeiten eines Geräts
• implementieren zusätzliche Spezifikationen (z.B.
Bluetooth-Spezifikation JSR 82, Web Services JSR
172, Mobile Media JSR 135)
Wie bei Java SE gibt es jeweils Klassenbibliotheken zum
Einbinden in eigenen Programme.
KI in Computerspielen
Bernd Ludwig
KI in Computerspielen
Komponenten von Java ME
Grundlagen
von Java ME
Java ME im
Vergleich mit
Java SE und
JavaCard
Grundlagen
von Java ME
Bernd Ludwig
• Java ME entwickelt sich aus einer öffentlichen
Diskussion (Java Communitgy Process).
• Mindeststandard für mobile, drahtlose Geräte (Java
Technology fpr the Wireless Industry — JTWI):
•
•
•
•
Systemarchitektur
eines
JavaME-fähigen
Geräts
KI in Computerspielen
JVMs für verschiedene Geräte
Bernd Ludwig
Connected Limited Device Configuration 1.0 (JSR 30)
Mobile Information Device Profile 2.0 (JSR 118)
Wireless Messaging API (JSR 120)
Mobile Media API (JSR 135)
JTWI-Komponenten
für Mobiltelefone
KI in Computerspielen
Ein Java ME-Programm
Grundlagen
von Java ME
Struktur des Programms
Bernd Ludwig
Grundlagen
von Java ME
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloWorld extends MIDlet
implements CommandListener {
private Command exitCommand;
private TextBox tb;
public HelloWorld() {
exitCommand = new Command("Exit", Command.EXIT, 1);
tb = new TextBox("Hello", "Hello, World!", 15, 0);
tb.addCommand(exitCommand);
tb.setCommandListener(this); }
protected void startApp() {
Display.getDisplay(this).setCurrent(tb); }
public void commandAction(Command c, Displayable d) {
if (c == exitCommand) {
destroyApp(false);
notifyDestroyed(); }}}
• Alle ausführbaren Klassen werden von MIDLet
abgeleitet (vgl. Applet).
• Es gibt keine main-Methode, nur startApp.
• Asynchrone Abläufe wie Benutzereingaben werden
über Listener realisiert.
• Benutzerschnittstellen werden mit Hilfe des package
lcdui implementiert (vgl. AWT und swing).
• Alle Konstrukte des „Basis“-Java gibt es auch in Java
ME.
• Alle Klassen für CLDC sind als JavaDoc dokumentiert.
• Auch die Klassen für MIDP 2.0 sind dokumentiert.
• Für Erweiterungsspezifikationen gibt es eigene
Dokumentationen.
KI in Computerspielen
KI in Computerspielen
Sun Wireless ToolKit
Bernd Ludwig
Grundlagen
von Java ME
• Simulator für JVMs auf JavaME-Basis
Bernd Ludwig
Entwickeln von Programmen
Grundlagen
von Java ME
• WTK erwartet die zu compilierenden Sourcen unter
folgendem Pfad:
<WTK-DIR>/apps/<ProjectName>
• Über den Menüpunkt Project – Package – Create
Package wird ein jar-File generiert, das alle
benötigten Klassen enthält.
• Wenn auf dem Endgerät die beim Compilieren
• Unterschiedliche Spezifikationen (z.B. JSR 82) sind
genutzten JSR-Spezifikationen unterstützt werden, ist
die Applikation nach dem upload lauffähig.
auswählbar.
• Generieren von jar-Archiven, die dann auf ein
• Das E CLIPSE-plugin und ähnliche GUIs vereinfachen
Endgerät geladen werden können.
diesen Prozess. Oft benutzen sie auch eigene
Simulatoren.
• WTK ist keine Entwicklungsumgebung, es gibt aber
z.B. ein plugin für E CLIPSE.
KI in Computerspielen
Bernd Ludwig
Grundlagen
von Java ME
KI in Computerspielen
Ausführen von Programmen
• Der Simulator ermöglicht das
Ausprobieren von Programmen
für JavaME.
• Kein upload des jar-files
notwendig.
• Die normalen IO-Kanäle
System.out, System.in und
System.err bleiben verfügbar
(im Hauptfenster von WTK).
Bernd Ludwig
Grundlagen
von Java ME
Installieren von Software auf
mobilen Geräten
• Das mit WTK erstellte jar-File wird über Kabel oder
Bluetooth auf das Handy übertragen.
• Bluetooth kann den OBEX-Dienst benutzen.
Herunterladen