n ookiao Informatikseminar Inhalt J2ME Java 2 Platform, Micro Edition Mit Focus auf Geräte mit CLDC-Configuration und MIDP2-Profil



Ähnliche Dokumente
Verteilte Anwendungen Java 2 Mobile Edition

Programmierung mobiler Kleingeräte

Java-Kurs: J2ME Programmierung von Embedded Devices mit der Java 2 Plattform, Micro Edition

Grafikausgabe mit dem Abstract- Windowing-Toolkit. Eine Einführung

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Graphische Benutzungsoberflächen

Tipps und Tricks zur Installation von Java-basierten Programmen auf Handys

GUI Programmierung in Java

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Programmieren in Java

Einführung in Javadoc

Java Wireless Toolkit (JWT) Bei der Programmierung von Anwendungsprogrammen für mobile Endgeräte eignet sich die Verwendung des Java Wireless Toolkit.

Programmieren I. Kapitel 15. Ein und Ausgabe

ROFIN App Benutzerhandbuch. Version 1.0

Einführung in die Programmierung

PocketPC.ch Review. SBSH ilauncher 3.1. Erstelldatum: 3. Dezember 2007 Letzte Änderung: 3. Dezember PocketPC.ch_Review_iLauncher.

Abschnitt 12: Strukturierung von Java-Programmen: Packages

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Objektorientierte Programmierung

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Tritt beim Aufruf ein Fehler aus, so wird eine MessageBox mit dem Fehlercode und der Kommandozeile angezeigt.

Abteilung Informatik, JFC/Swing 2004 Diego Schmidlin V2.2

Print2CAD 2017, 8th Generation. Netzwerkversionen

C# im Vergleich zu Java

Vererbung & Schnittstellen in C#

Objektorientierte Programmierung. Kapitel 12: Interfaces

Innovator 11 classix. Anbindung an Eclipse. Einführung, Installation und Konfiguration. Connect. Michael Kaaden.

Große Übung Praktische Informatik 1

Java Einführung Abstrakte Klassen und Interfaces

Scalable Vector Graphics-basierte

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Innere Klassen in Java

Factory Method (Virtual Constructor)

ObjectBridge Java Edition

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

MetaQuotes Empfehlungen zum Gebrauch von

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level

Java für Embedded Systems

Wie verbindet man Nokia 6600 mit Oxygen Phone Manager II for Symbian OS phones ( )

Zählen von Objekten einer bestimmten Klasse

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Praktikum: Einstieg: Arbeitsplatz, JCreator

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Java 2 Micro Edition. Informatikseminar - Steffen Lahm. Vortragsüberblick

Auto-Provisionierung tiptel 31x0 mit Yeastar MyPBX

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

GEONET Anleitung für Web-Autoren

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Usability-Test für mobile Java-Anwendungen

Programmieren mobiler Geräte

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT

Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

Installations Guide für YAJSW und DTLDAP

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

INHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

Nutzung des WLANs eduroam am Campus der TUM

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Netzwerkversion PVG.view

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Bewegliche Ziele Entwicklungsumgebungen für Pocket PCs und Smartphones

Java: Vererbung. Teil 3: super()

Technische Dokumentation SilentStatistikTool

Mobile RPG - Smartphone-Anwendungen mit Mobile RPG - I Christian Neißl,

Step by Step Softwareverteilung unter Novell. von Christian Bartl

GRAFISCHE BENUTZERSCHNITTSTELLEN

Jederzeit Ordnung halten

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

c t HTML 5 App Werbemittelanforderung

Applets. Applets. Applets. Applet: Java-Programm Eingebettet in einer HTML-Seite Ausführung von einem Java-fähigen Web-Browser oder sog.

Folge 18 - Vererbung

Terminabgleich mit Mobiltelefonen

Zwischenablage (Bilder, Texte,...)

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger

Anleitung. Einrichtung vom HotSync Manager für den Palm 1550 bis 1800 unter Windows 7. Palm SPT 1500 / 1550 Palm SPT 1700 / Bits & Bytes Seite 1

