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.