|
Inhaltsverzeichnis |
4 |
|
|
Vorwort |
10 |
|
|
Einführung |
16 |
|
|
1.1 Warum Java? |
16 |
|
|
1.2 Einschränkungen |
18 |
|
|
1.3 Java Micro Edition (Java ME) |
18 |
|
|
1.3.1 Weitere Normierungsbestrebungen |
19 |
|
|
Erste Schritte |
20 |
|
|
2.1 Das erste Programm |
20 |
|
|
2.1.1 Die Werkzeuge |
20 |
|
|
2.1.2 Entwicklungsschritte |
21 |
|
|
2.2 Installationsvorbereitungen |
24 |
|
|
2.2.1 Packen |
24 |
|
|
2.2.2 Packen mit Speicherplatzminimierung |
25 |
|
|
2.3 Simulation der Luftschnittstelle |
26 |
|
|
2.4 Installation auf einem Gerät |
28 |
|
|
2.5 Hinter den Kulissen |
30 |
|
|
Konfigurationen und Profile |
32 |
|
|
3.1 CLDC |
33 |
|
|
3.1.1 CLDC und Java |
34 |
|
|
3.1.2 Bibliotheken für CLDC |
34 |
|
|
3.1.3 Einschränkungen im Vergleich zur Java SE |
35 |
|
|
3.2 CLDC 1.1 im Vergleich zu 1.0 |
36 |
|
|
3.3 CDC |
37 |
|
|
3.4 MIDP |
37 |
|
|
MIDlet-Grundlagen |
40 |
|
|
4.1 Der MIDlet-Lebenszyklus |
40 |
|
|
Anderes Verhalten im Sun WTK-Emulator |
44 |
|
|
4.2 MIDlet- und System-Merkmale |
45 |
|
|
4.3 Starten externer Anwendungen |
48 |
|
|
4.4 Zugriff auf Ressourcen |
49 |
|
|
4.4.1 jar-Verzeichnisstruktur |
50 |
|
|
4.4.2 Ressourcen-Datei lesen |
51 |
|
|
Benutzungsschnittstellen |
56 |
|
|
5.1 Bildschirmanzeigen verwalten |
57 |
|
|
5.2 Virtuelle Bildschirme |
58 |
|
|
5.2.1 Alert |
59 |
|
|
5.2.2 TextBox |
62 |
|
|
5.2.3 Choice |
67 |
|
|
5.2.4 List |
69 |
|
|
5.2.5 Form |
73 |
|
|
5.2.6 Ereignisverarbeitung für Displayable-Objekte |
75 |
|
|
5.3 Items – Komponenten für Formulare |
78 |
|
|
5.3.1 Ereignisverarbeitung für Items |
79 |
|
|
5.3.2 Layout von Items |
80 |
|
|
5.3.3 Ereignisverarbeitung in Form-Objekten |
82 |
|
|
5.3.4 Spacer |
83 |
|
|
5.3.5 StringItem |
83 |
|
|
5.3.6 ImageItem |
84 |
|
|
5.3.7 ChoiceGroup |
86 |
|
|
5.3.8 TextField |
88 |
|
|
5.3.9 DateField |
89 |
|
|
5.3.10 Gauge |
91 |
|
|
5.3.11 CustomItem |
92 |
|
|
5.4 Canvas |
97 |
|
|
5.4.1 Ereignisverarbeitung |
100 |
|
|
5.4.2 Verarbeitung von Tastaturereignissen |
101 |
|
|
5.4.3 Zeichnen mit paint() und Graphics |
102 |
|
|
5.5 Software-Muster für spezielle Problemstellungen |
109 |
|
|
5.5.1 Steuerung von Threads |
109 |
|
|
5.5.2 Steuerung von Runnable-Objekten |
112 |
|
|
5.5.3 Synchronisation von AMS und Berechnung |
113 |
|
|
5.5.4 Bildflackern vermeiden mit Double Buffering |
114 |
|
|
5.5.5 Minimierung der Zeichenoperationen |
114 |
|
|
5.5.6 Synchronisation von Anzeige und Berechnung |
115 |
|
|
5.5.7 Anwendungsbeispiel |
116 |
|
|
5.5.8 Synchronisation mit Display.callSerially() |
121 |
|
|
5.6 API für Spiele |
122 |
|
|
5.6.1 GameCanvas |
123 |
|
|
5.6.2 TiledLayer |
123 |
|
|
5.6.3 Sprite |
125 |
|
|
5.6.4 LayerManager |
127 |
|
|
5.6.5 Zusammenspiel |
127 |
|
|
5.6.6 Transparenz |
133 |
|
|
Record Management System |
136 |
|
|
6.1 Klasse RecordStore |
137 |
|
|
6.2 Benutzungsablauf |
138 |
|
|
6.3 Operationen auf Datensätzen |
139 |
|
|
6.3.1 Schreiben |
140 |
|
|
6.3.2 Lesen |
141 |
|
|
6.3.3 Löschen, Ändern, Datensatzgröfle |
142 |
|
|
6.4 Enumerationen |
143 |
|
|
6.4.1 Sortierte Verarbeitung |
144 |
|
|
6.4.2 Filter |
145 |
|
|
6.5 Ereignisverarbeitung |
145 |
|
|
6.6 Verwaltungsfunktionen |
146 |
|
|
Dateisystem |
148 |
|
|
7.1 Dateisystem-Operationen |
149 |
|
|
7.1.1 Speicherkarten einfügen und entfernen |
149 |
|
|
7.2 Verzeichnis- und Datei-Operationen |
150 |
|
|
7.3 Sicherheit |
154 |
|
|
Persönliche Informationen verwalten |
156 |
|
|
8.1 Aufbau |
156 |
|
|
8.2 Attribute |
161 |
|
|
8.3 Einträge verwalten |
162 |
|
|
8.3.1 Neue Einträge |
163 |
|
|
8.3.2 Einträge ändern |
166 |
|
|
8.3.3 Einträge löschen |
166 |
|
|
Multimedia |
168 |
|
|
9.1 Konzept |
168 |
|
|
9.1.1 Eigenschaften der Geräte |
170 |
|
|
9.2 Audio |
171 |
|
|
9.2.1 Einfache Tonerzeugung |
171 |
|
|
9.2.2 Tonfolgen |
173 |
|
|
9.2.3 Wiedergabe von Audio-Dateien |
174 |
|
|
9.2.4 Lautstärke- und andere Einstellungen |
175 |
|
|
9.2.5 MIDI |
177 |
|
|
9.2.6 Aufnahme |
178 |
|
|
9.3 Video |
178 |
|
|
9.3.1 Kameraaufnahme |
184 |
|
|
9.3.2 Thumbnails |
186 |
|
|
9.4 Ereignisverarbeitung |
187 |
|
|
Internet-Anbindung |
188 |
|
|
10.1 HTTP |
190 |
|
|
10.1.1 Verbindung mit GET |
191 |
|
|
10.1.2 Verbindung mit POST |
195 |
|
|
10.1.3 Cookies |
205 |
|
|
10.2 HTTPS |
206 |
|
|
10.3 Socket |
208 |
|
|
10.4 Datagram |
209 |
|
|
3D-Grafik |
212 |
|
|
11.1 Klassen im M3G |
214 |
|
|
11.1.1 Loader und Object3D |
214 |
|
|
11.1.2 Graphics3D |
214 |
|
|
11.1.3 World und Group |
218 |
|
|
11.1.4 Transformable und Node |
219 |
|
|
11.1.5 Camera und Light |
222 |
|
|
11.2 Ein erstes Beispiel |
222 |
|
|
11.3 Animation |
228 |
|
|
11.3.1 KeyframeSequence |
228 |
|
|
11.3.2 AnimationTrack und AnimationController |
229 |
|
|
11.3.3 Ein Animationsbeispiel |
231 |
|
|
11.4 Immediate Mode |
234 |
|
|
11.4.1 VertexBuffer und VertexArray |
235 |
|
|
11.4.2 Rendern im |
236 |
|
|
11.5 Mesh |
243 |
|
|
11.5.1 Spezialeffekte |
249 |
|
|
SMS senden und empfangen |
250 |
|
|
12.1 Einfache SMS senden |
251 |
|
|
12.2 SMS über eine Server-Verbindung senden |
253 |
|
|
12.3 SMS asynchron empfangen |
254 |
|
|
12.4 Push-Dienst – MIDlet mit einer SMS wecken |
258 |
|
|
12.5 Andere Arten, ein MIDlet zu wecken |
259 |
|
|
12.5.1 MIDlet zu einer bestimmten Zeit wecken |
260 |
|
|
Bluetooth |
262 |
|
|
13.1 Überblick Bluetooth-Technologie |
264 |
|
|
13.1.1 Netzwerktopologie |
264 |
|
|
13.1.2 Der Bluetooth-Stack |
264 |
|
|
13.1.3 Bluetooth-Profile |
267 |
|
|
13.2 Java APIs für Bluetooth |
268 |
|
|
13.2.1 Aufsuchen von Geräten |
274 |
|
|
13.2.2 Aufsuchen von Diensten |
288 |
|
|
13.3 Dienste nutzen |
294 |
|
|
13.4 Weitere Klassen der JABWT |
296 |
|
|
13.4.1 L2CAP |
296 |
|
|
13.4.2 OBEX |
298 |
|
|
Location API |
304 |
|
|
14.1 Lokalisierung |
304 |
|
|
14.2 Lokalisierung mit dem Location API |
307 |
|
|
14.2.1 Koordinaten |
310 |
|
|
14.2.2 Landmarken |
313 |
|
|
14.3 Location API Beispiele mit dem WTK 2.3 |
314 |
|
|
Web-Services |
322 |
|
|
15.1 Konzept |
323 |
|
|
15.2 Technische Grundlagen |
324 |
|
|
15.2.1 Simple Object Access Protocol – SOAP |
325 |
|
|
15.3 Beispiel: SOAP-Anfrage an Google |
326 |
|
|
15.4 Automatische Auswertung von SOAP- Nachrichten |
333 |
|
|
15.5 Automatische Erzeugung von SOAP- Nachrichten |
340 |
|
|
15.6 Andere Werkzeuge zur SOAP-Unterstützung |
341 |
|
|
Es funktioniert nicht! – Warum? |
342 |
|
|
16.1 Was tun? |
342 |
|
|
Werkzeuge |
344 |
|
|
17.1 EclipseME – ein Java ME-Plugin für Eclipse |
344 |
|
|
17.1.1 Java ME-Projekt anlegen und zum Laufen bringen |
345 |
|
|
17.1.2 Over the Air Simulation |
346 |
|
|
17.2 Apache Web-Server – Installation, Einrichtung und Nutzung |
347 |
|
|
17.2.1 Konfiguration |
349 |
|
|
17.2.2 Kontrolle mit dem WTK |
350 |
|
|
17.3 Tomcat Container |
351 |
|
|
17.3.1 Vorbedingungen |
352 |
|
|
17.3.2 Installation und Start unter Windows |
352 |
|
|
17.3.3 Installation und Start unter Linux |
352 |
|
|
17.3.4 Fehlerbehebung |
353 |
|
|
17.4 Automatisierte Abläufe mit Ant |
353 |
|
|
17.5 Web-Server mit Ant und Antenna einbinden |
354 |
|
|
17.6 J2ME Polish |
357 |
|
|
17.7 Gerätespezifische Daten finden |
357 |
|
|
Anhang |
358 |
|
|
A.1 Pfad und Systemvariablen einstellen |
358 |
|
|
A.1.1 Linux |
358 |
|
|
A.1.2 Windows XP |
358 |
|
|
A.2 Mini-Web-Server |
359 |
|
|
A.3 Bluetooth-Beispiele |
361 |
|
|
A.3.1 Ein OBEX Beispielprogramm |
361 |
|
|
A.3.2 Ein ObjectPush-Beispielprogramm |
369 |
|
|
A.4 JSR-Übersicht |
373 |
|
|
A.5 Übergreifende Spezifikation MSA |
375 |
|
|
A.6 XML Kurzbeschreibung |
377 |
|
|
A.6.1 Syntax |
378 |
|
|
A.6.2 Dokumenttyp-Definition |
380 |
|
|
A.6.3 Namensräume |
380 |
|
|
A.6.4 XML-Schema |
381 |
|
|
Literaturverzeichnis |
382 |
|
|
Glossar |
386 |
|
|
Stichwortverzeichnis |
394 |
|
|
Mehr eBooks bei www.ciando.com |
0 |
|