2012-07-03 13 views
7

Como todos sabemos, podemos usar el android.os.SystemProperties.set(String, String) y android.os.SystemProperties.get(String, String) para establecer y obtener valores, mi pregunta es ¿dónde se almacenan estos pares <key value>? Base de datos Sqlite o un archivo de texto puro? Si es así, ¿qué directorio podemos encontrar?donde ansroid.os.SystemProperties almacena sus claves/valores?

+4

Para aquellos que leen la pregunta y se preguntan, no existe la clase 'android.os.SystemProperties' en el SDK de Android. Esta es una parte interna de Android. – CommonsWare

+0

No creo que podamos tener acceso a ese directorio programáticamente ... – aProgrammer

+0

actualmente almaceno mi propiedad privada en Settings.Secure table, pero desafortunadamente, si encripto el teléfono (ics apoya esta característica), cuando el teléfono está arrancando up, la tabla (/data/date/com.android.providers) no existe todavía, por lo que la propiedad siempre es igual a 0 (valor predeterminado), por lo que quiero almacenarlo en SystemProperties, cualquiera sabe si esta manera estará bien ? – tonykwok

Respuesta

2

Dado que Android está basado en Linux, no hay forma de leer estos ajustes desde un archivo o base de datos o algo así, porque no existe.

Al arrancar su dispositivo, el núcleo almacena la lista de variables de entorno en la memoria.

Cada proceso, iniciado por una aplicación o por usted, está clonando las variables de su proceso principal y puede definir sus propias variables.

En Linux puede acceder a un archivo virtual almacenado en /proc/'pid'/environ pero 1. esto realmente no es recomendable y 2. no parece que exista tal archivo en el sistema de archivos android.

Si estoy mal con mi suposición, por favor hágamelo saber :)

4

Para cada propiedad persist.xxx, se almacena en/data/propiedad como un archivo con el nombre de la propiedad. Para otras propiedades no persistentes, se almacena en una memoria compartida.

+1

esto se debe marcar como respuesta aceptada – hqt

+0

, pero tenga en cuenta que este lugar está escrito por otro proceso cuando Android init. (Estoy descubriendo dónde). entonces esos archivos modificados se restablecerán al reiniciar el dispositivo. – hqt

Cuestiones relacionadas