Sie sind hier
E-Book

Java ME

Anwendungsentwicklung für Handys, PDA und Co.

AutorHeiko Mosemann, Ulrich Breymann
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2008
Seitenanzahl449 Seiten
ISBN9783446416314
FormatPDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis4,99 EUR

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.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

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.

Inhaltsverzeichnis
Inhaltsverzeichnis6
Vorwort12
1 Einführung18
1.1 Warum Java?18
1.2 Einschränkungen20
1.3 Java Micro Edition (Java ME)20
1.3.1 Weitere Normierungsbestrebungen21
2 Erste Schritte22
2.1 Das erste Programm22
2.1.1 Die Werkzeuge22
2.1.2 Entwicklungsschritte23
2.2 Installationsvorbereitungen26
2.2.1 Packen26
2.2.2 Packen mit Speicherplatzminimierung28
2.3 Simulation der Luftschnittstelle28
2.4 Installation auf einem Gerät30
2.5 Hinter den Kulissen32
3 Konfigurationen und Profile34
3.1 CLDC35
3.1.1 CLDC und Java36
3.1.2 Bibliotheken für CLDC36
3.1.3 Einschränkungen im Vergleich zur Java SE37
3.2 CLDC 1.1 im Vergleich zu 1.038
3.3 CDC39
3.4 MIDP39
4 MIDlet-Grundlagen42
4.1 Der MIDlet-Lebenszyklus42
4.2 MIDlet- und System-Merkmale47
4.3 Starten externer Anwendungen50
4.4 Zugriff auf Ressourcen52
4.4.1 jar-Verzeichnisstruktur52
4.4.2 Ressourcen-Datei lesen54
5 Benutzungsschnittstellen58
5.1 Bildschirmanzeigen verwalten59
5.2 Virtuelle Bildschirme60
5.2.1 Alert61
5.2.2 TextBox65
5.2.3 Choice69
5.2.4 List71
5.2.5 Form75
5.2.6 Ereignisverarbeitung für Displayable-Objekte77
5.3 Items – Komponenten für Formulare80
5.3.1 Ereignisverarbeitung für Items81
5.3.2 Layout von Items81
5.3.3 Ereignisverarbeitung in Form-Objekten83
5.3.4 Spacer85
5.3.5 StringItem85
5.3.6 ImageItem86
5.3.7 ChoiceGroup88
5.3.8 TextField90
5.3.9 DateField90
5.3.10 Gauge92
5.3.11 CustomItem93
5.4 Canvas98
5.4.1 Ereignisverarbeitung101
5.4.2 Verarbeitung von Tastaturereignissen102
5.4.3 Zeichnen mit paint() und Graphics103
5.5 Software-Muster für spezielleProblemstellungen110
5.5.1 Steuerung von Threads110
5.5.2 Steuerung von Runnable-Objekten113
5.5.3 Synchronisation von AMS und Berechnung114
5.5.4 Bildflackern vermeiden mit Double Buffering115
5.5.5 Minimierung der Zeichenoperationen115
5.5.6 Synchronisation von Anzeige und Berechnung116
5.5.7 Anwendungsbeispiel117
5.6 API für Spiele123
5.6.1 GameCanvas123
5.6.2 TiledLayer124
5.6.3 Sprite125
5.6.4 LayerManager128
5.6.5 Zusammenspiel128
5.6.6 Transparenz133
5.6.7 Game Builder135
5.7 2D-Grafik mit SVG135
5.7.1 Animierte SVG-Grafik139
5.7.2 Manipulation von SVG-Grafiken141
6 Record Management System148
6.1 Klasse RecordStore149
6.2 Benutzungsablauf150
6.3 Operationen auf Datensätzen151
6.3.1 Schreiben152
6.3.2 Lesen153
6.3.3 Löschen, Ändern, Datensatzgröße155
6.4 Enumerationen155
6.4.1 Sortierte Verarbeitung156
6.4.2 Filter157
6.5 Ereignisverarbeitung158
6.6 Verwaltungsfunktionen158
7 Dateisystem160
7.1 Dateisystem-Operationen161
7.1.1 Speicherkarten einfügen und entfernen161
7.2 Verzeichnis- und Datei-Operationen162
7.3 Sicherheit166
8 Persönliche Informationen verwalten168
8.1 Aufbau168
8.2 Attribute173
8.3 Einträge verwalten174
8.3.1 Neue Einträge175
8.3.2 Einträge ändern178
8.3.3 Einträge löschen178
9 Multimedia180
9.1 Konzept180
9.1.1 Eigenschaften der Geräte182
9.2 Audio183
9.2.1 Einfache Tonerzeugung183
9.2.2 Tonfolgen185
9.2.3 Wiedergabe von Audio-Dateien186
9.2.4 Lautstärke- und andere Einstellungen187
9.2.5 MIDI189
9.2.6 Aufnahme190
9.3 Video190
9.3.1 Kameraaufnahme196
9.3.2 Thumbnails198
9.4 Ereignisverarbeitung199
10 Internet-Anbindung200
10.1 HTTP202
10.1.1 Verbindung mit GET203
10.1.2 Verbindung mit POST207
10.1.3 Cookies217
10.2 HTTPS218
10.3 Socket220
10.4 Datagram221
11 3D-Grafik224
11.1 Klassen im M3G226
11.1.1 Loader und Object3D226
11.1.2 Graphics3D226
11.1.3 World und Group229
11.1.4 Transformable und Node232
11.1.5 Camera und Light234
11.2 Ein erstes Beispiel235
11.3 Animation240
11.3.1 KeyframeSequence240
11.3.2 AnimationTrack und AnimationController241
11.3.3 Ein Animationsbeispiel243
11.4 Immediate Mode246
11.4.1 VertexBuffer und VertexArray247
11.4.2 Rendern im Immediate Mode248
11.5 Mesh255
11.5.1 Spezialeffekte261
11.6 Das OpenGL ES API262
11.6.1 Initialisierung263
11.6.2 3D-Daten265
11.6.3 Szene rendern267
12 SMS senden und empfangen272
12.1 Einfache SMS senden273
12.2 SMS über eine Server-Verbindung senden275
12.3 SMS asynchron empfangen277
12.4 Push-Dienst – MIDlet mit einer SMS wecken281
12.5 Andere Arten, ein MIDlet zu wecken281
12.5.1 MIDlet zu einer bestimmten Zeit wecken282
13 Bluetooth284
13.1 Überblick Bluetooth-Technologie286
13.1.1 Netzwerktopologie286
13.1.2 Der Bluetooth-Stack286
13.1.3 Bluetooth-Profile289
13.2 Java APIs für Bluetooth290
13.2.1 Aufsuchen von Geräten293
13.2.2 Aufsuchen von Diensten306
13.3 Dienste nutzen312
13.4 Weitere Klassen der JABWT316
13.4.1 L2CAP316
13.4.2 OBEX318
14 Location API324
14.1 Lokalisierung324
14.2 Lokalisierung mit dem Location API327
14.2.1 Koordinaten330
14.2.2 Landmarken334
14.3 Location API-Beispiele mit dem WTK335
14.4 Location API-Beispiele mit realen Geräten338
15 Web-Services344
15.1 Konzept345
15.2 Technische Grundlagen346
15.2.1 Simple Object Access Protocol – SOAP347
15.3 Beispiel: SOAP-Anfrage an Google348
15.4 Automatische Auswertung vonSOAP-Nachrichten354
15.5 Automatische ErzeugungSOAP-Nachrichten361
15.6 Andere Werkzeuge zur SOAP-Unterstützung363
16 Sicherheit und Signierung364
16.1 Erlaubnisse und Sicherheitsbereiche364
16.2 Signaturen und Zertifikate366
16.2.1 Signieren mit dem WTK367
16.2.2 Verifizierung368
16.3 Zertifizierung in der realen Welt368
16.3.1 Schlüssel für gegebene Hardware erzeugen368
16.4 Java Verified Program369
16.5 Datensicherheit369
16.5.1 Verschlüsselung370
17 JavaFX376
18 Es funktioniert nicht! – Warum?378
18.1 Was tun?378
19 Werkzeuge380
19.1 Apache Web-Server – Installation,Einrichtung und Nutzung380
19.1.1 Konfiguration382
19.1.2 Kontrolle mit dem WTK383
19.2 Tomcat Container385
19.2.1 Vorbedingungen385
19.2.2 Installation und Start unter Windows386
19.2.3 Installation und Start unter Linux386
19.2.4 Fehlerbehebung386
19.3 Automatisierte Abläufe mit Ant387
19.4 NetBeans396
19.4.1 Java ME-Projekt anlegen und zum Laufen bringen396
19.4.2 Over the Air Simulation397
19.5 Web-Server mit Ant einbinden397
19.6 J2ME Polish399
19.7 Gerätespezifische Daten finden400
A Anhang402
A.1 Pfad und Systemvariablen einstellen402
A.1.1 Linux402
A.1.2 Windows XP402
A.2 Mini-Web-Server403
A.3 Bluetooth-Beispiele405
A.3.1 Ein OBEX Beispielprogramm405
A.3.2 Ein ObjectPush-Beispielprogramm414
A.4 JSR-Übersicht417
A.5 Übergreifende Spezifikation MSA419
A.6 XML Kurzbeschreibung421
A.6.1 Syntax422
A.6.2 Dokumenttyp-Definition424
A.6.3 Namensräume424
A.6.4 XML-Schema425
A.7 Verzeichnis der Beispielprogramme426
Literaturverzeichnis430
Glossar436
Stichwortverzeichnis444

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