NetBeans Installation für Handy-Programmierung

Dokumentation zu Pocket NeuroNet

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Typumwandlungen bei Referenztypen

Schieberegler und analoge Anzeigen

Java Einführung Collections

ANT. Kurzvortrag von Manuel Schulze.

Tutorial: Erstellen einer vollwertigen XP Home CD aus der EEE 901 Recover DVD

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Installation der SAS Foundation Software auf Windows

Anleitung zum Prüfen von WebDAV

Handbuch ECDL 2003 Professional Modul 3: Kommunikation Kalender freigeben und andere Kalender aufrufen

Erweiterung AE WWS Lite Win: AES Security Verschlüsselung

Der lokale und verteilte Fall

Erläuterung des technischen Hintergrundes des neues RIWA GIS-Zentrums

Redaktionssystem E-MODE. Handbuch für RedakteurInnen. Inhalt. Informationen über E-MODE, Standards & Regeln:

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation.

Installation, Einrichtung, Nutzung von PHOCA DOWNLOAD. Download-Links... 2

Virtueller Campus. Virtueller Campus Horw mit interaktiver Steuerung. HowTo: Externe Bibliotheken

Transkript:

Informatikseminar J2ME Java 2 Platform, Micro Edition Mit Focus auf Geräte mit CLDC-Configuration und MIDP2-Profil Jochen Rink, 30.05.2005 1 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 n ookiao Inhalt Java für Devices mit CLDC Geräte Profil Mobile Phones Devices mit J2ME Unterstützung Aufbau von J2ME Java Applikationen, sog. MIDlets J2ME-Emulatoren Installation von MIDlets auf Mobile Phones Stand der Technik und Ausblick Alternative zu Java 2 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

Java Editions J2M E Java Virtual Machines Quelle: White Paper "CLDC HotSpot Implementation Virtual Machine " 3 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Sun Microsystems, 04.2004, Figure 2-1 - The J2ME, CLDC and MIDP specifications" Java 2 Platform Micro Edition J2ME wurde von Sun Microsystems mit Java 2 vorgestellt: http://java.sun.com/j2me/ Einsatzmöglichkeiten von J2ME: Mobile Phones, PDAs, Pager, SetTop Boxen, Fernseher Speziell für Geräte mit Hardwareeinschränkungen J2ME ist nach diesen Geräten (Profile) unterteilt: CDC Connected Device Configuration CLDC Connected Limited Device Configuration CDC wird im Gegensatz zu CLDC kaum eingesetzt CLDC 1.0 wurde im März 2003 auf CLDC 1.1 erweitert J2ME steht quasi nur in Verbindung mit Mobile Phones 4 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

CDC / CLDC: Geräte-Konfiguration in J2ME Gerätegruppen zu sog. "Confgurations" zusammenfassen Zur Zeit stehen die Configurations "CDC" und "CLDC" zur Verfügung Unterteilung auf Basis von Hardwaremerkmalen Für jede Configuration werden spezielle Klassenbibliotheken bereitgestellt Die Configurations wurden vom JCP im Jahre 2000 definiert http://jcp.org/en/home/index Auf den Configurations setzt die Profilebene auf 5 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Beispiele für Geräte mit CDC-Configuration 6 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

Beispiele für Geräte mit CLDC-Configuration 7 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Anforderungen CDC vs. CLDC Connected Device Configuration Min. 32 Bit Prozzesor Min. 2 MB ROM Min. 2 MB RAM für VM und CDC Klassen Netzwerkverbindung darf drahtlos sein Bandbreite unter 9600 Baud erlaubt Verbindung wahlweise möglich Stabile Verbindung nötig Verbindung basiert auf TCP/IP Compact Virtual Machine Connected Limited Device Configuration Min. 160 KB ROM Min. 32 KB RAM Netzwerkverbindung darf drahtlos sein Bandbreite unter 9600 Baud erlaubt Verbindung wahlweise möglich Verbindung basiert nicht auf TCP/IP Instabile Verbindung möglich Mobile Stromversorgung möglich Minimales OS für Hardwarezugriffe Keine getrennten Adressräume nötig Kilo Virtual Machine 8 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

