2012-07-03 9 views
7

私たちは皆知っているように、値を設定したり取得したりするのにandroid.os.SystemProperties.set(String, String)android.os.SystemProperties.get(String, String)を使うことができます。私の質問はどこにありますか?<key value>ペアストアはありますか? Sqliteデータベースまたは純粋なテキストファイル?もしそうなら、どのディレクトリを見つけることができますか?ansroid.os.SystemPropertiesはキー/値をどこに保存しますか?

+4

問題を読んで疑問に思う人のために、Android SDKには 'android.os.SystemProperties'クラスはありません。これはAndroidの内部部分です。 – CommonsWare

+0

私はそのディレクトリにプログラムでアクセスできるとは思わない... – aProgrammer

+0

現在、私は私のプライベートプロパティをSettings.Secureテーブルに保存していますが、残念ながら電話機を暗号化すると(電話機はこの機能をサポートしています)テーブル(/data/date/com.android.providers)はまだ存在しないので、プロパティは常に0(デフォルト値)に等しいので、SystemPropertiesに格納したいので、誰でもこの方法が問題ないかどうかは分かります? – tonykwok

答えて

2

AndroidはLinuxをベースにしているため、ファイルやデータベースなどからこれらの設定を読み取る方法はありません。存在しないため、です。

デバイスを起動している間、カーネルは環境変数のリストをメモリに保存します。

アプリケーションまたはユーザーによって開始される各プロセスは、親プロセスから変数を複製し、独自の変数を定義することができます。

Linuxでは、/proc/'pid'/environに格納されている仮想ファイルにアクセスできますが、これは本当に推奨されていません。2. Androidファイルシステムにそのようなファイルがないように見えます。

私は私の仮定が間違っていた場合、私に知らせてください:)

4

各persist.xxx財産のためには、プロパティの名前を持つファイルとして下/データ/プロパティ保存されています。他の非永続プロパティの場合、共有メモリに格納されます。

+1

これは受け入れられた回答 – hqt

+0

としてマークする必要がありますが、この場所はandroid initが別のプロセスによって書き込まれることに注意してください。 (私はどこを見つけるか)。変更されたファイルは、デバイスの再起動時にリセットされます。 – hqt

関連する問題