如何在android中设置独立于应用程序的参数,如服务器AddAddress

如何在android中设置独立于应用程序的参数,如服务器AddAddress,android,Android,我需要一个解决方案来解决我正在思考的一个非常普遍但重要的问题 我创建了一个应用程序,在该应用程序中,我将服务器地址硬编码到/res/values/strings.xml文件中。假设由于某些原因,我的服务器地址在运行时发生了更改,那么我必须对文件进行更改,然后重新编译它 那么,有没有办法将我的服务器地址从我的应用程序中删除。。因此,我们不必重新组合应用程序。取而代之的是,它将从外部读取新的服务器地址并恢复正常工作 任何类型的相关建议、链接、博客等。当我在Android中制作应用程序时,我主要创建一

我需要一个解决方案来解决我正在思考的一个非常普遍但重要的问题

我创建了一个应用程序,在该应用程序中,我将服务器地址硬编码到/res/values/strings.xml文件中。假设由于某些原因,我的服务器地址在运行时发生了更改,那么我必须对文件进行更改,然后重新编译它

那么,有没有办法将我的服务器地址从我的应用程序中删除。。因此,我们不必重新组合应用程序。取而代之的是,它将从外部读取新的服务器地址并恢复正常工作


任何类型的相关建议、链接、博客等。

当我在Android中制作应用程序时,我主要创建一个实用程序类,例如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);
这些是一些我们通常在这里和那里使用的常数类型。所以我把他们放进了另一个专门的班级。所以现在当我需要它们的价值时,我会这样得到:

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

我通过阅读博客得到了答案

这表示您应该将碎片首选项与活动扩展首选项活动一起使用。

在这里,你可以设置你的服务器地址,以及所有随时间变化的动态内容。这样您就不必重新编译apk了。只需更改共享首选项中的设置


阅读这篇所有应用程序开发人员都想知道的重要文章

您的聊天服务器地址,是唯一的IP地址还是可以更改的域名?如果您在运行时不知道它位于何处,那么很难获取信息……如果一个域中发生服务器故障,可能会更改域名,那么我只更改服务器名称,而不是更改代码本身。。所以我想知道我应该把地址放在哪里。。以及它应该如何更新。。所以我的apk将独立于服务器地址所以硬代码2地址?你真的不能一下子就做。否则,你需要像谷歌这样的稳定供应商提供某种服务才能从中获得。如果这就是他的意思,那么我显然误解了他的意思:-)