Praktisches Programmieren in C

E-Book Praktisches Programmieren in C
Grundlagen und Tipps Format: PDF

Wer programmieren will, kommt an C nicht vorbei. Vor allem bei der maschinennahen Programmierung, der Entwicklung von Betriebssystemen und in der technischen Informatik spielt C seit mehr als 30…

Profikurs ABAP®

E-Book Profikurs ABAP®
Konkrete, praxisorientierte Lösungen - Tipps, Tricks und jede Menge Erfahrung Format: PDF

Professionelle und sichere Anwendungsentwicklung unter SAP R/3® ist kein Zufall, sondern eine Sache der Erfahrung. Das Resultat: Tricks und Kniffe, von denen auch Sie als ABAP® Professional…

Wege aus der Softwarekrise

E-Book Wege aus der Softwarekrise
Verbesserungen bei der Softwareentwicklung Format: PDF

Seit Jahrzehnten steckt die Softwareentwicklung in der Krise. Laut aktuellen Statistiken gehen immer noch mehr als die Hälfte aller in der IT-Produktion eingesetzten Mittel verloren. Angekündigte…

MDA®

E-Book MDA®
Effektives Software-Engineering mit UML2® und Eclipse? Format: PDF

Dieses Buch liefert sowohl die theoretischen Grundlagen als auch das praktische Handwerkszeug zur Anwendung der Model-Driven-Architecture der OMG. Nach einer Definition und der Einordnung des…

