Android - 在应用程序客户端中管理服务器端点时遇到问题

标签 android server endpoint spring-android

我有以下服务器网址:

server-base-url/method1
server-base-url/method2
server-base-url/method3
...
server-base-url/method100

我目前正在使用属性文件来存储 URL。当我需要使用一些服务器 URL 时,我会读取属性文件并使用 Spring 4 Android 执行 http 请求

我知道这应该是另一种方式(也是一种更好的方式)来做到这一点。实现这一目标的最佳做法是什么?

最佳答案

我肯定会使用值作为字符串的 android 资源。所以你给它命名一次,并从 Android Studio 中获得强大的工具,通过 Locale、buildtype 和 flavor 进行定制和本地化……我只是建议在单独的文件中设置 url。即 urls.xml

    <resources>
        <string name="url_server1">http://apipas.com/gloabl/server1</string>
        <string name="url_server2">http://apipas.com/global/server2</string>
    </resources>

对于简单的项目,这可能无关紧要。但是当您处理企业项目,或处理多个目标、多语言、不同服务器层(基于位置;欧盟/亚洲...,或使用情况)时:免费/付费,或阶段:开发/测试/生产),您选择何种方式来管理资源等资源至关重要。

让我详细说明...假设我们有这个应用程序的 build.gradle:

buildTypes {
    debug {
        debuggable false
        applicationIdSuffix 'debug'
    }
    qa {
        debuggable false
        applicationIdSuffix 'qa'
    }
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

productFlavors {
    paid {
        applicationId = "com.apipas.android.wellmanagerurlsapp.paid"
    }
    free {
        applicationId = "com.apipas.android.wellmanagerurlsapp.free"
    }
}

它还支持 de 作为德语和澳大利亚 语言环境 en-rAU

所以我们有这些定制因素:

  • 风格:付费/免费(它可以是其他东西:CPU 架构、区域等)
  • BuildType:除了 Release 和 Debug 之外,我还添加了 QA 以使用测试服务器测试应用程序(如果可用)。
  • 语言环境:base、de 和 en-rAU

所有你需要做的就是在正确的位置覆盖 res 来满足你需要实现的目标

假设我要使用 buildType base 来自定义 URLS:

enter image description here

或者你会使用 Flavors:

enter image description here

同时使用 flavor 和 buildType 自定义 res 时注意不要重复掉。

在开发过程中,您不需要更改 url 的名称。当您有大型项目时,这确实是一个好点。您仍然可以针对任何风格/buildType/locale 轻松更改内容

您还可以使用 JSON、XML 或您提到的属性。但他们都不会给你 res 做什么。

祝你好运,'。

关于Android - 在应用程序客户端中管理服务器端点时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35726526/

相关文章:

android - 如何将数据从一个 fragment 发送到android中的另一个 fragment ?

android - Android Fragment 中的 EditText 值不刷新

android - Etsy 的 StaggeredGridview 是否可以在 API 9 中工作?

ruby-on-rails - 是什么导致 JSON 响应被引号包围?

perl - 有没有办法允许多个链在 Catalyst 中共享同一个端点?

android - 动态壁纸设置不显示

php - 安装apache后如何使用Xampp到localhost?

android - 服务器响应状态与服务器接收时间的关系

python - Django 应用程序消耗服务器中的内存

.net - 使用 https 端点添加 WCF 服务引用