Schnittmenge der Klassen aus J2EE, J2SE, CDC und CLDC J2EE J2SE CLDC CDC 9 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Klassenbibliotheken in CLDC CLDC 1.0 Java.io (InputStream, OutputStrem, Reader, Writer,...) Java.lang (Class, Thread, System, String, Math, Integer,...) Java.util (Vector, Stack, Date, Calendar, Hashtable,...) CLDC 1.1 Erweiterung der CLDC 1.0 Floating Point Arithmetic Exception Handling 10 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

J2ME Profile Profiles setzen auf den Configurations auf Profile sind die wichtigste Schicht für den Entwickler Legt die Mindestanforderung der J2ME fest Beispiele für Profile: MIDP Mobile Information Device Profile Erweiterung der CLDC für Mobile Phones PDA-Profile Erweiterung der CLDC für PDAs IMP Information Modul Profile Foundation Profile Erweiterung der CDC als Basis für weitere Profile 11 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Mobile Information Device Profile - MIDP MIDP wurde speziell für Mobile Phones und Pager entwickelt MIDP ist herstellerunabhängig Alle MIDP-Geräte müssen die selben Schnittstellen implementieren MIDP ist der kleinste gemeinsame Nenner MIDP 1.0 ist im Jahre 2000 erschienen Im Moment ist das im Jahr 2003 erschienene MIDP 2.0 aktuell 12 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

Klassenbibliotheken in MIDP 1.0 javax.microedition.io In- / Output über Streams javax.microedition.lcdui UI-API javax.microedition.midlet Die eigentliche Anwendung auf dem Phone javax.microedition.rms Persistente Datenspeicherung 13 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Erweiterungen in MIDP 2.0 MIDP 2.0 erweitert die bestehende Bibliotheken aus MIDP 1.0: Verbessertes UI Bessere Multimediaunterstützung Erweiterte Connectivity ( https, datagram, socket ) End to End Security (HTTPS, WTLS) Push Ereignisse Over-The-Air - Installation OTA 14 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

Zusammenhang VM, Configuration, Profiles Quelle: Buch "Java 2 MicroEdition " dpunkt Verlag, Abbildung 2-1 - "Editionen, Konfigurationen, Profile und optionale Pakete " 15 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Einfachstes JAVA Programm J2ME Applikationen werden "MIDlet" genannt public class FirstMIDlet extends javax.microedition.midlet.midlet protected void startapp() protected void pauseapp() protected void destroyapp(boolean arg0) 16 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

User Interfaces in MIDP 2.0 Sehr einfaches User Interface User Interfaces sind in der Klasse javax.microedition.lcdui implementiert Klasse "Display" stellt den logischen Bildschirm dar Es gibt nur ein sog. "High-Level" und "Low-Level" UI High-Level-Api: Besteht aus vordefinierten Elemente Low-Level-Api: Keine vordefinierten Elemente Kein System.out.println( ) wie in der J2SE 17 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Zusammenhang der UI Klassen Display Displayable Canvas Screen Alert Gauge Form List Textbox Textfield StringItem ChoiceGroup ImageItem 18 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

Form Die Form ist vergleichbar mit einem Panel in AWT / SWING Eine Form ist ein Screen Eine Form kann direkt auf ein Display hinzugefügt werden Auf einer Form können mehrere UI-Elemente dargestellt werden Funktionen wie Layout, Markieren, Selektieren sind bereits implementiert Es werden nur von Item abgeleitete Objekte auf einer Form dargestellt: TextField, StrinItem, ImageItem, Gauge, ChoiceGroup 19 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 TextField Einfache Benutzerinteraktion Muss auf eine Form geadded werden, da von Item abgeleitet Mehrere TextFields können in einer Form (gleichzeitig ) angezeigt werden Folgende Constraints sind bei der Erzeugung möglich: TextField.ANY TextField.EMAILADDR TextField.NUMERIC TextField.DECIMAL TextField.URL Die Constraints können noch weiter mit weiteren Eigenschaften wie password, uneditable, sensitiv... Kombiniert werden 20 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