C und Linux

E-Book C und Linux
Die Möglichkeiten des Betriebssystems mit eigenen Programmen nutzen Format: PDF

Wer Erfahrungen in der C-Programmierung hat, kann die vielen Möglichkeiten von Linux kennen lernen und ausschöpfen. Dieses Buch zeigt Ihnen wie und enthält praktische Lösungen f…

Moderne C++ Programmierung

E-Book Moderne C++ Programmierung
Klassen, Templates, Design Patterns Format: PDF

C++ ist eine objektorientierte Programmiersprache, neben der Objektorientierung gewinnt aber die generische Programmierung mittels parametrisierbaren Klassen oder Templates zunehmend an Bedeutung, da…

Software-Entwurf mit UML 2

E-Book Software-Entwurf mit UML 2
Objektorientierte Modellierung mit Beispielen in Java Format: PDF

Das Buch macht die UML 2 beherrschbar. Es führt in die objektorientierte Modellierung mit den wichtigsten UML 2-Diagrammen ein und liefert eine kompakte Darstellung des Sprachumfangs.…

Weitere Zeitschriften

FESTIVAL Christmas

FESTIVAL Christmas

Fachzeitschriften für Weihnachtsartikel, Geschenke, Floristik, Papeterie und vieles mehr! FESTIVAL Christmas: Die erste und einzige internationale Weihnachts-Fachzeitschrift seit 1994 auf dem ...

ARCH+.

ARCH+.

ARCH+ ist eine unabhängige, konzeptuelle Zeitschrift für Architektur und Urbanismus. Der Name ist zugleich Programm: mehr als Architektur. Jedes vierteljährlich erscheinende Heft beleuchtet ...

Bibel für heute

Bibel für heute

BIBEL FÜR HEUTE ist die Bibellese für alle, die die tägliche Routine durchbrechen wollen: Um sich intensiver mit einem Bibeltext zu beschäftigen. Um beim Bibel lesen Einblicke in Gottes ...

BMW Magazin

BMW Magazin

Unter dem Motto „DRIVEN" steht das BMW Magazin für Antrieb, Leidenschaft und Energie − und die Haltung, im Leben niemals stehen zu bleiben.Das Kundenmagazin der BMW AG inszeniert die neuesten ...

Burgen und Schlösser

Burgen und Schlösser

aktuelle Berichte zum Thema Burgen, Schlösser, Wehrbauten, Forschungsergebnisse zur Bau- und Kunstgeschichte, Denkmalpflege und Denkmalschutz Seit ihrer Gründung 1899 gibt die Deutsche ...

cards Karten cartes

cards Karten cartes

Die führende Zeitschrift für Zahlungsverkehr und Payments – international und branchenübergreifend, erscheint seit 1990 monatlich (viermal als Fachmagazin, achtmal als ...

DULV info

DULV info

UL-Technik, UL-Flugbetrieb, Luftrecht, Reiseberichte, Verbandsinte. Der Deutsche Ultraleichtflugverband e. V. - oder kurz DULV - wurde 1982 von ein paar Enthusiasten gegründet. Wegen der hohen ...

FileMaker Magazin

FileMaker Magazin

Das unabhängige Magazin für Anwender und Entwickler, die mit dem Datenbankprogramm Claris FileMaker Pro arbeiten. In jeder Ausgabe finden Sie von kompletten Lösungsschritten bis zu ...