2012-07-03 2 views
7

, 우리는 내 질문이 <key value> 쌍 매장 어디를 수행하고, 설정하고 값을 얻기 위해 android.os.SystemProperties.set(String, String)android.os.SystemProperties.get(String, String)을 사용 할 수 있습니까? Sqlite 데이터베이스 또는 순수 텍스트 파일? 그렇다면 어떤 디렉토리를 찾을 수 있습니까? 안드로이드는 리눅스를 기반으로하기 때문에ansroid.os.SystemProperties는 키/값을 어디에 저장합니까? 우리 모두가 알다시피

+4

는 안드로이드 SDK에는'android.os.SystemProperties' 클래스가 없다. 이것은 Android의 내부 부분입니다. 전화가 부팅 될 때 – CommonsWare

+0

나는 우리가 그 디렉토리 프로그래밍 ... – aProgrammer

+0

현재 내가 Settings.Secure 테이블에 내 개인 재산을 저장,하지만 난 전화를 암호화하면 불행하게도, (ICS가이 기능을 지원)에 대한 액세스를 얻을 수 있다고 생각하지 않습니다 테이블 (/data/date/com.android.providers)이 아직 존재하지 않으므로 속성이 항상 0 (기본값)이므로 SystemProperties에 저장하려고합니다.이 방법이 괜찮은지 알 수 있습니다. ? – tonykwok

답변

2

는, 그런 파일이나 데이터베이스 또는 무언가에서 이러한 설정을 읽을 수있는 방법은 없습니다, 는 존재하지 않기 때문에. 장치를 부팅하는 동안

는, 커널은 메모리에 환경 변수의 목록을 저장합니다. 당신이 응용 프로그램 또는에 의해 시작됩니다

각 프로세스는 자신의 부모 프로세스에서 변수를 복제하고 자신의 변수를 정의 할 수 있습니다.

리눅스에서는 /proc/'pid'/environ에 저장된 가상 파일에 액세스 할 수 있습니다. 그러나 이것은 권장되지 않습니다. 2. 안드로이드 파일 시스템에 그런 파일이없는 것처럼 보입니다.

내 가정이 잘못 생각하는 경우 나 각 persist.xxx 속성에 대해 :)

4

을 알려 주시기 바랍니다, 그것은 속성의 이름을 가진 파일로/데이터/부동산에 저장합니다. 다른 비 지속 속성의 경우 공유 메모리에 저장됩니다. 질문을 읽고 궁금 분들을 위해

+1

이 대답은 대답 – hqt

+0

으로 표시되어야하지만,이 장소는 android init이 다른 프로세스에서 작성되었음을 유의하십시오. (나는 어디에서 발견하고있다). 그래서 수정 된 파일은 장치를 재부팅 할 때 재설정됩니다. – hqt

관련 문제