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.