There is a lot of information about programming mobiles in Java in English and Russian but not that much in German. That's why I decided to write this in German first, and then, if I receive feedback translate into English.
Nachdem ich mehrere Tage gebraucht habe, mich in dem "Mobile Java Fachchinesisch" zurecht zu finden,
und in den www.sun.com Seiten eine Struktur zu erkennen, habe ich mich entschlossen,
den Nachfolgern das Leben einfacher zu machen und dieses "Get Started!" Tutorial zu schreiben.
Also, du hast ein Javafähiges Händy, hast Java Kenntnisse und willst so schnell wie möglich dein erstes "hello world" schreiben. Dann los geht's.
Erstmal solltest du in Erfahrung bringen, was dein Händy "drauf hat". "Javafähig" ist eher ein Marketingbegriff, und hat wenig Aussagekraft. Die Liste gibt einen Überblick über die unterstützte Standards gängiger Handys:
http://developers.sun.com/techtopics/mobility/device/pub/device/list.do
lokale Kopie (veraltet (2))
| MIDP-1.0 | MIDP-2.0 | MIDP-1.0 mit Siemenserweiterung |
|---|---|---|
|
java.io java.lang java.util javax.microedition.io javax.microedition.lcdui javax.microedition.midlet javax.microedition.rms |
java.io java.lang java.util javax.microedition.io javax.microedition.lcdui javax.microedition.lcdui.game javax.microedition.media javax.microedition.media.control javax.microedition.midlet javax.microedition.pki javax.microedition.rms |
java.io java.lang java.util javax.microedition.io javax.microedition.lcdui javax.microedition.midlet javax.microedition.rms com.siemens.mp com.siemens.mp.color_game com.siemens.mp.game com.siemens.mp.gsm com.siemens.mp.io com.siemens.mp.lcdui com.siemens.mp.m55 com.siemens.mp.media com.siemens.mp.media.control com.siemens.mp.ui |
Wie man sieht, bein den einzelnen Herstellern wird sehr fleißig eigenes Süppchen gekocht.
Der Programmierer freut sich zwar über die komfortable Klassen, aber bei ihrer Verwendung geht die Portabilität der Anwendung natürlich verloren.
MMAPI - (Mobile Media API) Multimedia Klassenbibliotheken
WMA - (Wireless Messaging API) Klassenbibliotheken für Kommunikation über Protokole höheren Schichten wie z.B. HTTP.
Nun, nachdem wir wissen, was wir von unserem Gerät zu erwarten haben, wollen wir rausfinden, was wir
für minimale Programmierumgebung brauchen:
- Erstens J2SE SDK.
Ja, es ist kein Tippfehler, Java2 Standard Edition SDK leistet auch bei mobilen
Geräten die ganze Arbeit.
- Nachdem J2SE installiert wurde, muss
Wireles Tool Kit
WTK her. WTK liefert alle oben beschrieben Klassenbibliotheken, Kompile- und
Simulationsumgebung. Nach der WTK Installation lese das
User Guidde
Wen du bis hierher geschafft hast, hast du im Prinzip alles, um Programme in Java für dein Händy zu schreiben. Du Kannst bereits die mit WTK gelieferte Beispiele im Simulator ausführen.
Die Java Programme für Handys werden MIDlets genannt. Die Hauptklasse des Programms muss zwingend von der Klasse MIDlet erben. Das vom J2SE gewohnte Einsprungspunkt in das Programm public static void main() wird bei MIDlets durch public void startApp() ersetzt.
Das erste Programm firstMidler tut nichts. Es zeigt die Struktur eines minimalistischen MIDlet Programms.
firstMidlet.html
firstMidlet.java
Nun können wir endlich das abligatorische "Hello World" schreiben.
helloWorld.html
helloWorld.java
Nachdem wir dem Handy beigebracht haben, wie es seinem Besitzer was "sagen" kann,
wollen wir mal schauen, wie es die Eingabe vom Benutzer entgegen nimmt.
input.html
input.java
Und, wie geht es weiter?
Die oben beschriebenen Programme benutzen nur die standard MIDP-1.0 Klassen, die
mit WTK von SUN kompilliert und im mitgelieferten Emulator ausgeführt werden können.
Die meisten Handyhersteller bieten eigene SDKs, und Klassenbubliotheken an.
Um alle Mögligkeiten Deines Geräts auszureizen, solltest du auf jeden Fall auf der Webseite
Deines Handyherstellers umschauen.
Viel Spaß!
1)
Entwicklerportal von Siemens.
Nach der kostenloser Registrierung kann man SMTK (Siemens Mobile Tool Kit) runterladen
2) SiMoCo ein wunderbarer Manager für Siemens Handys, dem das original von Siemens nicht mal das Wasser reichen kann. Ich benutze es zum Download der .jar Dateien auf mein CF62