Java ME (eBook)

Anwendungsentwicklung für Handys, PDA und Co.
eBook Download: PDF
2008 | 2. Auflage
449 Seiten
Carl Hanser Fachbuchverlag
978-3-446-41631-4 (ISBN)

Lese- und Medienproben

Java ME -  Ulrich Breymann,  Heiko Mosemann
Systemvoraussetzungen
4,99 inkl. MwSt
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

JAVA MACHT MOBIL

- Einstieg in die Konzepte und technischen Grundlagen der Programmierung mobiler Endgeräte mit der Java Micro Edition



- Mit praktischen Hinweisen und zahlreichen Beispielen, die auf unterschiedlicher Hardware getestet wurden und die leicht nachvollzogen werden können



- Setzt auf kostenlos verfügbare Software



- Im Internet: Programmcode zu den Beispielen und ergänzendes Material unter www.java-me.de



Sie wollen mobile Anwendungen mit Java ME entwickeln? Dann finden Sie in diesem Buch eine fundierte und verständliche Einführung. Die Autoren erklären, welche Konzepte der Software für mobile Anwendungen zugrunde liegen und wie sie technisch realisiert werden. Sie legen den Schwerpunkt auf die Softwareentwicklung für Geräte mit begrenzten Ressourcen wie Handys und PDAs.



Mit Hilfe zahlreicher Beispiele lernen Sie, eigene mobile Anwendungen zu schreiben und diese als Dienstleistungen auf einem Server anzubieten. Sowohl die Client- als auch die Server-Sicht werden behandelt. Die Autoren geben eine Fülle programmiermethodischer Hinweise und stellen nützliche Werkzeuge zur Entwicklung mobiler Anwendungen mit Java vor. Das umfangreiche Stichwortverzeichnis und das Glossar machen das Buch zu einem wertvollen Nachschlagewerk für die tägliche Arbeit.



Die zweite Auflage wurde durchgehend aktualisiert und in den Bereichen Location API, OpenGL-Bibliothek für Grafik, Scalable Vector Graphics und Sicherheit erweitert.



AUS DEM INHALT: Konfigurationen und Profile: CLDC/CDC, MIDP - MIDlet-Grundlagen - GUI und GUI-Komponenten: Canvas, Thread-Steuerung, API für Spiele, 2D-Grafik mit SVG - Record Management System - Dateisystem - Persönliche Informationen verwalten - Multimedia - Internet-Anbindung - 3D-Grafik - SMS senden und empfangen - Bluetooth - Location API - Web-Services - Sicherheit und Signierung



Die AutorenProf. Dr. Ulrich Breymann und Prof. Dr. Heiko Mosemann sind Professoren für Informatik an der Hochschule Bremen. Sie verwenden Java und Java ME seit vielen Jahren erfolgreich in der Lehre.

Prof. Dr. Ulrich Breymann und Prof. Dr. Heiko Mosemann sind Professoren für Informatik an der Hochschule Bremen. Sie verwenden Java und Java ME seit vielen Jahren erfolgreich in der Lehre.

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

1.1 Warum Java? (S. 17)
Sicher kann man ein schlechtes (oder gutes) Programm in jeder Programmiersprache schreiben, und die Frage, welche die »beste« Programmiersprache ist, bewegt viele Gemüter. Wenn Software effizient entwickelt werden soll, müssen bei der Auswahl einer Programmiersprache verschiedene Kriterien beachtet werden, wie etwa die Verfügbarkeit von Entwicklungsumgebungen. Aus softwaretechnischer Sicht hat C das Manko, dass es die Objektorientierung nicht unterstützt. Java scheint aus folgenden Gründen am besten im Vergleich zum verbleibenden hauptsächlichen Konkurrenten C++ geeignet:

Verbreitung: Java gibt es auf über 1,8 Milliarden mobilen Endgeräten, und etwa 80 % aller neuen verkauften Handys und PDAs usw. basieren auf Java.

