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 回答