2012-07-03 11 views
7

Wie wir alle wissen, können wir die android.os.SystemProperties.set(String, String) und android.os.SystemProperties.get(String, String) zum Einstellen und Abrufen von Werten verwenden, meine Frage ist, wo diese <key value> Paare speichern? SQLite-Datenbank oder eine reine Textdatei? Wenn ja, in welchem ​​Verzeichnis können wir sie finden?wo speichert ansroid.os.SystemProperties seine Schlüssel/Werte?

+4

Für diejenigen, die die Frage lesen und sich wundern, gibt es im Android SDK keine 'android.os.SystemProperties' Klasse. Dies ist ein interner Teil von Android. – CommonsWare

+0

Ich glaube nicht, dass wir programmgesteuert auf dieses Verzeichnis zugreifen können ... – aProgrammer

+0

Zur Zeit speichere ich meine private Eigenschaft in der Settings.Secure-Tabelle, aber leider, wenn ich das Telefon verschlüssle (ics unterstützt diese Funktion), wenn das Telefon bootet up, die Tabelle (/data/date/com.android.providers) existiert noch nicht, also ist die Eigenschaft immer gleich 0 (Standardwert), also möchte ich sie in SystemProperties speichern, jeder weiß, ob diese Art in Ordnung ist ? – tonykwok

Antwort

2

Weil Android auf Linux basiert, gibt es keine Möglichkeit, diese Einstellungen aus einer Datei oder Datenbank oder ähnlichem zu lesen, , weil es nicht existiert.

Während Sie Ihr Gerät booten, speichert der Kernel die Liste der Umgebungsvariablen im Speicher.

Jeder Prozess, der von einer Anwendung oder von Ihnen gestartet wird, klont die Variablen aus seinem übergeordneten Prozess und kann seine eigenen Variablen definieren.

In Linux können Sie auf eine virtuelle Datei zugreifen, die in /proc/'pid'/environ gespeichert ist, aber 1. das ist wirklich nicht zu empfehlen und 2. es sieht nicht so aus, dass es eine solche Datei im android Dateisystem gibt.

Wenn ich falsch bin mit meiner Annahme, mich bitte :)

4

Für jede persist.xxx Eigenschaft wissen lassen, ist es unter/data/Eigenschaft als Datei mit dem Namen der Eigenschaft gespeichert. Für andere nicht persistente Eigenschaften wird es in einem gemeinsamen Speicher gespeichert.

+1

Dies sollte als angenommene Antwort – hqt

+0

markiert sein, aber beachten Sie, dass dieser Ort von einem anderen Prozess geschrieben wird, wenn Android init. (Ich finde heraus wo). Diese geänderten Dateien werden beim Neustart des Geräts zurückgesetzt. – hqt