Ulrich Breymann, Heiko Mosemann
Java ME
Anwendungsentwicklung für Handys, PDA und Co.
Inhaltsverzeichnis
6
Vorwort
12
1 Einführung
18
1.1 Warum Java?
18
1.2 Einschränkungen
20
1.3 Java Micro Edition (Java ME)
20
1.3.1 Weitere Normierungsbestrebungen
21
2 Erste Schritte
22
2.1 Das erste Programm
22
2.1.1 Die Werkzeuge
22
2.1.2 Entwicklungsschritte
23
2.2 Installationsvorbereitungen
26
2.2.1 Packen
26
2.2.2 Packen mit Speicherplatzminimierung
28
2.3 Simulation der Luftschnittstelle
28
2.4 Installation auf einem Gerät
30
2.5 Hinter den Kulissen
32
3 Konfigurationen und Profile
34
3.1 CLDC
35
3.1.1 CLDC und Java
36
3.1.2 Bibliotheken für CLDC
36
3.1.3 Einschränkungen im Vergleich zur Java SE
37
3.2 CLDC 1.1 im Vergleich zu 1.0
38
3.3 CDC
39
3.4 MIDP
39
4 MIDlet-Grundlagen
42
4.1 Der MIDlet-Lebenszyklus
42
4.2 MIDlet- und System-Merkmale
47
4.3 Starten externer Anwendungen
50
4.4 Zugriff auf Ressourcen
52
4.4.1 jar-Verzeichnisstruktur
52
4.4.2 Ressourcen-Datei lesen
54
5 Benutzungsschnittstellen
58
5.1 Bildschirmanzeigen verwalten
59
5.2 Virtuelle Bildschirme
60
5.2.1 Alert
61
5.2.2 TextBox
65
5.2.3 Choice
69
5.2.4 List
71
5.2.5 Form
75
5.2.6 Ereignisverarbeitung für Displayable-Objekte
77
5.3 Items – Komponenten für Formulare
80
5.3.1 Ereignisverarbeitung für Items
81
5.3.2 Layout von Items
81
5.3.3 Ereignisverarbeitung in Form-Objekten
83
5.3.4 Spacer
85
5.3.5 StringItem
85
5.3.6 ImageItem
86
5.3.7 ChoiceGroup
88
5.3.8 TextField
90
5.3.9 DateField
90
5.3.10 Gauge
92
5.3.11 CustomItem
93
5.4 Canvas
98
5.4.1 Ereignisverarbeitung
101
5.4.2 Verarbeitung von Tastaturereignissen
102
5.4.3 Zeichnen mit paint() und Graphics
103
5.5 Software-Muster für spezielleProblemstellungen
110
5.5.1 Steuerung von Threads
110
5.5.2 Steuerung von Runnable-Objekten
113
5.5.3 Synchronisation von AMS und Berechnung
114
5.5.4 Bildflackern vermeiden mit Double Buffering
115
5.5.5 Minimierung der Zeichenoperationen
115
5.5.6 Synchronisation von Anzeige und Berechnung
116
5.5.7 Anwendungsbeispiel
117
5.6 API für Spiele
123
5.6.1 GameCanvas
123
5.6.2 TiledLayer
124
5.6.3 Sprite
125
5.6.4 LayerManager
128
5.6.5 Zusammenspiel
128
5.6.6 Transparenz
133
5.6.7 Game Builder
135
5.7 2D-Grafik mit SVG
135
5.7.1 Animierte SVG-Grafik
139
5.7.2 Manipulation von SVG-Grafiken
141
6 Record Management System
148
6.1 Klasse RecordStore
149
6.2 Benutzungsablauf
150
6.3 Operationen auf Datensätzen
151
6.3.1 Schreiben
152
6.3.2 Lesen
153
6.3.3 Löschen, Ändern, Datensatzgröße
155
6.4 Enumerationen
155
6.4.1 Sortierte Verarbeitung
156
6.4.2 Filter
157
6.5 Ereignisverarbeitung
158
6.6 Verwaltungsfunktionen
158
7 Dateisystem
160
7.1 Dateisystem-Operationen
161
7.1.1 Speicherkarten einfügen und entfernen
161
7.2 Verzeichnis- und Datei-Operationen
162
7.3 Sicherheit
166
8 Persönliche Informationen verwalten
168
8.1 Aufbau
168
8.2 Attribute
173
8.3 Einträge verwalten
174
8.3.1 Neue Einträge
175
8.3.2 Einträge ändern
178
8.3.3 Einträge löschen
178
9 Multimedia
180
9.1 Konzept
180
9.1.1 Eigenschaften der Geräte
182
9.2 Audio
183
9.2.1 Einfache Tonerzeugung
183
9.2.2 Tonfolgen
185
9.2.3 Wiedergabe von Audio-Dateien
186
9.2.4 Lautstärke- und andere Einstellungen
187
9.2.5 MIDI
189
9.2.6 Aufnahme
190
9.3 Video
190
9.3.1 Kameraaufnahme
196
9.3.2 Thumbnails
198
9.4 Ereignisverarbeitung
199
10 Internet-Anbindung
200
10.1 HTTP
202
10.1.1 Verbindung mit GET
203
10.1.2 Verbindung mit POST
207
10.1.3 Cookies
217
10.2 HTTPS
218
10.3 Socket
220
10.4 Datagram
221
11 3D-Grafik
224
11.1 Klassen im M3G
226
11.1.1 Loader und Object3D
226
11.1.2 Graphics3D
226
11.1.3 World und Group
229
11.1.4 Transformable und Node
232
11.1.5 Camera und Light
234
11.2 Ein erstes Beispiel
235
11.3 Animation
240
11.3.1 KeyframeSequence
240
11.3.2 AnimationTrack und AnimationController
241
11.3.3 Ein Animationsbeispiel
243
11.4 Immediate Mode
246
11.4.1 VertexBuffer und VertexArray
247
11.4.2 Rendern im Immediate Mode
248
11.5 Mesh
255
11.5.1 Spezialeffekte
261
11.6 Das OpenGL ES API
262
11.6.1 Initialisierung
263
11.6.2 3D-Daten
265
11.6.3 Szene rendern
267
12 SMS senden und empfangen
272
12.1 Einfache SMS senden
273
12.2 SMS über eine Server-Verbindung senden
275
12.3 SMS asynchron empfangen
277
12.4 Push-Dienst – MIDlet mit einer SMS wecken
281
12.5 Andere Arten, ein MIDlet zu wecken
281
12.5.1 MIDlet zu einer bestimmten Zeit wecken
282
13 Bluetooth
284
13.1 Überblick Bluetooth-Technologie
286
13.1.1 Netzwerktopologie
286
13.1.2 Der Bluetooth-Stack
286
13.1.3 Bluetooth-Profile
289
13.2 Java APIs für Bluetooth
290
13.2.1 Aufsuchen von Geräten
293
13.2.2 Aufsuchen von Diensten
306
13.3 Dienste nutzen
312
13.4 Weitere Klassen der JABWT
316
13.4.1 L2CAP
316
13.4.2 OBEX
318
14 Location API
324
14.1 Lokalisierung
324
14.2 Lokalisierung mit dem Location API
327
14.2.1 Koordinaten
330
14.2.2 Landmarken
334
14.3 Location API-Beispiele mit dem WTK
335
14.4 Location API-Beispiele mit realen Geräten
338
15 Web-Services
344
15.1 Konzept
345
15.2 Technische Grundlagen
346
15.2.1 Simple Object Access Protocol – SOAP
347
15.3 Beispiel: SOAP-Anfrage an Google
348
15.4 Automatische Auswertung vonSOAP-Nachrichten
354
15.5 Automatische ErzeugungSOAP-Nachrichten
361
15.6 Andere Werkzeuge zur SOAP-Unterstützung
363
16 Sicherheit und Signierung
364
16.1 Erlaubnisse und Sicherheitsbereiche
364
16.2 Signaturen und Zertifikate
366
16.2.1 Signieren mit dem WTK
367
16.2.2 Verifizierung
368
16.3 Zertifizierung in der realen Welt
368
16.3.1 Schlüssel für gegebene Hardware erzeugen
368
16.4 Java Verified Program
369
16.5 Datensicherheit
369
16.5.1 Verschlüsselung
370
17 JavaFX
376
18 Es funktioniert nicht! – Warum?
378
18.1 Was tun?
378
19 Werkzeuge
380
19.1 Apache Web-Server – Installation,Einrichtung und Nutzung
380
19.1.1 Konfiguration
382
19.1.2 Kontrolle mit dem WTK
383
19.2 Tomcat Container
385
19.2.1 Vorbedingungen
385
19.2.2 Installation und Start unter Windows
386
19.2.3 Installation und Start unter Linux
386
19.2.4 Fehlerbehebung
386
19.3 Automatisierte Abläufe mit Ant
387
19.4 NetBeans
396
19.4.1 Java ME-Projekt anlegen und zum Laufen bringen
396
19.4.2 Over the Air Simulation
397
19.5 Web-Server mit Ant einbinden
397
19.6 J2ME Polish
399
19.7 Gerätespezifische Daten finden
400
A Anhang
402
A.1 Pfad und Systemvariablen einstellen
402
A.1.1 Linux
402
A.1.2 Windows XP
402
A.2 Mini-Web-Server
403
A.3 Bluetooth-Beispiele
405
A.3.1 Ein OBEX Beispielprogramm
405
A.3.2 Ein ObjectPush-Beispielprogramm
414
A.4 JSR-Übersicht
417
A.5 Übergreifende Spezifikation MSA
419
A.6 XML Kurzbeschreibung
421
A.6.1 Syntax
422
A.6.2 Dokumenttyp-Definition
424
A.6.3 Namensräume
424
A.6.4 XML-Schema
425
A.7 Verzeichnis der Beispielprogramme
426
Literaturverzeichnis
430
Glossar
436
Stichwortverzeichnis
444
© 2009-2024 ciando GmbH