Minimalistic Text hält mich auf Trab

So, nach 2,5 Wochen melde ich mich hier auch mal wieder.

Minimalistic Text

Der Release von Minimalistic Text verlief sehr gut. Inzwischen sind es über 20000 Downloads und fast 10000 aktive Installationen. Die letzten Wochen hat sich auch einiges an Minimalsitic Text getan. Mehrsprachigkeit, Statischer Text, Wetterdaten und viele weitere Verbesserungen sind bereits eingeflossen.

Das kleine Spaßprojekt ist schon fast zur Feierabend-Arbeit mutiert und nimmt momentan fast jede Minute ein, die ich am Rechner verbringe. Es wollen E-Mails mit Fragen beantwortet, Forenbeiträge geschrieben und Erweiterungen entwickelt werden. Nichtsdestotrotz macht es mir nach wie vor Spaß die App weiterzubringen.

Ich konnte dank der App bereits sehr viel über die Android Entwicklung lernen und wie in anderen Programmiersprachen / auf anderen Plattformen auch, lernt man nie aus und ständig was Neues.

Wen man Annahmen über die API hinaus trifft…

Vor ein paar Tagen gab es Probleme mit Minimalistic Text auf bestimmten, neueren JPU-Roms für das Samsung Galaxy S I9000. Minimalistic Text hat einfach den Start verweigert, bzw. kein Widget mehr als „existent“ betrachtet.

Nach einigem Hin und Her und einer E-Mail Konversation mit einem betroffenen konnte ich dem Problem auf den Grund gehen:

Hintergrund ist die Tatsache, dass man in Android zwar Einstellungsdateien (Shared Preferences) anlegen, aber nicht mehr löschen kann. Jedes Widget in Minimalistic Text besitzt eine eigene Einstellungsdatei, so dass „Datenmüll“ übrig bleibt, wenn man ein Widget löscht. Minimalistic Text „weiß“ wo diese Einstellungsdateien liegen und löscht diese, wenn ein Widget vom Homescreen entfernt wird.

Außerdem hatte ich temporär das Phänomen, dass Widget-Ids zwar noch vorhanden waren, die zugehörigen Widgets aber schon längst vom Homescreen entfernt wurden. Um unnötiges Aktualisieren von nicht mehr sichtbaren Widgets zu verhindern prüft Minimalistic Text, ob ein Widget noch da ist, indem es prüft, ob es noch eine Einstellungsdatei dazu gibt.

Diese beiden „Features“ basieren darauf, dass die Einstellungsdateien unter „/data/data/de.devmil.miniamaltext/shared_prefs“ liegen.
Tun sie auch, bei (fast) allen mir bekannten Geräten. Nur eben nicht in den neuen Samsung ROMs.

Ist ja auch nichts verwerfliches. Die API der Shared Preferences oder des Contexts gibt auch keinen Pfad zu diesen Einstellungsdateien, so dass die Annahme des Speicherplatzes schon etwas gewagt war, wenn man bedenkt wie viele unterschiedliche Android Geräte es gibt.

Auf jeden Fall prüft Minimalistic Text jetzt, ob es das vermutete Verzeichnis überhaupt gibt. Wenn nicht, dann wird in den „mir doch egal“-Modus gegangen und jede WidgetId als vorhanden angenommen und die Einstellungsdatei nur geleert, nicht aber gelöscht.

Für das Samsung ROM habe ich inzwischen herausgefunden wo die Einstellungsdateien liegen, da ich jetzt auf die Version JPX (ebenfalls Android 2.2.1) gegangen bin und die das gleiche Verhalten zeigt.

Anscheinend hat Samsung aus Performance-gründen die Shared Preferences von „/data/data/<Package>/shared_prefs“ nach „/dbdata/databases/<Package>/shared_prefs“ umgezogen.

Die nächste Minimalistic Text Version wird dieses Verzeichnis auch in Betracht ziehen.

Schreibe einen Kommentar zu Peter Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

2 comments

  1. Peter sagt:

    Hello. I was wondering if you could change a word in the Hungarian language setting. For the number two, instead of „kettő“ as it is now, it should be „két“.
    „Kettő“ is like just the number 2, but „két“ is like 2 of something, like 2 apples, or 2 minutes, so that’s how we say it’s 2 o’clock: „két“. Really great app!
    Thank you!

  2. Peter sagt:

    On a second thought, leave it as it is, because if someone just wants 2:32, not 2 o’clock 32 minutes, then it’s fine as it is. Maybe put in an alternative…