App Bundle 只是一种用于上传到 Google Play 的文件格式(.aab),Google Play 会根据开发者的配置,为相应用户的设备动态生成经过优化.apk 文件。 

接入方式

编辑 application 级别 module 下的 build.gradle 文件 ,

增加几行配置即可:

apply plugin: 'com.android.application'

android {
    defaultConfig { ... }

    // 关键配置
    bundle {
        density {
            // 按分辨率拆分
            enableSplit true
        }
        abi {
            // 按 CPU 架构拆分
            enableSplit true
        }
        language {
            // 按语言拆分
            // voga 需要同时支持多种语言切换,所以关闭此项
            enableSplit false
        }
    }
}

执行 :app:bundleRelease,即可生成带签名的 App Bundle 文件 (.aab)。

减少的部分

如果直接提供 APK,则会将不同 CPU 架构(32 位、64 位)的 SO 库、不同屏幕尺寸的图片打包到一整个 APK 文件,用户需要下载的 APK 中会包含与其设备无关且无用的这些资源及文件

而通过 App Bundle 生成的 APK 文件,除了基础组件 (base),只保留了其设备相关的资源和文件。

提测与提审

App Bundle 不影响整个开发流程,开发完成后直接提供 APK 文件给 QA 测试。至于 App Bundle 文件,不能直接用于测试,需要上传至 Google Play

在 Google Play Console 的『内部测试渠道』上创建内测版本,整个操作过程和以往并无二致,只是在上传的时候,上传的是 App Bundle 文件 (.aab),而不是 APK 文件 (.apk) ,提交完毕后,参与此测试渠道的 QA 可以在 Google Play 上看到测试版本的应用,安装后可以用于线上回归。

在『正式版渠道』提审,也与以往一样,只不过上传的是 App Bundle 文件 (.aab),或者直接从内容库中选择已经通过线上回测的内测版本的应用包。