Ansprechende Oberflächen auf mobilen Endgeräten

Mit den Bordmitteln von Windows Mobile ist es kaum möglich, ansprechende Oberflächen umzusetzen. Ergebnisse mit den Standard-GUI-Elementen haben Windows 2.0 Niveau.

Entwickler, die vor diesem Problem stehen, bekommen mit den AlphaMobileControls einen gutes Hilfsmittel an die Hand.

Die AlphaMobileControls sind eine Bibliothek von Komponenten die mittels Alpha-Blending dargestellt werden. Damit sind der Phantasie von Desingern fast keine Grenzen gesetzt – und die Entwickler können Sie umsetzen. Auf der Homepage der AlphaMobileControls finden sich zwei einfache Beispiel-Screenshots.

Beim Einsatz der Bibliothek bin ich auf zwei Probleme gestoßen:

  1. Die GetImageMethode hat unter Windows Mobile 5 einen Fehler beim Auslesen von Daten aus PNG-Bildern
    http://support.microsoft.com/?scid=kb%3Ben-us%3B923812&x=15&y=14
    PNG-Bilder, die als externe Dateien vorliegen, konnte ich bei meiner Entwicklung fehlerfrei darstellen. Sobald diese allerdings als Resource in die Applikation eingebettet, so tritt der im Microsoft-Artikel beschriebene Fehler (0×80004005) auf.
    Alternativ könnte man auf GIF-Dateien für die Darstellung wechseln – mit dem Nachteil, dass kein echtes Alpha-Blending möglich ist.
  2. Die AlphaMobileControls arbeiten bei der Darstellung mit Double-Buffering um ein Flackern zu verhindern.
    Diese benötigen bei einer Vollbild-Applikation von 320×240 Pixel ca. 600 KByte (bei 32 Bit Farbtiefe) – und zwar pro Dialog.
    Der Speicherbedarf für eine komplexere Applikation steigt damit ziemlich schnell an.

    Werden ausschließlich Forms gleicher Größe verwendet – und wird immer genau ein Dialog dargestellt – so reicht  im AlphaContainer die Variable _backBuffer statisch zu machen, so dass diese von allen Dialogen verwendet wird:

         ///

    Back buffer used for double buffering.


         private static Bitmap _backBuffer;

Die Ergebnisse lassen sich auf jeden Fall sehen!

Profiling im Compact Framework auf mobilen Endgeräten

PDAs und Smartphones sind von Natur aus hinsichtlich der Hardware schwach besetzt. Um so wichtiger ist es, bei der Entwicklung von Programmen, die Performance-Engpässe heraus zu finden. Durch den kostenlosen Profiler der Firma EQATEC ist nun ein echtes Profiling für Applikationen möglich, die für das Compact Framework (d.h. nur für managed code Module) entwickelt wurden.

Die Anwendung ist hierbei denkbar einfach.

  1. Binary (Applikation, DLL) wie gewohnt mit SharpDeveleop, Developer Studio, etc erstellen
  2. die Binaries mit dem EQATEC Profiler instrumentarisieren. Diese werden dabei 40-50% größer
  3. Programm auf das Mobile Endgerät kopieren und dort ausführen (das Programm läuft dabei 20-25% langsamer ab)
  4. nach Programmende wird eine XML-Datei mit den gemessenen Werte auf dem PDA abgelegt
  5. diese wieder auf den PC kopieren und das Ergebnis mit Hilfe des EQATEC Profiler Viewer analysieren

Einfach ein klasse Tool. – oder, um einen Entwickler von OpenNETCF zu zitieren: “Endlich!”

Wie so häufig beim Profilen war auch bei meinem ersten Echteinsatz der Bottle-Neck nicht an der Stelle, wo ich ihn vermutet hatte ;)