Jak*_*eam 8 android sideloading android-app-bundle
使用应用程序包时,存在用户将自定义 APK“旁加载”到不兼容设备上的风险。这可能会导致崩溃,因为所需的密度/语言将不存在。
\n\nMissingSplitsManager为了解决这个问题, Google Play Core 中有一个方便的工具。这会在启动时向用户显示有用的错误,而不是崩溃。需要做的就是将以下内容添加到应用程序类中:
override fun onCreate() { \n if (MissingSplitsManagerFactory.create(this).disableAppIfMissingRequiredSplits()) {\n return\n }\n super.onCreate()\n} \nRun Code Online (Sandbox Code Playgroud)\n\n此检查非常容易实现,之前可以在https://developer.android.com/guide/app-bundle/sideload-check上找到详细说明。到处都有指向此内容的链接,例如在 Realm 问题中或在MissingSplitsManager 文档的顶部。
\n\n但是,此链接现在重定向到“已知问题”部分,其中非常模糊:
\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也许该库存在一些未记录的问题?也许 Google 根本不想帮助侧载?
\n这个库虽然方便,但只是一个临时解决方案,直到找到更好的解决方案为止。该库有效地在应用程序的每次启动时进行磁盘读取,这会影响启动延迟。请注意,这会影响所有用户,无论他们是否拥有所有拆分,但仅对旁加载应用程序的用户有用,因此他们会收到警告消息而不是崩溃。
Android 平台现在拒绝安装不具备所有必需拆分的应用程序,从而无需侧载 API。该解决方案应该适用于所有 Android 版本。