Linux
Android property 설정하는 3가지 방법.
raulyo
2014. 7. 30. 10:02
안드로이드에서 프로퍼티를 설정하는 방법에 여러가지가 있겠지만 그 중에 세가지를 정리하려고 한다.
1) Property 설정.
일반저인 안드로이드 어플에서 Property를 설정하는 방법으로 아래와 같이 할 수 있다.
위와 같이 할 경우 아래와 set.properties 가 다음과 같이 생성된다.
2) system properties 설정
System property를 이용하는 방법으로 별도의 파일을 만들 필요없이 아래와 같이 등록하고 가져올 수 있다.
3) Dalvik property 이용.
adb shell 을 하고 접근해서 프로퍼티를 만들면 그 프로퍼티를 가져다가 쓸수 있다.
#getprop property_name //프로퍼티를 가져오는 것.
#setprop property_name 300 //프로퍼티를 설정하는 것.
full build를 할 경우 makefile 에서 설정가능하다고는 하는데 실제 해보지는 않았다.
그러면 이것을 어떻게 가져오는가?
사실 개발자용 SDK 에서는 가져오기 위한 API가 없다. 이는 framework에서의 설정이기 때문에
full build 시 포함되는 어플리케이션이 아니면 가져올 수 없기 때문이다.
그럼에도 설정하는 것이 필요하다면 아래와 같이 full source 에서 SystemProperties 파일을 가져와 import를 시키면 된다. 이때 android.os 패키지도 똑같이 만들어 두어야 한다. 이 파일은 컴파일시 링크를 위해서 필요한 것으로 실제 동작은 framework 내에 SystemProperties가 한다.
import android.os.SystemProperties;
String properties = SystemProperties.get("property_name");
1) Property 설정.
일반저인 안드로이드 어플에서 Property를 설정하는 방법으로 아래와 같이 할 수 있다.
private static Properties mProperty;
private static final String PROPERTY_NAME = "max_person_count";
private static final String PROPERTY_FILE = "/data/data/com.test.test/set.properties";
private static File mPropertyFile = null;
private static FileInputStream mFIs = null;
private static FileOutputStream mFOs = null;
mProfile = new File(PROPERTY_FILE);
mProperty = new Properties();
Log.e("test", "Start getMaxPersonCountProperty222");
try {
if(!mProfile.exists()) {
mPropertyFile.createNewFile();
mFIs = new FileInputStream(
mPropertyFile);
mProperty.load(mFIs);
mFOs = new FileOutputStream(
mPropertyFile);
mProperty.setProperty(PROPERTY_NAME, "500");
mProperty.store(mFOs, "maximum person num in db");
Log.e("test", " Create profile ");
} else {
mFIs = new FileInputStream(
mPropertyFile);
mProperty.load(mFIs);
String proValue = mProperty.getProperty(PROPERTY_NAME);
Log.e("test", " Get property " + PROPERTY_FILE + " : " + proValue);
}
} catch(Exception e) {
Log.e("test", " Load or Create error " + e.getMessage());
}
|
위와 같이 할 경우 아래와 set.properties 가 다음과 같이 생성된다.
#maximum person num in db
#Wed Feb 01 07:54:12 GMT+00:00 2012
max_person_count=500 |
System property를 이용하는 방법으로 별도의 파일을 만들 필요없이 아래와 같이 등록하고 가져올 수 있다.
String properties = System.getProperty("property_name"); System.setProperty("property_name", "value"); |
3) Dalvik property 이용.
adb shell 을 하고 접근해서 프로퍼티를 만들면 그 프로퍼티를 가져다가 쓸수 있다.
#getprop property_name //프로퍼티를 가져오는 것.
#setprop property_name 300 //프로퍼티를 설정하는 것.
full build를 할 경우 makefile 에서 설정가능하다고는 하는데 실제 해보지는 않았다.
그러면 이것을 어떻게 가져오는가?
사실 개발자용 SDK 에서는 가져오기 위한 API가 없다. 이는 framework에서의 설정이기 때문에
full build 시 포함되는 어플리케이션이 아니면 가져올 수 없기 때문이다.
그럼에도 설정하는 것이 필요하다면 아래와 같이 full source 에서 SystemProperties 파일을 가져와 import를 시키면 된다. 이때 android.os 패키지도 똑같이 만들어 두어야 한다. 이 파일은 컴파일시 링크를 위해서 필요한 것으로 실제 동작은 framework 내에 SystemProperties가 한다.
String properties = SystemProperties.get("property_name");