为什么Android应用程序包文件名创建时带有像';apks/splits/base-arm64_v8a_2.apk';?

为什么Android应用程序包文件名创建时带有像';apks/splits/base-arm64_v8a_2.apk';?,android,android-app-bundle,Android,Android App Bundle,我不知道为什么bundle的所有abi输出都有一个后缀“_2”,如下图所示 我的gradle脚本用于多个apk 现在我想申请应用程序包 下面是build.gradle的一部分 splits { abi { enable true reset() include "armeabi-v7a", "arm64-v8a" universalApk false }

我不知道为什么bundle的所有abi输出都有一个后缀“_2”,如下图所示

我的gradle脚本用于多个apk
现在我想申请应用程序包

下面是build.gradle的一部分

    splits {
        abi {
            enable true
            reset()
            include "armeabi-v7a", "arm64-v8a"
            universalApk false
        }
    }

    bundle {
        abi {
            enableSplit = true
        }
    }
但我认为问题不在于剧本。

有人知道为什么会创建后缀吗?

Bundletool创建多个APK,针对不同的Android SDK版本,以确保每种设备的应用程序大小最小

在本例中,创建了两个“基本主机”和每个ABI APK,因此其中一个后缀为_2以区分它们

通常情况下,您不需要从数据库中手动提取APK
.apks文件。您可以使用bundletool直接为给定设备安装或提取正确的APK

你说得对。在我通过
bundletool build apks--bundle=./app.aab--output=output.apks
命令创建了
apks之后,我尝试安装它。但当我试图找出差异时,解压后大小完全相同。您知道bundletools内部工作原理的任何指导文档吗?本机库的压缩将有所不同:在Android M上,本机库可以在APK中保持未压缩状态,从而允许Android平台直接从APK中对其进行mmap,而无需先提取它们。尝试比较“unzip-lv xxx.apk”的输出。