【问题标题】:What happened to Google's sideload check documentation?Google 的侧载检查文档发生了什么变化?
【发布时间】:2020-03-04 10:46:11
【问题描述】:

使用 app bundle 时,用户可能会将自定义的 APK “旁加载”到不兼容的设备上。这可能会导致崩溃,因为所需的密度/语言将不存在。

为了解决这个问题,Google Play Core 中有一个方便的MissingSplitsManager。这显示用户 a helpful error 在启动时而不是崩溃。所需要做的就是将以下内容添加到应用程序类中:

override fun onCreate() {    
    if (MissingSplitsManagerFactory.create(this).disableAppIfMissingRequiredSplits()) {
        return
    }
    super.onCreate()
} 

这项检查很容易实施,之前在https://developer.android.com/guide/app-bundle/sideload-check 上提供了详细说明。到处都有链接,例如in a Realm issue,或在the MissingSplitsManager documentation 的顶部。

但是,此链接现在重定向到“已知问题”部分,非常模糊:

侧载应用的部分安装(即未使用 Google Play 商店安装且缺少一个或多个必需的拆分 APK 的应用)在所有 Google 认证设备和运行 Android 10(API 级别 29)的设备上失败,或者更高。通过 Google Play 商店下载您的应用时,Google 会确保安装了该应用的所有必需组件。

那么,发生了什么?为什么图书馆的简单检查不再提及,即使在documentation for the library

也许图书馆存在一些未记录的问题?也许 Google 根本不想帮助侧载?

【问题讨论】:

    标签: android android-app-bundle sideloading


    【解决方案1】:

    这个库虽然很方便,但在找到更好的解决方案之前只是一个临时解决方案。该库有效地在应用程序的每次启动时读取磁盘,这会影响启动延迟。请注意,这会影响所有用户,无论他们是否有所有拆分,但仅对侧载应用程序的用户有用,因此他们会收到警告消息而不是崩溃。

    Android 平台现在拒绝安装没有所有必需拆分的应用,从而使侧载 API 变得不必要。此解决方案应适用于所有 Android 版本。

    【讨论】:

    • 通过“更好的解决方案”,您是指Android 10上出现的“安装失败”对话框,它不支持重新安装应用程序?只是检查我们在谈论同一件事。
    • 正确。 Android 平台一开始就不应该安装不完整的应用程序,这一点已得到修复,因此现在开​​发人员不必费力(并使他们的应用程序变慢)以避免在报告中出现崩溃。 -- 我已经编辑了我的答案以删除“更好的解决方案”,因为我感觉你认为这是有争议的
    • @Pierre 但它只适用于 android 10 对吗?那么其他版本,尤其是最初不支持 MissingSplitsManager 的 android 4.1 呢
    • 此更改已通过 Google Play Protect 反向移植到所有 Android 版本。
    猜你喜欢
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 2017-12-20
    • 2015-11-18
    • 1970-01-01
    • 2013-03-11
    • 2022-10-14
    • 1970-01-01
    相关资源
    最近更新 更多