App bundle (.abb) 大小比APK (.apk) 大,不应该是相反的吗?

Jes*_*ral 2 android

代码实际上是一样的,我只是添加了一个类,是不是因为当 Bundle 安装在设备中时,它的一部分将转到该设备并且它的大小会更小?

在此处输入图片说明

kar*_*ran 6

从文档

Google Play 的 Dynamic Delivery 使用您的 Android App Bundle 来构建和提供针对每种设备配置进行了优化的 APK。通过删除其他设备所需的未使用代码和资源,最终用户可以下载更小的应用程序。

因此,基本上 apk 将使用动态交付构建,这将仅结合必要的资源,并确保优化安装在特定设计上的构建。没有提到包的大小更小,但它确保最终用户的下载大小会更小。

另外这一篇好文章来指代。

提到其中提到的一些关键点

  • 第 1 步:您可以像往常一样在 Android Studio 等 IDE 或 Unity 等游戏引擎中为您的应用编写所有代码。
  • 第 2 步:现在,当您准备好测试或发布应用程序时,将其构建为 Android App Bundle,这是 Android 的新应用程序发布格式。您仍需对该应用进行签名,以便 Google Play 可以验证该应用是否来自您。
  • 第 3 步:如果您还没有,请选择加入 Google Play 应用签名。如果您要发布新应用,则可以在上传应用时通过一键式流程执行此操作。当您选择加入时,Play 会将您用于签署应用程序包的第一个密钥指定为上传密钥。这仅用于安全识别目的,如果您丢失了它,您可以联系 Google 验证您的身份并重置它。对于现有应用,您需要访问 Play 管理中心中的应用签名页面,并将您的应用签名密钥安全地传输到 Google Play。为什么需要这样做?继续第 4 步找出答案。
  • 第 4 步:当您将 app bundle 上传到 Google Play 时,Play 会对其进行处理,并为您支持的每种可能的设备配置和语言生成使用应用签名密钥签名的拆分 APK。拆分APK是Android L中引入的一项Android平台功能。只要每个拆分APK使用相同的密钥进行签名,Android平台就会将它们视为一个应用程序。您可以将拆分的 APK 视为 APK 的“一部分”:要运行应用程序,设备会将所有部分视为单个应用程序。
  • 第 5 步:当用户安装应用时,Play 会提供基本拆分 APK(所有设备通用的代码)、语言拆分 APK(用于用户使用的语言)和设备
    配置拆分 APK(用于设备的屏幕尺寸和 CPU
    架构)。这意味着该设备可以得到它所需要的,而不会
    浪费空间。为了让设备接受更新,每个
    版本的拆分 APK 都必须使用与
    原始应用安装相同的应用签名密钥进行签名。

  • 如果您有针对不同 ABI 的本机库,则大小可能会更大 (2认同)