Entwicklung Mobiler Anwendungen, Praktikum 1

Transcrição

Entwicklung Mobiler Anwendungen, Praktikum 1
Entwicklung Mobiler Anwendungen, Praktikum 1
von Klaus Schwarzkopf
und Bastian Baist
705519
705496
Aufgabe: Midlet mit dem Emulator ausführen, Benutzerschnittstelle
Starten Sie das Wireless Toolkit (Symbol WTK2.5.1 auf dem Desktop) und
öffnen Sie das Projekt Demos (Open Project); wählen Sie als zu emulierendes
Gerät das DefaultColorPhone. Mit Build wird die Midlet-Suite übersetzt und
präverifiziert. Mit Run wird der Emulator gestartet, um die Midlets einer MidletSuite auszuführen.
Untersuchen Sie die Benutzerschnittstelle des Midlets Colors:
Welche Tasten werden zur Steuerung des Midlets verwendet, wie verhalten
sich die Softbuttons?
Steuerkreuz, Exit und Menu mit den Softbuttons
Aufgabe: Struktur eines Projekts
Klären Sie die Dateistruktur des Projekts demos (.../wtk2.5.1/apps/demos).
Erläutern Sie die Inhalte folgender Ordner: bin, classes, res, src, tmpclasses,
tmplib.
bin:
Batchdateien, jar, jar und Manifest.mf
classes:
preverifizierte Klassen
res:
Bilder Texte
src:
Quellcode
tmpclasses:
Kompilierte aber noch nicht preverifiziert
tmplib:
zum kompilieren der Bibliotheken
Welche Informationen enthält die Manifest-Datei?
•
•
•
Spezielle Textdatei mit den Eigenschaftendes Midlets und den zugehörigen
Werten
Name, Icon und Startklasse jedes Midlets der Mitletsuite sind verzeichnet
Die Version der benötigten CLDC und MIDP APIs sind dokumentiert
Wodurch unterscheiden sich die Dateien in tmpclasses und in classes?
Dateien im classes Verzeichnis sind preverifiziert und im Verzeichnis
tmpclasses sind nur kompiliert.
Wann werden diese beiden Ordner im Build-Prozess benötigt?
Auf welche Ordner greifen das Build-Kommando und auf welche das JARWerkzeug zu?
Editieren (.java src/) -> javac (.class tmpclasses/) -> preverify (.class classes/) > jar (.jar .jad bin/)
Welche Dateien werden für ein Mobile Deployment benötigt?
.jar und .jad Dateien
Aufgabe: Zugriff auf Quelltext, Übersetzen und Packen
Verändern Sie den Quelltext von color.java (im Ordner chooser). Verwenden Sie
dazu einen geeigneten Editor und übersetzen Sie z.B. die mit den Softkeys
verbundenen Kommandos in eine andere Sprache (..new Command
("Fertig"..) . Versuchen Sie, die Details zum Event-Handling zu verstehen: Wo
wird festgelegt, dass beim Start eines Midlets das Kommando Launch auf den
rechten Softbutton gelegt wird?
Im Handy (Emulator).
Erzeugen Sie die neue Version mit Hilfe des Kommandos des Wireless Toolkits:
Build. Überprüfen Sie mit Run das Ergebnis.
Welche Funktion hat das Kommando Project / Clean? Auf welche Dateien und
Ordner wirkt dieses Kommando?
clean löscht die temporären Dateien in den Verzeichnissen bin (.jar), classes,
tmpclasses und tmpsrc.
Was macht Build, was macht Package? Wann wird das Kommando Package
gebraucht?
Build:
Package:
Quellcode übersetzen
jar und jad Dateien erstellen
Was bedeutet obfuscated Package?
Verkleinert die class Dateien.
Wählen Sie im Menü Project des Wireless Toolkits die Option Run via OTA.
Erläutern Sie den Download- und Installationsprozess. Welche Möglichkeiten
bietet dieser Prozess?
AMS steuert den Installationsprozess. Zuerst wird die JAD-Datei vom Server
geladen. In ihr ist die Manifestdatei und weitere Informationen, wie die URL der
Jar Datei. Diese Jar Datei wird danach vom Server geholt und installiert. Die
AMS schickt, wenn der Installationsprozess erfolgreich war eine Meldung an
den Notification Server.
Löschen Sie in der Jad-Datei die URL mit dem Verweis auf die Jar-Datei. Was
geschieht, wenn Sie den Download via OTA wiederholen?
Nach dem Löschen der URL kann die Anwendung nicht mehr installiert werden.
Aufgabe: Informationen über die Midlet-Suite beschaffen und
festlegen
Mit dem Kommando Settings erhält man Angaben zu den Eigenschaften der
Midlet-Suite und kann diese auch ändern.
Wozu werden die Angaben MIDlet-Jar-Size und MIDlet-Jar-URL auf der
Karteikarte Required gebraucht?
MIDlet-Jar-Size:
MIDlet-Jar-URL:
Benötigter Platz auf dem Handy
Verweis auf die Jar-Datei
Welche Bedeutung haben die Informationen auf der Karteikarte MIDlets?
Name des MIDlets und das verwendete Icon und die Startklasse.
Wann wird der Wert von MIDlet-Jar-Size aktualisiert?
MIDlet-Jar-Size wird beim packaging aktualisiert.
Beziehen Sie sich hier auf die Midlet-Suite Demos.
Welche Einträge sind optional?
Nur der Icon Pfad wird nicht benötigt.
Verändern oder löschen Sie Einträge und beobachten Sie das Ergebnis, wenn
Sie die Midlet-Suite erneut zum Ablauf bringen.
Wie werden die Jar- und die Jad-Datei erzeugt? Wann werden deren Namen
festgelegt?
Jad und Jar Dateien werden beim packaging erstellt und ihre Namen werden bei
der Projekterzeugung festgelegt.
Wer vergibt den Namen Colors für Midlet-1? Können Sie den Namen von
Midlet-1 ändern? Was passiert, wenn Sie diesen Namen löschen?
Der Entwickler legt den Namen für Colors in Settings unter MIDlets fest und der
Name kann geändert, aber nicht gelöscht werden.
Wo und wann erscheint dieser Name?
Der Name erscheint beim Auswählen des MIDlets auf dem Handy.
Wer braucht den Pfad /Icons/ColorChooser.png?
Der Pfad wird beim Zusammenpacken benötigt.
Wie heißt die Startklasse für das Midlet Colors?
Die Startklasse heißt example.chooser.Color.
Wo findet man diese Klasse? Wie hängen Dateiname und Name der Klasse
zusammen?
Pfad
src/example/choser/
Color.java
Klassenname
= example.chooser
= Color
Welche Konsequenzen hat es, wenn Sie den Namen der Startklasse im
Quelltext ändern?
Compilerfehler
Wie kann man ein weiteres Midlet in der Midlet-Suite registrieren?
Settings -> MIDlets anlegen und ein neuer Ordner und Klasse erstellen.
Was bedeuten die Einträge unter der Karteikarte Permissions?
Die noch benötigten Klassen für die Anwendungen, z.B. Sockets.
Aufgabe: Projekt anlegen
Starten Sie KToolbar und legen Sie danach ein neues Projekt an. Wählen Sie
hier einen beliebigen Projektnamen. Dieser soll keine sprachspezifischen
Zeichen wie Umlaute enthalten. Einen Namen für die Startklasse können Sie
bereits jetzt festlegen oder später über die Settings.
Fügen Sie existierende Midlet-Quellen (z.B. BubbleSort aus den Beispielen zu
EMA02) in den Ordner für die Quellen ein und starten Sie den
Übersetzungsprozess. Klären Sie dann folgende Fragen:
Wie erreicht man, dass die Class-Dateien der einzelnen Midlets in getrennten
Unterordnern abgelegt werden?
Die Class-Dateien werden manuell in den src Ordner abgelegt.
Machen Sie sich das Konzept der Packages klar!
Welche Informationen müssen zur Verfügung gestellt werden, damit die
Application Management Software die Midlet-Suite anzeigt und die einzelnen
Midlets starten kann?
Die Manifestdatei verwaltet die einzelnen Mitlets der Suite. Dort wird auch der
Name und die Startklasse des MIDlets angelegt.
Wie lässt sich einem Midlet ein Logo zuordnen?
Unter Settings->MIDlets kann man ein Logo zuordnen.
Wie wird dieses Logo zur Laufzeit gefunden?
Das Logo ist in der mit den anderen Klassen und Ressourcen in der jar Datei.
Welche Grafikformate werden unterstützt?
png
Aufgabe: Manifestdatei, Jad- und Jar-Datei, Signatur
Wo findet man die genannten Dateien?
/bin/ Ordner
Zu welchem Zweck werden diese Dateien gebraucht und in welcher
Reihenfolge werden sie erstellt?
Jad
Jar
Manifest
Informationen für das Handy mit Größe der Applikation
Container für die MIDlets
Informationen für das Handy
Manifest, Jad und zuletzt die Jar Datei.
Wodurch unterscheiden sich Manifest- und Jad-Datei?
Die Jad-Datei ist um die Optionen MIDlet-Jar-Size und MIDlet-Jar-URL erweitert.
Wenden Sie ein Unzip-Werkzeug auf eine Jar-Datei an. Ändern Sie dazu die
Endung der Datei auf zip. Welchen Inhalt hat die Jar-Datei?
Klassen, Bilder(Icons) und Manifest.
Die Option Sign im Menüpunkt Project erlaubt das Signieren von Anwendungen.
Versuchen Sie die Eigenschaften einer Signatur zu erklären! Was wird signiert
und wo ist die Signatur zu finden?
Jar Datei wird signiert und die Signatur befindet sich in der Jad Datei.
Wie läuft der Signaturprozess ab?
Es wird ein Schlüsselpaar erzeugt. Mit dem privaten Schlüssel wird die Datei
verschlüsselt. Mit den Hash-Algorithmen(SHA1,md5) wird eine Signatur erzeugt
und gespeichert. Mit dem öffentlichen Schlüssel kann die Datei entschlüsselt
werden, wenn zuvor sichergestellt wurde, dass die Hashs stimmen.
Welche Algorithmen werden verwendet?
SHA1, md5
Wozu braucht man Keys und Certificates?
Ein Zertifikat wird benötigt, um den Eigentümer eines öffentlichen Schlüssel zu
bestätigen.
Aufgabe: Performance Tools verwenden
Das Menu Edit / Preferences stellt verschiedene Verfahren zur Überwachung
des Ablaufs eines Midlets zur Verfügung.
Schalten Sie in der Category Monitor verschiedene Trace-Modi ein. Stellen Sie
fest, wann Garbage Collection stattfindet und kontrollieren Sie das Laden der
Klassen sowie den Aufruf der Methoden.
Aktivieren Sie die Speicherüberwachung (Enable Memory Monitor) und stellen
Sie die Größe des Heap auf 512 kB ein (Category Storage). Starten Sie
BubbleSort und beobachten Sie den Speicherbedarf in Abhängigkeit der Zeit.
Kann man die Aktivität des Garbage Collectors erkennen?
Spätestens wenn der Speicher voll ist, wird er ausgeführt.
Kann ein Midlet den Garbage Collector willkürlich starten?
Ja, mit gc()
Lässt sich erkennen, welche Objekte vorrangig den Heap belegen?
java.util.VectorEnumerator
Aufgabe: Http-Kommunikation mit Netzwerkmonitor überwachen und
protokollieren
Verpacken Sie eine existierende Midletsuite (z.B. Demos) in eine Jar-Datei.
Aktivieren Sie danach via Edit / Preferences den Netzwerkmonitor (Enable
Network Monitoring). Übertragen Sie nun die Midletsuite per OTA-Download auf
das Zielgerät (Emulator).
Dokumentieren und erläutern Sie die vom Netzwerkmonitor protokollierten
Nachrichten beim Zugriff der Application Management Software auf die
verschiedenen URLs.
Seite mit der MIDlet-Suite wird vom Server geholt.
Demos.jad->GO
Demos.jad vom Server laden.
Bestätigen.
Demos.jar vom Server laden.
Optional: Signieren Sie die Jar-Datei vor der Übertragung. Das Zertifikat des
Ausstellers wird dann auf dem mobilen Endgerät zur Kontrolle angezeigt.

Documentos relacionados