25.02.2014 Aufrufe

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!