TextField protected void startapp() TextField tf1 = new TextField("TextField1", "text1", 10, TextField.ANY); TextField tf2 = new TextField("TextField2", "123", 10, TextField.NUMERIC); Form form = new Form("Textfields"); form.append(tf1); form.append(tf2); Display.getDisplay(this).setCurrent(form); 21 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 TextBox Zur Benutzerinteraktion Zugriff auf Phonebook möglich Folgende Constraints sind bei der Erzeugung möglich: TextField.ANY TextField.EMAILADDR TextField.NUMERIC TextField.DECIMAL TextField.URL Die Constraints können noch weiter mit weiteren Eigenschaften wie password, uneditable, sensitiv... Kombiniert werden Identisch zum TextField aber von Screen abgeleitet Kann ohne Form auf das Display gesetzt werden 22 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

TextBox protected void startapp( ) String s = "Enter alert headline"; TextBox tb = new TextBox("AlertHeadline", s, 256, TextField.ANY); Display.getDisplay(this).setCurrent(tb); 23 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Alert String alertheadline = tb.getstring(); Alert alert = new Alert(alertHeadline, "Alert Message", null, AlertType.INFO); Display.getDisplay(this).setCurrent(alert); 24 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

Alert "Popup Fenster" Statusinformationen für den Benutzer Ist bei Aufruf im Vordergrund Wird direkt an das Display übergeben werden alert.settimeout(10); alert.settimeout(alert.forever); Folgende AlertTypes sind definiert: AlertType.ERROR AlertType.INFO AlertType.CONFIRMATION AlertType.WARNING 25 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Interface CommanListener / Class Commands public class AlertMidlet extends MIDlet implements CommandListener private Command exit = new Command("Exit", Command.EXIT, 0); private Command showalert = new Command("Show", Command.OK, 0); tb = new TextBox("AlertHeadline", alertheadline, 20, TextField.ANY ); tb.addcommand(exit); tb.addcommand(showalert); tb.setcommandlistener(this); public void commandaction(command c, Displayable d) if( c == exit) destroyapp(false); notifydestroyed(); if( c == showalert) Alert alert = new Alert(tb.getString(), "Alert Message", null, AlertType.INFO); Display.getDisplay(this).setCurrent(alert); 26 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

StringItem Fügt Strings in eine Form ein: protected void startapp() StringItem si = new StringItem("Titel", "Text"); Form form = new Form("StrinItem"); form.append(si); Display.getDisplay(this).setCurrent(form); 27 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 ImageItem Images auf einer Form darstellen Nur PNG werden sicher unterstützt Unterstützung anderer File Formate sind vom Gerätehersteller abhängig 28 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

