2012-06-11 2 views
0

내가 생각하고있는 공통점은 있지만 중요한 문제에 대한 해결책이 필요합니다.android에서 서버 덧셈과 같은 응용 프로그램 독립적 매개 변수를 설정하는 방법

나는 내 서버 주소를 /res/values/strings.xml 파일에 하드 코딩 한 응용 프로그램을 만들었습니다. 내 서버 주소가 몇 가지 이유로 런타임이 변경되면 파일을 변경 한 다음 다시 컴파일해야한다고 가정합니다.

그래서 내 서버 주소를 내 응용 프로그램에서 제외시킬 수있는 방법이 있습니다. 따라서 응용 프로그램을 재구성 할 필요가 없습니다. 나는 안드로이드 응용 프로그램을 만드는 중이라서하지만 대신에, 그것은 나는 ...

관련 제안, 링크, 블로그는 평가의 모든 유형 ...

+0

당신의 이야기 서버 주소, 그것은 단지 IP 또는이 aswell 변경할 수 있습니다 도메인 이름을 읽기? 런타임에 어디에 있는지 잘 모르겠 으면 정보를 얻는 것이 어렵습니다. –

+0

하나의 도메인에서 서버 장애가 발생했을 때 변경 될 수있는 도메인 이름입니다. 그런 다음 서버를 변경합니다. 대신 코드 자체를 변경하는 대신 이름. 그래서 내가 어떻게 그 주소를 넣어야 .. .. 그리고 어떻게 업데이 트해야합니다 .. 그래서 내 APK는 서버 주소의 독립적입니다 – NullPointerException

+0

그래서 하드 코드 2 adresses? 당신은 정말로 afaik에서 그것을 할 수 없습니다. 그렇지 않으면 Google과 같은 꾸준한 공급자에게 서비스를 제공해야합니다. –

답변

0

나는 this 블로그를 읽고 답을 얻었다.

당신은 PreferenceActivity를 연장하는 활동과 함께 샤드 환경 설정을 사용해야한다고 말합니다.

여기서 서버 주소와 시간에 따라 달라지는 모든 동적 인 항목을 설정할 수 있습니다. 따라서 APK를 다시 컴파일 할 필요가 없습니다. 공유 환경 설정에서 설정을 변경하기 만하면됩니다.

모든 응용 프로그램 개발자가 알고 싶어이 중요한 습지 ..

1

을 측면에서 새로운 서버 주소를 읽고 정상 작업을 다시 시작합니다 대부분 유틸리티 클래스를 만듭니다.

public static String ip="74.117.153.111"; 
    public static final String LOGIN_TOKEN_URL = "http://"+ ip + "/api/getLoginToken"; 
    public static final String USERNAME_PARAM = "username"; 
    public static final String PASSWORD_FIELD_EMPTY_ERROR = "Please enter password"; 
    public static final int GRID_ICON_COUNT = 4; 
    public static final String FACEBOOK_KEY = "16411636362877862"; 

이 우리가 일반적으로 여기 저기에 사용하는 상수의 몇 가지 유형은 다음과 같습니다 Constants.java, Utils.java 등이 클래스에서는,이 같은 모든 일정 수치와 문자열 값을 넣습니다. 그래서 저는 그것들을 다른 전용 클래스에 넣었습니다. 어디 선가 자신의 가치를 필요로 할 때 그래서 지금,이 같은 그것을 얻을 :

params.put(Constants.USERNAME_PARAM, username); 
fbRocket = new FBRocket(this, Constants.APP_NAME,Constants.FACEBOOK_KEY); 

이 방법의 장점은 다음, 나중에 값을 변경해야 할 경우있는 곳의 많은에 사용되는 것입니다 I 돈 어디에서나 변경해야합니다. Constants.java에서 값을 변경하면이 변경 사항이 전체 앱에서 복제됩니다.

Utils.showErrorMessage(this, Constants.PASSWORD_FIELD_EMPTY_ERROR, Constants.TOAST_VISIBLE_SHORT); 
+0

이것이 그가 의미하는 바라면 나는 분명히 그를 오해하고있다 :-) –

관련 문제