Portabilität: Java Bytecode ist auf allen JVM lauffähig, und jedes Betriebssystem von praktischer Bedeutung hat eine JVM. Der Aufwand, eine Anwendung auf ein anderes System zu portieren, ist damit sehr klein und oft gleich null.

Sicherheit: Java hat ein API (Application Programming Interface) für sicherheitsrelevante Abläufe. Dazu gehören Authentifizierung, die Überprüfung von Signaturen und die Vergabe von Rechten (Autorisierung).

Akzeptanz: Java ist auf diesem Gebiet ähnlich wie C++ sehr weit verbreitet und hat eine große Community. Es gibt Foren für Entwickler bei allen namhaften Herstellern.

Robustheit: Java-Anwendungen laufen in einer »Sandbox«. Die Java Virtual Machine (JVM) wacht darüber, dass ein Absturz eines Programms keine anderen Anwendungen stört. Darüber hinaus ist der Bytecode vor der Ausführung mit einem Prüfsummenverfahren verifiziert worden, um die Integrität des Codes sicherzustellen. Unbemerkte Veränderungen, zum Beispiel durch ein Virus, werden dadurch deutlich erschwert.

Garbage Collector: Java hat einen Garbage Collector, sodass keine Speicherlecks auftreten. In C++ können Speicherlecks dagegen nur durch sorgfältige Programmierung vermieden werden.

De-facto-Standardisierung: Es gibt einen C++-Standard (ISO 14882), aber keinen Java-Standard. Der C++-Standard umfasst nur einen sehr kleinen Anteil von Bibliotheken, zum Beispiel gibt es nichts zu gra.schen Benutzungsoberflächen (GUI - engl. für graphical user interface) – alle derartigen APIs und Bibliotheken sind plattformspezifisch. Java hingegen hat eine reichliche Menge an APIs, nicht nur für grafische Benutzungsoberflächen, sondern für die Vernetzung und anderes. Die Spezifikationen für alle Erweiterungen der Java-Plattform entstehen im von Sun relativ demokratisch gestalteten Java Community Process [JCP]. In diesem Konsortium gibt Sun die Spielregeln vor, nach denen die Expertengruppen neue Spezifikationen austüfteln. JCP-Mitglieder, die ein neues Feature entwickeln, veröffentlichen dabei als Erstes ein JSR (Java Specification Request). Auf der Website www.jcp.org sind viele der JSRs samt der fertig gestellten Spezifikationen für jedermann einsehbar. Auch interessierte Einzelpersonen können am JCP teilnehmen. Weil so gut wie alle wichtigen Softwareunternehmen und auch Open-Source-Organisationen wie die Apache Software Foundation im JCP mitarbeiten, ist eine breite Marktakzeptanz gesichert und damit ein De-facto- Standard gegeben.

Es soll nicht verschwiegen werden, dass der Vorteil der Portabilität auch mit Nachteilen verbunden sein kann. Auf Desktop-PCs sind Java-Programme im Allgemeinen genauso schnell wie C++-Programme, weil die JVM einen Just-intime- Compiler aufruft.

Erscheint lt. Verlag 8.5.2008
Verlagsort München
Sprache deutsch
Themenwelt Informatik Programmiersprachen / -werkzeuge Java
Mathematik / Informatik Informatik Web / Internet
Schlagworte J2ME • Java • Java 2 Micro Edition • Java-Anwendungen • Java FX • Mobility
ISBN-10 3-446-41631-5 / 3446416315
ISBN-13 978-3-446-41631-4 / 9783446416314
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 5,0 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Einführung, Ausbildung, Praxis

von Christian Ullenboom

eBook Download (2023)
Rheinwerk Computing (Verlag)
34,93
Moderne GUIs für RIAs und Java-Applikationen

von Ralph Steyer

eBook Download (2022)
Springer Fachmedien Wiesbaden (Verlag)
42,99