如果我们为每个 ABI 上传不同的 apk,我们是否需要上传通用 apk

dev*_*v90 5 performance android abi google-play android-gradle-plugin

我的应用程序大小已达到 117 MB,因为 Play 商店不允许上传超过100 MB的 apk 。

所以我使用split并创建了多个版本的 apk,每个版本都基于不同的ABI

如果我分析universal-apk,我ABI's在 lib 文件夹中得到了这些类型;

  • armeabi-v7a
  • x86
  • 阿米比

在此处输入图片说明

我用它来separate apk为每个创建abi

splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a', 'armeabi'
        universalApk true
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我得到了 4 种类型的 apk。的universal-apk大小为117 MB,其中,如armeabi为68 MB。

在此处输入图片说明

所以很明显,我无法上传universal-apkon Play 商店,因此我最终会上传3 apk's游戏商店。

现在我的问题是那些用户会发生什么 cpu architecture不属于这些类别的。

我注意到 Galaxy S7 是arm64-v8a,除了这些之外,市场上还会有其他一些架构可用,所以如果这些设备universal-apk不存在,会发生什么,或者armeabi-v7ax86有足够的目标都在市场上的设备。

这会减少目标应用程序用户吗?我无法找出ABI share on Google Play

Nic*_*cue 5

第一步始终是根据数据开展工作。在 Play 开发者控制台中查看您的现有用户,了解您的用户的分配情况。

对于没有这些 ABI 之一的用户,他们将收到“此应用程序与您的设备不兼容”。

但是,x86_64 和arm64-v8a 向后兼容x86 和armeabi-v7a。通过覆盖您选择的那些,它将在几乎所有设备上运行,mips 可能不值得担心。

如果您还添加 x86_64 和 arm64-v8a 变体,较新设备上的用户将获得更好的性能,但如果没有此变体,它也应该可以工作。

armeabi 现在非常罕见,但一些非常旧的设备确实有这种限制。如果您的目标是现代 Android 版本(例如 ICS+),您可能没问题。