Google 的旁载检查文档发生了什么?

Jak*_*eam 8 android sideloading android-app-bundle

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

\n\n

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

\n\n
override fun onCreate() {    \n    if (MissingSplitsManagerFactory.create(this).disableAppIfMissingRequiredSplits()) {\n        return\n    }\n    super.onCreate()\n} \n
Run Code Online (Sandbox Code Playgroud)\n\n

此检查非常容易实现,之前可以在https://developer.android.com/guide/app-bundle/sideload-check上找到详细说明。到处都有指向此内容的链接,例如在 Realm 问题中或在MissingSplitsManager 文档的顶部。

\n\n

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

\n\n
\n

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

\n
\n\n

所以发生了什么事?为什么不再提及库的简单检查,甚至在库的文档中也是如此。

\n\n

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

\n

Pie*_*rre 7

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

Android 平台现在拒绝安装不具备所有必需拆分的应用程序,从而无需侧载 API。该解决方案应该适用于所有 Android 版本。

  • @Pierre,文档说它已向后移植,但我们现在仍然可以安装部分 apk。我正在尝试找到一种方法来检测它,因为它最终出现在我们的崩溃仪表板中 (4认同)
  • 正确的。Android 平台不应该首先安装不完整的应用程序,这一点已得到修复,因此现在开​​发人员不必费尽心思(并使应用程序变慢)来避免报告崩溃。——我编辑了我的答案,删除了“更好的解决方案”,因为我感觉你认为这是有争议的 (2认同)