|
Vorwort |
6 |
|
|
Inhaltsverzeichnis |
8 |
|
|
1 Grundlagen |
12 |
|
|
1.1 Betriebssysteme für Smartphones |
12 |
|
|
1.1.1 Was ist ein Smartphone? |
12 |
|
|
1.1.2 Betriebssystemanforderungen |
14 |
|
|
1.1.3 Die Geschichte von Symbian |
15 |
|
|
1.1.4 Symbian-Anwendungen |
17 |
|
|
1.2 Entwicklungsumgebungen: Series- 60- und UIQ- 7.0- SDK |
19 |
|
|
1.2.1 Anforderungen an ein SDK |
19 |
|
|
1.2.2 Tools |
20 |
|
|
1.2.3 Quellcode-Kompatibilität |
23 |
|
|
1.2.4 Laufwerke |
24 |
|
|
1.3 Übungen: SDK, Application Wizard, Emulator |
26 |
|
|
1.3.1 Allgemeines |
26 |
|
|
1.3.2 Installation des Series-60-SDK |
27 |
|
|
1.3.3 Anwendungen mit dem Application Wizard |
30 |
|
|
1.3.4 Kompilieren und Ausführen der Anwendung |
33 |
|
|
1.3.5 Das SDK-Help |
35 |
|
|
2 Softwareentwicklung mit dem Symbian-SDK |
36 |
|
|
2.1 Der Entwicklungsprozess |
37 |
|
|
2.1.1 Beteiligte Dateien und Dateitypen in der Übersicht |
37 |
|
|
2.1.2 Der Produktionsprozess für Anwendungen |
39 |
|
|
2.1.3 Signieren von ».sis«-Dateien |
44 |
|
|
2.2 OO-Entwicklung mit Symbian |
46 |
|
|
2.2.1 C++ und die Maschinen-Architektur |
48 |
|
|
2.2.2 Coding-Konventionen |
52 |
|
|
2.2.3 Fundamentale Datentypen |
55 |
|
|
2.3 Unterschiede zwischen Series 60 und UIQ |
56 |
|
|
2.4 Das UIQ-SDK |
56 |
|
|
2.5 Übungen |
60 |
|
|
2.5.1 Die »Hello World«-Konsolenanwendung |
60 |
|
|
2.5.2 »Hello World«-GUI für Series 60 |
67 |
|
|
2.5.3 »Hello World«-GUI für UIQ |
70 |
|
|
3 Struktur des Betriebssystems und Datentypen |
80 |
|
|
3.1 Aufbau von Symbian OS |
80 |
|
|
3.1.1 Hardware |
80 |
|
|
3.1.2 Software |
82 |
|
|
3.1.3 Mikrokernel |
89 |
|
|
3.1.4 Systemkomponenten |
90 |
|
|
3.1.5 Gerätetreiber |
93 |
|
|
3.1.6 Speicherverwaltung |
94 |
|
|
3.1.7 Fehlerbehandlung |
98 |
|
|
3.2 Text-Deskriptoren |
102 |
|
|
3.2.1 Deskriptoren im Speicher |
103 |
|
|
3.2.2 Deskriptor-Klassen |
104 |
|
|
3.2.3 Deskriptor-Funktionen |
105 |
|
|
3.3 Übung: Deskriptoren in Symbian OS |
106 |
|
|
3.3.1 Anlegen von Strings in C |
106 |
|
|
3.3.2 Anlegen von Strings in Symbian |
107 |
|
|
3.3.3 Weitere Funktionen von Deskriptoren |
108 |
|
|
3.3.4 Ändern von Deskriptoren |
109 |
|
|
3.3.5 Vollständiger Programmcode der Übung |
110 |
|
|
4 Benutzerführung |
112 |
|
|
4.1 Ressourcedateien |
112 |
|
|
4.1.1 Allgemeines |
112 |
|
|
4.1.2 Die »HelloWorld.rss«-Datei |
113 |
|
|
4.2 Das Application-Framework anhand eines Beispiels |
116 |
|
|
4.2.1 Projektdefinition .mmp |
117 |
|
|
4.2.2 AIF-Ressource |
119 |
|
|
4.2.3 User-Interface-Architektur |
120 |
|
|
4.2.4 Die Basisklassen von »Hello World« |
122 |
|
|
4.2.5 Die Klassenhierarchie |
123 |
|
|
4.2.6 Die Klassen im Detail |
125 |
|
|
4.3 Die verschiedenen GUI-Controls der Series-60-SDK |
134 |
|
|
4.3.1 Panes |
134 |
|
|
4.3.2 Listen |
141 |
|
|
4.3.3 Dialoge |
146 |
|
|
4.3.4 Nachrichten |
148 |
|
|
4.3.5 Formulare |
150 |
|
|
4.3.6 Editoren |
151 |
|
|
4.4 Die View-Architektur |
152 |
|
|
4.4.1 View-Klassen |
152 |
|
|
4.4.2 Views erzeugen und aktivieren |
154 |
|
|
4.4.3 Wechseln des Views |
157 |
|
|
4.4.4 Ereignisabwicklung und aktive Objekte |
158 |
|
|
4.5 Oberflächenprogrammierung unter UIQ |
164 |
|
|
4.5.1 View-Klassen |
164 |
|
|
4.5.2 Views wechseln |
165 |
|
|
4.5.3 UIQ-Controls |
167 |
|
|
4.6 Übung: Views und Controls |
176 |
|
|
4.6.1 Einführung |
176 |
|
|
4.6.2 Aufgabe: Hinzufügen eines dritten Tabs |
179 |
|
|
4.6.3 Zusammenfassung der Übung |
188 |
|
|
5 Anwendungen mit persistenten Daten |
190 |
|
|
5.1 Fileserver |
190 |
|
|
5.1.1 Klassen |
190 |
|
|
5.1.2 Ablauf |
192 |
|
|
5.1.3 Funktionen |
192 |
|
|
5.1.4 Beispiel |
193 |
|
|
5.2 Streams und Stores |
193 |
|
|
5.2.1 Streams im Speicher |
194 |
|
|
5.2.2 Persistente Speicher |
195 |
|
|
5.3 Testen und Debuggen |
198 |
|
|
5.3.1 Testpläne und Testfälle |
199 |
|
|
5.3.3 Test-Tools und Debugging-Tools |
202 |
|
|
5.3.4 Remote Debugging mit dem CodeWarrior |
204 |
|
|
5.4 Übung: Listen |
212 |
|
|
6 Die Kommunikationsarchitektur |
218 |
|
|
6.1 Übersicht über die Architektur |
218 |
|
|
6.2 Die Komponenten der Kommunikationsarchitektur |
222 |
|
|
6.2.1 Server, Module, Protokolle und Datenbank |
222 |
|
|
6.2.2 Client-Server-Beziehung |
225 |
|
|
6.2.3 Kommunikationsschnittstellen |
229 |
|
|
6.3 Kommunikationsanwendungen |
232 |
|
|
6.3.1 Socket-Server |
232 |
|
|
6.3.2 Bluetooth |
235 |
|
|
6.3.3 Messaging |
247 |
|
|
6.4 Übung: Bluetooth-Chat mit dem Series 60 |
254 |
|
|
6.4.1 Aufsetzen der Bluetooth-Testumgebung |
255 |
|
|
6.4.2 Das Beispiel BTPointToPoint |
258 |
|
|
6.4.3 CMessageServer |
265 |
|
|
6.4.4 Der Bluetooth-Chat |
284 |
|
|
Anhang |
292 |
|
|
Abkürzungen |
292 |
|
|
Literatur |
296 |
|
|
Stichwortverzeichnis |
298 |
|