Warum gibt es zwei Einstellungs-Apps, Einstellungen und Einstellungsspeicher

Auf meinem Galaxy Nexus mit 4.2.1 sehe ich zwei Einstellungen-Apps unter Einstellungen > Apps. Einer ist Name Settings (28 KB) und der andere ist Settings Storage (520 KB). Beide haben die Version 4.2.1-533553. Ist der Speicher für die Handhabung des Bildschirms Einstellungen > Speicher geeignet? Wenn ja, warum gibt es dafür eine separate App? Wenn nicht, wofür ist es?

Antworten (1)

Settings Storage ist technisch gesehen eigentlich eine interne App, die das Inhaltsanbieter- Framework für die Einstellungen selbst verwaltet . Es registriert sich auch selbst beim Hochfahren von Android.

Der Datenspeicher-Handler zur Unterstützung des Einstellungsspeichers verwendet tatsächlich eine Sqlite-Datenbank , die gemeinfrei ist und kostenlos verwendet werden kann.

Diese Datenbank ist erforderlich, um die Einstellungen für die Aktualisierung und den Abruf über den internen Inhaltsanbieter der Einstellung zu halten, der durch das ROM hindurch in sich integriert ist, also alles, was über Menü > Einstellungen zu sehen ist, „mit dem Inhaltsanbieter sprechen“ und so weiter übernimmt an sich den Sicherungsspeicher.

Außerdem ist dieser eigene Inhaltsanbieter der Einstellungen tatsächlich global im gesamten ROM, unabhängig von der Android-Version, sodass die System-Apps und Benutzer-Apps dies verwenden können, um sie zu überprüfen, indem sie sie abfragen und entsprechend handeln.

Daher das "Sehen von zwei Einstellungs-Apps" ....

Die meisten Apps, die ich gesehen habe, und einige, die ich erstellt habe, kommunizieren direkt mit der SQLite-Datenbank. Haben Sie eine Ahnung, welchen Vorteil es hat, die Datenbank in eine separate App zu ziehen?
Die Einstellungen sind Teil des ROM an sich (und streng genommen keine separate App). Wenn Sie auf Menü > Einstellungen tippen, wird alles darin in der Sicherungsdatenbank gespeichert. Insbesondere haben die Einstellungen ihren eigenen Inhaltsanbieter. Einige Apps benötigen einen Backing Store und andere stellen keinen eigenen Inhaltsanbieter her und kommunizieren daher direkt mit Sqlite, abhängig. Aber um beim Kontext deiner Frage zu bleiben...