0

私が考えている本当に一般的だが重要な問題の解決策が必要です。

サーバーアドレスを /res/values/strings.xmlファイルにハードコーディングしたアプリケーションを作成しました。何らかの理由でサーバーアドレスが実行時に変更された場合、ファイルに変更を加えてから再コンパイルする必要があるとします。

したがって、サーバーアドレスをアプリケーションから除外する方法はありますか。したがって、アプリケーションを再コンパイルする必要はありません。その代わりに、外部から新しいサーバーアドレスを読み取り、通常の作業を再開します...

あらゆる種類の関連する提案、リンク、ブログを歓迎します。

4

2 に答える 2

1

Androidでアプリを作成している間、私は主にUtilityクラス(Constants.java、Utils.javaなど)を作成します。これらのクラスには、次のようにすべての定数数値と文字列値を入力します。

  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";

これらは、私たちがあちこちで一般的に使用するある種の定数です。そこで、私はそれらを別の専用クラスに入れました。だから今、どこかでそれらの価値が必要なとき、私はそれを次のように得る:

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

このアプローチの利点は、後で多くの場所で使用されている値を変更する必要がある場合でも、どこでも変更する必要がないことです。Constants.javaの値を変更するだけで、この変更はアプリ全体に複製されます。

Utils.showErrorMessage(this, Constants.PASSWORD_FIELD_EMPTY_ERROR, Constants.TOAST_VISIBLE_SHORT); 
于 2012-06-11T12:24:04.323 に答える
0

このブログを読んで答えが出ました。

これは、PreferenceActivity を拡張するアクティビティでシャード設定を使用する必要があることを示しています

ここでは、サーバーアドレスと、時間によって変化するすべての動的なものを設定できます. apk を再コンパイルする必要がないようにします。共有設定で設定を変更するだけです。

すべてのアプリ開発者が知りたがっているこの重要なブログを読んでください..

于 2012-06-21T06:10:09.047 に答える