Android User Navigation (Vorschau)
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Devcorner<br />
Dasher, Teil II<br />
Dan Kosmayer, 123RF<br />
Alternative Texteingabe mit Dasher – Teil 2, Implementation<br />
Texteingabe<br />
als Spiel<br />
Teil 1 dieses Workshops<br />
aus <strong>Android</strong> <strong>User</strong> 01/<br />
2012 finden Sie auf der<br />
Heft-CD im PDF-Format.<br />
Im ersten Artikel haben<br />
wir die konkrete Umsetzung<br />
des Dasher-<br />
Sprachmodells vorgestellt.<br />
In diesem zweiten<br />
Artikel beschreiben wir<br />
eine Reihe kniffliger<br />
Prob leme, die wir bei<br />
der Portierung von<br />
Dasher auf <strong>Android</strong><br />
lösen mussten. Markus<br />
Gasser, Zdena Koukolíková,<br />
Carlo Nicola<br />
Im ersten Artikel dieser Serie haben wir<br />
erklärt, wie das PPM-4 Sprachmodell für<br />
Dasher in einer SQLite-Datenbank gespeichert<br />
wird. Dies wird mit einer<br />
DasherCorePPM genannten Java-Bibliothek<br />
realisiert, welche alle Dasher-Klassen beinhaltet,<br />
die für die Wahrscheinlichkeitsberechnung<br />
sowie für das Herstellen und Speichern<br />
von Sprachmodellen zuständig sind. In diesem<br />
Artikel konzentrieren wir uns nun gänzlich<br />
auf die Benutzer-Oberfläche des Dasher,<br />
die wir für <strong>Android</strong> entworfen und implementiert<br />
haben.<br />
Übersicht<br />
Dasher ist als <strong>Android</strong>-Texteingabe-Service<br />
(InputMethodService) implementiert. Der<br />
Service „Dasher for <strong>Android</strong> IME muss vor<br />
der ersten Anwendung beim Betriebssystem<br />
registriert werden, wie Abbildung 1 zeigt.<br />
Der Benutzer kann anschließend im Kontextmenü<br />
des Editors als Eingabemethode<br />
Dasher auswählen (Abbildung 2).<br />
Architektur<br />
Die Klasse DasherInputManager bildet das eigentliche<br />
Rückgrat unserer Applikation (Abbildung<br />
3). Diese erweitert die <strong>Android</strong>-<br />
Klasse InputMethodService und erlaubt die<br />
Kommunikation zwischen einem Texteditor-<br />
Feld (EditText), einer beliebigen Applikation<br />
und der Dasher-Input-Methode. Die Klasse<br />
DasherInputManager orchestriert den gesamten<br />
Prozess auf dem Mobilgerät. Sie ist als<br />
Service beim <strong>Android</strong>-System angemeldet<br />
und erhält callbacks, wenn wichtige Events<br />
geschehen (<strong>Android</strong>-Klasse InputMethodService).<br />
Um die Dasher UI zu zeichnen, wird<br />
die Klasse DasherInputView verwendet. Diese<br />
hat verschiedene Hilfsklassen (FrameManager,<br />
DasherViewPort und SurfaceRunLoop), welche<br />
Teilaufgaben der View übernehmen. Die<br />
Klassen SQLiteLanguageModel und SQLiteModelFactory<br />
ermöglichen den Zugriff auf die<br />
SQLite-Datenbank.<br />
Die Text-Eingabe wird in Form einer Soft<br />
Input View, DasherInputView genannt, auf<br />
dem Bildschirm dargestellt. Mithilfe dieser<br />
Klasse werden vom bereits eingetippten Text<br />
ausgehend die wahrscheinlichsten folgenden<br />
Buchstaben als Quadrate verschiedener Farben<br />
gezeichnet, wobei die Größe der Quadrate<br />
der relativen Probabilität der jeweiligen<br />
Symbole entspricht (Abbildung 4). Der Benutzer<br />
hat auf der Abbildung bis dato den<br />
SMS-Text This prob mithilfe von Fingerbewegungen<br />
eingegeben; der PPM-Algorithmus<br />
hat bereits die zwei wahrscheinlichsten<br />
Pfade vorausberechnet: This probably/e und<br />
This problem(s). Man könnte aber auch<br />
108<br />
März 2012<br />
<strong>Android</strong>-<strong>User</strong>.de