【发布时间】:2020-07-24 11:02:02
【问题描述】:
我很快就准备好在 Play 商店上发布我的应用,但我想知道如何在不影响用户的情况下编辑/添加功能/更新我的应用。例如,如果我决定从服务器中添加或删除某些内容,我不希望整个应用程序在用户身上崩溃。基本上运行一个克隆,我可以在其中尝试任何我想要的东西,并且它与原始应用程序保持分离。我该怎么做?
如果让大家感到困惑,我的英语不是最好的,我真的很抱歉。
【问题讨论】:
我很快就准备好在 Play 商店上发布我的应用,但我想知道如何在不影响用户的情况下编辑/添加功能/更新我的应用。例如,如果我决定从服务器中添加或删除某些内容,我不希望整个应用程序在用户身上崩溃。基本上运行一个克隆,我可以在其中尝试任何我想要的东西,并且它与原始应用程序保持分离。我该怎么做?
如果让大家感到困惑,我的英语不是最好的,我真的很抱歉。
【问题讨论】:
为此,您需要运行一个开发服务器并构建您的应用的多个版本。
您可以使用 google play 将该应用分发给您的测试用户,如 here 所述,或者您可以在测试设备上手动安装该应用。手动安装(如果您有几个测试用户)比等待 google play 推送更新更快。
至于如何设置,这将取决于您在做什么以及使用什么工具。通常你会使用 BuildConfig.java 变量在 android 中设置多个构建。在那里,您可以检查构建类型并使用特定的 API 密钥/服务器 URL,也可以根据构建传递不同的值。更多信息here。
基本上在你的 build.gradle 中你会有:
android {
...
buildTypes {
release {
buildConfigField("String", "SERVER_URL", "https://api.example.com/")
}
debug {
buildConfigField("String", "SERVER_URL", "https://api.dev.example.com")
}
}
}
您可以从 Build > Select Build Variant... 或从 Android Studio 的侧边栏中切换您正在构建的变体
现在您可以从代码中访问这些:
BuildConfig.SERVER_URL
接下来,您将该应用分发给您的测试用户。
至于服务器端,这取决于您现在如何设置以及您希望如何设置。
【讨论】:
Google Play 的核心库(在 1.5.0 或更高版本上)具有一项功能,适用于在使用 Android 5.0(API 级别 21)或更高版本的设备和 Chrome 操作系统设备上运行的应用,称为应用内更新。如果您希望用户尝试新的应用功能或应用更新以提高性能或修复错误,Play Core 库提供了两种方法。您可以使用灵活或即时的方法通知用户有可用的更新。
应用内更新有一个新的请求流程,您可以提示活跃用户更新应用。使用灵活的方法,当应用程序仍在使用时,更新会在后台下载并安装。使用立即选项,用户必须接受更新请求,之后 Google Play 会管理安装并重新启动应用程序。
在 Google Play Developer API 中为每个更新设置优先级,这决定了您的应用如何推荐更新,使用介于 0 和 5 之间的整数值,默认值为 0 和 5 是最高优先级。
【讨论】: