android - 在 Google Play 上管理多个 .apk
问题描述
我们创建应用程序并在 Google Play 上分发,并且多年来一直能够创建一个 .apk 并分发到所有设备。
最近我们发现了一款需要进行特殊构建的设备(Samsung Galaxy Core Prime SM-G360V Android 版本:5.1.1)。
可能会找到适用于所有设备的东西,但我只是不想仅仅因为一部手机就强迫我的成千上万的用户更新他们的应用程序。
我已阅读: https ://support.google.com/googleplay/android-developer/answer/7353455?hl=en
我读过这个: https ://developer.android.com/google/play/publishing/multiple-apks
他们并没有真正考虑做我们想做的事情的策略:
- 将我们现有的 .apk 保留在商店中,并阻止 5.1.1 设备下载它。
- 添加一个只有 5.1.1 设备会下载的新 .apk。
我担心的一个因素是说明中提到了排除手机的列表,但没有提到支持的手机列表。
我想在我们现有的 .apk 中排除手机;并在新的 .apk 上设置支持的手机(暗示所有其他设备都被排除在外)。
这也是在无法真正测试的情况下对生产应用程序进行更改,因此我们必须明确说明我们在 Google Play 上所做的任何更改的副作用。
解决方案
为单个设备使用整个 APK 变体是非常不寻常的。使用多个 APK 的更常见原因是:
- 在旧 SDK 上为旧手机提供旧版本,为较新手机提供新版本
- 对不同的本地库有不同的版本
- 针对不同的资产密度有不同的版本
对于所有这些用例,现在鼓励开发人员使用 Android App Bundle,而不是发布多个 APK。
老实说,如果您只对一部手机进行更改,我会鼓励在代码中使用单个“if”语句。用户获取更新很痛苦,你是对的,但如果更改很小,Google Play 修补和压缩应该使更新大小保持很小。
推荐阅读
- python - 需要使用 Python 进行决策树可视化 GraphViz 使用 10-fold
- python - 用相应的值替换字典列表中的空值
- javascript - 一个自包含的 Javascript/Html 模块 - 这可能吗?
- jquery - 如何触发两个选择与改变与if条件值
- python - 如何在 numpy ndarray 上使用循环和中断语句
- css - 在 iOS Safari 中点击链接会在元素周围显示一个厚厚的白色边框 - 如何摆脱它?
- node.js - 发生未处理的 Promise Rejection 警告
- swt - 为什么 jzy3/jogl newt 窗口总是在顶部?
- sql - 撤消表空间问题
- java - 在 Spring WebFlux 中保存到磁盘之前,有什么方法可以将 FilePart 转换为 File?