ChoiceGroup Benutzer kann aus mehreren Choices auswählen Wird auf einer Form platziert Mehrere ChoiceTypes sind möglich: Exclusiv, Implicit, Multiple Zu jedem Element kann ein Icon zugewiesen werden Ähnlich wie die List 29 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 ChoiceGroup protected void startapp() String[] choices = "Choice 1", "Choice 2", "Choice 3"; ChoiceGroup cg = new ChoiceGroup("Choicegroup", ChoiceGroup.EXCLUSIVE, choices, Form form = new Form("CGForm"); form.append(cg); Display.getDisplay(this).setCurrent(form); 30 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

Canvas Die Canvas Klasse bildet die Basis der Low Level Api Die Canvas Klasse ist direkt von Displayable abgeleitet Keine Titelleiste Das Canvas Objekt kann keine weiteren Komponenten aufnehmen Die Canvas Object erlaubt dem User direktem Zugriff auf den Screen des Gerätes Die Klasse Canvas ist abstrakt, genau wie deren Methode paint( ) Eine konkrete Instanz muss erzeugt werden welche die Methode paint( ) implementiert Canvas wird haupsächlich für Spiele oder andere komplexe Grafiken verwendet 31 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Canvas Quelle: Buch " J2ME In A Nutshell " O Reilly Verlag, Figure 5-1 - "The Canvas class " 32 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

Wichtige Methoden der Canvas Klasse protected void keypressed( int keycode ) Wird von der Plattform aufgerufen wenn ein Taste gedrückt wird protected void keyreleased( int keycode ) Wird von der Plattform aufgerufen wenn eine Taste wieder losgelassen wird void repaint( ) Bittet die Plattform die paint Methode aufzurufen protected abstract void paint( Graphics G ) Wird aufgerufen wenn der Canvas sichtbar wird, wieder sichtbar wird oder neu gezichnet werden soll 33 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Paint-Methode der Canvas Klasse Rendert den Canvas Wird von der Plattform aufgerufen wenn der Canvas sichtbar wird Kann durch die Methode Canvas.repaint( ) aufgerufen werden Bekommt als Übergabparemeter ein Object der Klasse javax.microedition.lcdui.graphics Dieses Graphics-Object nimmt die eigentlichen Änderungen auf dem Screen vor 34 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

Wichtige Methoden der Graphics Klasse void setcolor( int RGB) RGB als default-farbe setzen void setfont ( Font font ) font als default-font setzen void drawline( int x1, int y1, int x2, int y2 ) Eine Line von den Koordinaten (x1 y1) nach (x2 y2) zeichnen void fillrect( int x, int y, int width, int height ) Ein Rechteck ab der Koordinate (x y) mit geg. Height und width füllen void drawarc( int x, int y, int width, int height, int startangle, int arcangle) Umriss eines Kreisbogen zeichnen void fillarc(int x, int y, int width, int height, int startangle, int arcangle ) Kreisbogen füllen 35 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 void drawstring( String str, int x, int y, int anchor ) String an die Koordinaten (x y) schreiben void drawimage( Image img, int x, int y, int anchor ) Zeichnet das Bild im Imaga-Object img an die geg. Koordinaten Weitere Details siehe Apidocs zur Klasse javax.microedition.lcdui.graphics 36 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

Waiting Screen Beispiel Canvas Grafik Midlet Klasse: public class Rotator extends MIDlet protected void startapp() CanvasRotator rotator = new CanvasRotator(); Thread rotatorthread = new Thread(rotator); rotatorthread.start(); Display.getDisplay(this).setCurrent(rotator); protected void pauseapp() protected void destroyapp(boolean arg0) 37 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Canvas Klasse: public class CanvasRotator extends Canvas implements Runnable private int mcount; private int mmaximum; private int mwidth; private int mheight; private int mx; private int my; private int mradius; 38 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 CanvasRotator() mcount = 0; mmaximum = 36; mwidth = getwidth(); mheight = getheight(); int halfwidth = (mwidth - mradius) / 2; int halfheight = (mheight - mradius) / 2; mradius = Math.min(halfWidth, halfheight); mx = halfwidth - mradius / 2; my = halfheight - mradius / 2;

public void run( ) while(true) mcount = (mcount + 1) % mmaximum; repaint(); try Thread.sleep(500); catch (InterruptedException e) e.printstacktrace(); 39 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 public void paint(graphics g) int theta = -((mcount * 360) / mmaximum); g.setcolor(255, 255, 255); g.fillrect(0, 0, mwidth, mheight); g.setcolor(27, 62, 160); g.drawarc(mx, my, mradius, mradius, 0, 360); g.fillarc(mx, my, mradius, mradius, theta + 90, 90); g.fillarc(mx, my, mradius, mradius, theta + 270, 90); MIDlet Suites - Kleinste installierbare Einheit Jar File: Class-Files werden zu einem Jar-Archiv zusammengepackt Kompressionsalgorithmus: ZIP Format in dem ein MIDlet ausgeliefert wird jar.exe aus dem JSDK Beinhaltet ein "Manifest-File Mehrere MIDlets können in ein jar File zusammengepackt werden Midlet Suite MIDlets teilen gemeinsame Ressourcen 40 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

Rotator.jar Aufbau Jar File: META-INF MANIFEST.MF Rotator.class CanvasRotator.class 41 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 MANIFEST.MF Informationen über das / die MIDlets in einer Suite: MicroEdition-Profile MIDlet-Name, -Icon und Class jedes Midlet in der Suite Midlet-Vendor Midlet-Version Beispiel: Manifest-Version: 1.0 MicroEdition-Configuration: CLDC-1.1 MIDlet-Name: Rotator Created-By: Jochen Rink MIDlet-Vendor: Nokia MP/Ulm MIDlet-1: Rotator, Rotator.png, Rotator MIDlet-Version: 1.0 MicroEdition-Profile: MIDP-2.0 42 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

JAD - File Das Jad File beinhaltet ebenfalls Informationen über die Midlet Suite Kann benutzerdefinierte Variablen beinhalten Ähnlich wie bei einem Properties File in der J2SE Die digitale Signatur eines Jar Files ist im Jad File untergebracht Jad - File wird unter bestimmten Bedingungen auf das Gerät übertragen Jad File wird wie Manifest File von der IDE erstellt Hat erforderliche / optionale Einträge Einträge überschneiden sich z.t. mit denen im Manifest File Das Gerät kann aus einem Manifest-File ein Jad-File erstellen 43 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Beispiel Jad-File: MIDlet-1: Rotator, Rotator.png, Rotator MIDlet-Jar-Size: 1835 MIDlet-Jar-URL: Rotator.jar MIDlet-Name: Rotator MIDlet-Vendor: Nokia MP/Ulm MIDlet-Version: 1.0 MicroEdition-Configuration: CLDC-1.1 MicroEdition-Profile: MIDP-2.0 Property1: Value_1 MIDlet-Permissions: javax.microedition.io.connector.datagram MIDlet-Certificate-1-1: MIIDijCCAvOgAwIBAgIBBDANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJESzEYMBYGA1UEChMPTm9raWFDb1Rlc3QgQ GgYDVQQLExNOb2tpYSBNb2JpbGUgUGhvbmVzMRgwFgYDVQQDEw9Ob2tpYUNvVGVzdCBDQTMwHhcNMDMwOTA5MTgxNz NMDcxMDE4MTgxNzM3WjB9MQswCQYDVQQGEwJVSzEQMA4GA1UECBMHVW5rbm93bjEUMBIGA1UEBxMLRmFybmJvcm91 PBgNVBAoTCFRob21hcyAyMRwwGgYDVQQLExNOb2tpYSBNb2JpbGUgUGhvbmVzMRUwEwYDVQQDEwxOZWlsIER1Z2dhbjIw MIDlet-Jar-RSA-SHA1: EucNlCzQH9L7lbMRTvxdnJKoUoYWiApAJwSXvCoZbzn7zKNJUGIAvegh4xdLY7s8CwPbb6wSy65gOv+3p8EpWFt8qH42omYnR/7 Php5rcBBOBJoqLPyCOiE55Yhg+enDIIgWhJ1EGh1FVVI5zKeni1NVfOhrOI4lEQR3WJLo= 44 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

Entwicklungszyklus von MIDlets Quelle: Buch " Java 2 MicroEdition" dpunkt Verlag, Abbildung 2-3 - " Zweiphasige Bytecodeverifikation in der CLDC " 45 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Entwicklungstools für Midlets Java SDK J2ME WirelessToolkit von Sun http://java.sun.com/products/j2mewtoolkit/ Entwicklungsumgebung Jbuilder, Intelli J, NetBeans, Eclipse. J2ME Plugin für die IDE FastPorts, Sysdeo J2ME Plugin, EclipseME Build Tool Ant, besser Antenna 46 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

J2ME WirelessToolkit 47 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 EclipseME http://eclipseme.org Plugin für Eclipse Kann die Vorteile der IDE nutzen Ideal für Einsteiger Automatisiert alle Vorgänge wie compilieren, preverifizieren, packen Unterstützt Obfuscator Kann nicht signieren ( im Vergleich zum WTK ) Viele unterschiedliche Versionen ( kompliziert ), aktuell 0.9.2 (17.05.2005) Etwas umständliche Installation 48 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

Antenna Ant für J2ME http://antenna.sourceforge.net/ Eine Art Build Script für MIDlets In der Datei build.xml werden verschiedene Task angegeben Vorteil: Nachteil: Größte Flexibilität - Kenntnisse über den build Vorgang nötig - Gewöhnungsbedürftige Syntax - Kompliziert 49 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 MIDlet Debugging Keine Möglichkeit die Midlets im Phone zu debuggen ( außer Sony Ericsson, http://developer.sonyericsson.com/site/global/docstools/java/p_java.jsp ) Im Emulator kann man MIDlets wie normale Java Applikationen debuggen ( BreakPoints, Stacktraces, Variableninhalt ) Z.T. unbrauchbar, da die Implementierung der KVM im Phone von der Referenzimplementierung im Emulatoru.U. abweichen kann Im Phone kann man z.b. über Alert Screens Statusinfos ausgeben Echter Nachteil bei der Entwicklung von MIDlets 50 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

Emulatoren Jeder Phone Hersteller stellt Emulatoren zur Verfügung Sun stellt Emulatoren mit der Referenzimplementierung zur Verfügung Emulatoren lassen sich in Suns WTK integrieren Vielfätige Kommunikationsmöglichkeiten: (Java-)SMS, Netzwerk, Bluetooth, Infrarot, Netzwerk Vielfältige Einstellmöglichkeiten der Laufzeitumgebung jar-file Grösse, Heap, Ram, Bandbreite Netzwerk... MIDlet kann somit auf vielen Phones unterschiedlicher Hersteller getestet werden 51 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 52 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

Installation auf dem Device Over the air OTA Mit spezieller Software der Phone Hersteller - via "download" 53 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Installation via OTA 54 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Quelle: Java Magazin 04.2003, Artikel "Over the air", Michael Jentsch Abb. 2, Ablaufdiagramm

Installation via download Application Installer der PCSuite (bei Nokia) Mobile Phone Manager (Siemens) Kopieren der jad- und jar Files auf MMC (Symbian OS basierende Smart-Phones Nachteil: Es ist nicht gewährleistet dass das jad-file übertragen wird Vorteil: Kostenlos im Vergleich zur OTA Installation 55 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 J2ME Ausblick Derzeit ist MIDP 3.0 in der Entwicklung Siehe JSR 271, http://www.jcp.org/en/jsr/detail?id=271 Initiator ist Motorola, Erscheinungstermin: Mai 2006 Geplante Neuerungen: - Mehrere MIDlets gleichzeitig in der VM aktiv - Kommunikation unter MIDlets (Interprozesskommunikation) - Background Midlets (ohne UI wie Daemons) - Shared Libraries für MIDlets -IPv6 - Unterstützung mehrere Displays - Autostart - Verbessertes UI 56 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05

Alternativen zu J2ME Moderne Smart-Phones basieren meist auf dem Symbian OS http://www.symbian.com Das Symbian OS bietet neben MIDlets die Möglichkeit native Applikationen auszuführen Diese sind in C++ geschrieben und werden auf der CPU und nicht in einer Laufzeitumgebung ausgeführt Bieten ebenfalls sehr großen Funktionsumfang Wegen direkter Ausführung auf der CPU sehr viel schneller als MIDlets Entwicklungszyklus ist komplizierter, da Kenntnisse über das Symbian-OS erforderlich sind Nicht so stark verbreitet wie Phones mit J2ME 57 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05 Danke für Ihre Aufmerksamkeit 58 Informatikseminar NOKIA Nokia FH-Weingarten, Mobile Phones Jochen general Rink, presentation 30.05.05