정의 된 XML 리소스가있는 구성 파일 만 있으면됩니다. 나는 이것을했고 꽤 잘 작동한다. 이렇게하면 여러 구성이있는 경우 이전 버전에서 작동하도록 이러한 구성 파일을 백업 할 수 있습니다. 지금까지 내가 아는 한, 이러한 리소스를 프로그래밍 방식으로 편집 할 수 있다고 생각하지 않습니다.
다음은 간단한 사용 예입니다. 즉 :
매니페스트 :
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="blah.blah"
android:versionCode="@integer/version_code"
android:versionName="@string/build_version">
내 자원 파일 :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="version_code">1</integer>
<string name="build_version">1.0</string>
<string name="param">Some other Param</string>
</resources>
지금 당신의 프로그램이 버전 코드 및 버전 이름에 대한 런타임에 리소스를 얻을 수있을 것입니다. 응용 프로그램이 그래서에서 OnCreate에서 그럼 당신은 단지 구성 개체를 만들 수 있습니다
public class Configuration {
Context thisContext;
private String Param = "";
public Configuration(Context cont){
thisContext = cont;
String param= thisContext.getResources().getString(R.string.param);
setParam(param);
}
/**
* @return the param
*/
public static String getParam() {
return Param;
}
/**
* set the Param
*/
public static void setParam(String param) {
Param= param;
}
}
:
new Configuration(this);
을 그리고 나중에 당신이 기능을 사용할 수 있습니다 프로그래밍 다음과 같은 코드를 사용할 수있는 다른 값을 얻으려면
Configuration.getParam();
값을 얻으려는 모든 클래스에서.
다양한 매개 변수를 써야하지만 매우 간단합니다.
이전 버전을 참조해야하는 경우 구성 파일을 교체하는 것만 큼 간단합니다.
잘하면이 도움이됩니다. 건배
이 할 수있는 방법의
아, 안전한 질문입니다. 하루에 한 번 이상 올 수 있습니다! 짧은 대답, 당신은 할 수 없습니다. 장치의 데이터로 할 수있는 최선의 방법은 개인 키/해시/소금/알고리즘의 수명을 obsfucate하여 암호화하는 것입니다. 내가 뿌리를 가지고 있다면 (그리고 나는 항상 그렇다) 유일한 질문은 "보상에 가치가있는 분노 비용인가?"이다. 이렇게하는 방법에 대해 많은 논의가 여기에 있습니다. 추신. 보안에 관한 한 SQLite와 임베디드 정적 데이터는 차이가 없습니다. 얼마나 많은 농구가 나를 뛰어 넘는 지에 따라, 쉽거나 어렵습니다. – Simon
나는 깨는 방법이 아니라 obsfucate하는 방법에 대해 많은 토론을했다.) – Simon
그래도 질문의 "보안"부분은 그렇다. 그것은 그것을 스스로 암호화하는 것 같습니다. 하지만 적어도 내 애플 리케이션의 경우에는 DB를 수정하면 아마도 노력 가치가 없다고 말하면, 그것은 단지 자신을 위해 올바르게 작동하지 않을 것입니다. 나는 더 좋은 우아함 부분에 더 관심이 있습니다. 어쩌면이 미리로드를 올바르게 수행 할 API가 있습니다. –