|
Vorwort |
6 |
|
|
Inhaltsverzeichnis |
10 |
|
|
1 Einleitung |
16 |
|
|
1.1 Das Green Project: Von Oak zu Java |
16 |
|
|
1.2 Die Java 2 Micro Edition |
18 |
|
|
1.2.1 Anwendungsgebiete |
18 |
|
|
1.2.2 Native Programme – eine Alternative zur J2ME? |
19 |
|
|
1.2.3 Architektur |
20 |
|
|
2 Ein Streifzug über die J2ME |
22 |
|
|
2.1 Konfigurationen, Profile und optionale Pakete |
23 |
|
|
2.2 Anforderungen an die Hardware |
27 |
|
|
2.3 Connected, Limited Device Configuration |
29 |
|
|
2.3.1 Die Kilobyte Virtual Machine |
29 |
|
|
2.3.2 Die Bytecode-Verifikation |
31 |
|
|
2.3.3 Die Klassenbibliothek |
33 |
|
|
2.3.4 Neuerungen in der CLDC 1.1 |
35 |
|
|
2.4 Mobile Information Device Profile |
36 |
|
|
2.4.1 Die Klassenbibliothek |
36 |
|
|
2.4.2 Der Begriff der MIDlet-Suite |
37 |
|
|
2.4.3 MIDlet-Suites im MIDP 2.0 |
40 |
|
|
2.4.4 Over-the-Air Provisioning |
44 |
|
|
3 Implementierungen und Werkzeuge |
46 |
|
|
3.1 Die CLDC-Referenzimplementierung |
46 |
|
|
3.2 Die MIDP-Referenzimplementierung |
50 |
|
|
3.3 Das J2ME Wireless Toolkit |
59 |
|
|
3.3.1 Überblick |
59 |
|
|
3.3.2 Ein Beispielprojekt |
60 |
|
|
3.3.3 Installation von MIDlet-Suites |
62 |
|
|
3.4 Das Siemens Mobility Toolkit |
64 |
|
|
4 Grundlagen der MIDlet-Programmierung |
66 |
|
|
4.1 Der MIDlet-Lebenszyklus |
66 |
|
|
4.1.1 Die Klasse MIDlet |
66 |
|
|
4.1.2 AMS-initiierte Zustandsübergänge |
68 |
|
|
4.1.3 MIDlet-initiierte Zustandsübergänge |
70 |
|
|
4.1.4 Ein Beispiel |
71 |
|
|
4.2 Weitere MIDlet-Funktionen |
76 |
|
|
4.2.1 Platform Request |
76 |
|
|
4.2.2 MIDlet-Attribute |
78 |
|
|
4.2.3 Zugriff auf Ressourcen |
78 |
|
|
4.3 Besonderheiten der Core-Klassen |
80 |
|
|
4.3.1 Systemuhr |
80 |
|
|
4.3.2 System-Properties |
80 |
|
|
4.3.3 Ein-/Ausgabeströme |
81 |
|
|
4.3.4 Beenden des Programmlaufs |
81 |
|
|
4.3.5 Klassenvariablen |
81 |
|
|
4.4 Sicherheit |
82 |
|
|
4.4.1 Nicht vertrauenswürdige MIDlet-Suites |
82 |
|
|
4.4.2 Vertrauenswürdige MIDlet-Suites |
82 |
|
|
4.4.3 Die Programmierschnittstelle |
84 |
|
|
4.4.4 Berechtigungsprüfung während der Installation |
85 |
|
|
5 Bedienoberflächen auf dem kleinsten gemeinsamen Nenner |
86 |
|
|
5.1 Ausprägungen des LCDUI |
86 |
|
|
5.2 Das LCDUI-Modell |
87 |
|
|
5.2.1 Gemeinsame Eigenschaften der UI-Komponenten |
87 |
|
|
5.2.2 Die Klassen des LCDUI im Überblick |
89 |
|
|
5.2.3 Die Klasse Display |
91 |
|
|
5.2.4 Programmstruktur |
93 |
|
|
5.3 Verarbeiten von Benutzerinteraktionen |
96 |
|
|
5.3.1 Kommandos |
96 |
|
|
5.3.2 Kommandos für Displayable-Instanzen |
98 |
|
|
5.3.3 Kommandos für Item-Instanzen |
99 |
|
|
5.3.4 Reagieren auf Item-Änderungen |
101 |
|
|
5.4 Die Komponenten des High-Level-LCDUI |
103 |
|
|
5.4.1 List |
103 |
|
|
5.4.2 TextBox |
108 |
|
|
5.4.3 Alert |
111 |
|
|
5.4.4 Form |
116 |
|
|
5.4.5 Ticker |
124 |
|
|
6 Die Low-Level-Schnittstellen für Bedienoberflächen |
126 |
|
|
6.1 Der Funktionsumfang des Low-Level-LCDUI |
126 |
|
|
6.1.1 Zeichnen |
126 |
|
|
6.1.2 Abfragen von Benutzereingaben |
129 |
|
|
6.1.3 Hinweise für portable Anwendungen |
131 |
|
|
6.2 Anwendungsprogrammierung |
132 |
|
|
6.2.1 Aufgabenstellung |
133 |
|
|
6.2.2 Eine erste Realisierung |
133 |
|
|
6.2.3 Double Buffering |
137 |
|
|
6.2.4 Minimierung des neu gezeichneten Bereichs |
139 |
|
|
6.2.5 Synchronisation der Bildschirmausgabe |
142 |
|
|
6.3 Das Game API |
146 |
|
|
7 Das Generic Connection Framework |
152 |
|
|
7.1 Entwurfsziele |
152 |
|
|
7.2 Das Generic Connection Framework |
153 |
|
|
7.3 Hypertext Transfer Protocol |
158 |
|
|
7.3.1 Unterstützung von HTTP in mobilen Endgeräten |
158 |
|
|
7.3.2 Das Protokoll |
159 |
|
|
7.3.3 Die Programmierschnittstelle |
163 |
|
|
7.3.4 Anwendung der Programmierschnittstelle |
168 |
|
|
7.3.5 Authentifizierung |
171 |
|
|
7.3.6 Verarbeiten von Cookies |
173 |
|
|
7.3.7 Redirects |
174 |
|
|
7.3.8 Anwendungsbeispiel: Apache-Status |
178 |
|
|
7.4 Hypertext Transfer Protocol over TLS/SSL |
185 |
|
|
7.4.1 Public-Key-Infrastruktur |
185 |
|
|
7.4.2 Die Programmierschnittstelle |
186 |
|
|
8 Low-Level-Netzwerkprogrammierung |
192 |
|
|
8.1 Transmission Control Protocol |
193 |
|
|
8.1.1 Das Protokoll |
193 |
|
|
8.1.2 Clientprogrammierung |
193 |
|
|
8.1.3 Serverprogrammierung |
203 |
|
|
8.2 Transport Layer Security |
211 |
|
|
8.3 User Datagram Protocol |
214 |
|
|
8.3.1 Das Protokoll |
214 |
|
|
8.3.2 Kommunizieren mit Datagrammen |
215 |
|
|
8.3.3 Clientprogrammierung |
219 |
|
|
8.3.4 Serverprogrammierung |
226 |
|
|
8.4 Serielle Schnittstellen |
230 |
|
|
8.5 Die Push Registry |
232 |
|
|
8.5.1 Funktionsweise |
233 |
|
|
8.5.2 Statische Registrierung |
234 |
|
|
8.5.3 Dynamische Registrierung |
235 |
|
|
8.5.4 Discovery |
239 |
|
|
8.5.5 Anwendungsbeispiel: Ortungsserver |
240 |
|
|
8.5.6 Die Gegenseite für netzwerkaktivierte MIDlets |
244 |
|
|
9 Das Record-Management-System |
246 |
|
|
9.1 Konzepte |
246 |
|
|
9.2 Das Paket javax.microedition.rms |
248 |
|
|
9.3 Die Klasse RecordStore |
249 |
|
|
9.3.1 API |
250 |
|
|
9.3.2 Der Record-Store-Lebenszyklus |
251 |
|
|
9.3.3 Abfragen allgemeiner Informationen |
254 |
|
|
9.3.4 Der Lebenszyklus von Datensätzen |
255 |
|
|
9.3.5 RecordListener |
261 |
|
|
9.4 Bearbeiten von Datensatzkollektionen |
262 |
|
|
9.4.1 Aufzählungen |
262 |
|
|
9.4.2 Datensätze filtern |
263 |
|
|
9.4.3 Datensätze sortieren |
264 |
|
|
9.4.4 Statische und dynamische Aufzählungen |
266 |
|
|
9.5 Ausnahmen |
267 |
|
|
9.6 Nebenläufige Zugriffe |
268 |
|
|
10 Das Mobile Media API |
272 |
|
|
10.1 Konzepte |
273 |
|
|
10.2 Der Leistungsumfang im MIDP 2.0 |
276 |
|
|
10.3 Abfragen der Gerätefähigkeiten |
277 |
|
|
10.3.1 Protokolle und Formate |
277 |
|
|
10.3.2 Weitere Eigenschaften |
278 |
|
|
10.4 Töne |
278 |
|
|
10.4.1 Erzeugen eines Tons |
278 |
|
|
10.4.2 Abspielen einer Tonfolge |
279 |
|
|
10.4.3 Abspielen einer MIDI-Datei |
283 |
|
|
10.4.4 Feingranulares Arbeiten mit MIDI-Events |
284 |
|
|
10.5 Sample-Audio |
285 |
|
|
10.5.1 Wiedergabe |
285 |
|
|
10.5.2 Aufnahme |
286 |
|
|
10.6 Video |
287 |
|
|
10.6.1 Anzeigen als Item |
287 |
|
|
10.6.2 Anzeigen als Canvas |
289 |
|
|
10.6.3 Aufnehmen eines Bilds |
290 |
|
|
10.6.4 Aufnehmen eines Videos |
292 |
|
|
10.7 Ereignisverarbeitung |
292 |
|
|
11 Optionale Pakete |
294 |
|
|
11.1 Übersicht |
294 |
|
|
11.2 Wireless Messaging APIs |
295 |
|
|
11.3 PIM Optional Package |
299 |
|
|
11.4 FileConnection Optional Package |
303 |
|
|
11.5 Location API |
306 |
|
|
11.6 Webservices API |
311 |
|
|
11.7 Weitere Pakete |
316 |
|
|
11.7.1 Bluetooth APIs |
317 |
|
|
11.7.2 SIP API |
318 |
|
|
11.7.3 Mobile 3D Graphics API |
319 |
|
|
A Die Almanach-Notation |
320 |
|
|
B Konfigurieren des Apache- Web- Servers |
322 |
|
|
C Importieren eines Zertifikats in das Wireless Toolkit |
332 |
|
|
Literatur |
336 |
|
|
Stichwortverzeichnis |
342 |
|