您的位置:

Android应用程序打包格式AAB的最佳实践

一、AAB格式简介

Android App Bundle(AAB) 是一种新的应用程序打包格式。通过使用 AAB,开发人员可以在应用发布到 Google Play 商店时,将应用程序的大小减小到最小限度,同时仍然能够为不同的设备提供定制内容。

AAB 格式使开发者能够使用动态功能来针对不同的用户提供更好的体验。例如,AAB 中可以包含多个APK,每个APK 针对不同的设备组合优化,而不是单个 APK 一大小适合所有设备。

二、使用AAB格式的好处

使用 AAB 格式的主要好处之一是,应用的下载大小可以更小。这意味着更快的下载和更少的设备存储空间。此外,通过使用动态功能可以提供更好的用户体验。例如,可以为设备分配不同的资源,例如特定于设备屏幕大小的图形。对于开发人员而言,构建和发布 AAB 应用程序与发布传统 APK 应用程序几乎相同。唯一的区别是,AAB 格式在发布时会生成多个 APK。

通过使用 AAB 格式,Google Play 商店可以自动构建将仅包含用于设备的资源的优化 APK。这意味着应用程序的分发时间更短,下载文件更小,运行速度更快,并且存储占用更少,因为仅下载对应于用户设备配置的应用程序。另外,AAB 格式有助于解决 Android 应用尺寸过大时遇到的问题,因为其中包含的特定于设备并最终是对用户可见并下载的 Google Play 生成的 APK 尺寸大大降低。

三、生成AAB应用程序包

要生成 AAB 应用程序语言和平台无关。在用 Android Studio 构建 AAB 应用程序之前,请确保已安装最新版本的 Android Studio。

(一)在Android Studio中生成AAB应用程序包:

1、打开 Android Studio 的项目

2、点击“生成”,然后从下拉列表中选择“生成应用程序包(APK或AAB)”

3、选择“Android App Bundle”选项,然后点击“下一步”

4、选择要为其生成应用程序包的模块,然后单击“完成”。

5、最后,Android Studio 会生成一个 .aab 文件,可以将其上传到 Google Play 商店。

(二)使用gradlew命令生成AAB应用程序包:

1、打开终端并导航到项目目录执行 gradlew 命令

2、运行命令 gradlew project:bundleDebug(或其他 variances),其中 project 是项目名称。

3、Gradle 将生成一个 .aab 文件,可以将其上传到 Google Play 商店。

四、DDL和ProGuard规则

使用 AAB 格式应用程序时,请确保已经包含以下 ProGuard 规则,这些规则有助于避免某些代码被删除:

# This will avoid removing Log.* calls
-keep class com.orhanobut.logger.** {
*;
}

# This is for gson custom objects
-keepclassmembers class * {
@com.google.gson.annotations.SerializedName ;
}

# This will avoid removing ButterKnife definitions # for the most common of bindings
-keep class butterknife.** {
    *;
}
-keepclasseswithmembernames class * {
    @butterknife.* 
   ;
}

# This will avoid removing Dagger related code
-dontwarn javax.annotation.**
-dontwarn javax.inject.**
-keep class dagger.** {
    *;
}
-keep interface dagger.** {
    *;
}
-keepclassmembers class * {
    @javax.inject.* *;
    @dagger.* *;
}

   
  

如果使用了 ndk-build,请将此行添加到 build.gradle 文件中:

buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            ndk {
                //设置支持的ABI,此处为arm
                abiFilters 'armeabi-v7a'
            }
        }
    }

五、App Signing

使用了 AAB 格式时,Google Play 商店自动执行应用程序签名流程,其中会产生与应用程序标识符相关联的密钥存储库私钥。此密钥存储库公钥会与您的应用程序一起绑定到 Google Play 商店。

如果需要发布到 Play 商店之外的市场,则需要签名 AAB 输出文件。

六、AAB格式的变通方法

有些情况下,您可能无法使用 AAB 格式。以下是 AAB 格式的两个变通方法:

(一)使用传统 APK:

如果设备不支持下载和安装 AAB 格式或您需要将应用程序分发到 Google Play 商店以外的第三方应用市场,则可以使用传统 APK。传统 APK 可以使用与一般的 APK 相同的方式进行编译和分发。

(二)使用分离的资源:

如果您不需要使用 AAB 的所有优势,但希望分离应用程序的资源,以便每个设备仅下载所需的内容,则可以使用 Android 中的 ResConfig 实用程序。

七、总结

本文介绍了 Android 应用程序打包格式 AAB 的最佳实践。使用 AAB 格式可以更好地为不同的设备提供优化,减小应用程序的大小,提供更好的用户体验,提高应用分发效率,对于移动开发者而言是非常重要的一项技能。

Android应用程序打包格式AAB的最佳实践

2023-05-14
Android Studio 打包应用的最佳实践

打包应用是 Android 应用开发一个非常重要的环节。它不仅是将应用程序打包成可执行文件,还包括对应用程序进行签名、压缩等处理。本文将从以下几个方面分享 Android Studio 打包应用的最佳

2023-12-08
快速构建Android应用的最佳实践

2023-05-14
提高Android应用程序性能的最佳实践

2023-05-14
Android Gradle版本管理最佳实践

2023-05-14
阿里巴巴Android开发:最佳实践

阿里巴巴是我国互联网行业中最具潜质的企业之一。该公司开发了许多移动应用程序,这些应用程序为他们的用户提供了许多惊人的功能。在本文中,我们将探讨阿里巴巴的Android开发最佳实践。 一、UI设计 Ap

2023-12-08
Android HttpClient的最佳实践

2023-05-17
Android应用程序构建:最佳实践和技巧

2023-05-14
Android Studio 打包:完整教程和步骤

2023-05-22
使用Android Studio4.2进行构建高效的移动端应

2023-05-14
使用Python开发Android视频编辑SDK的最佳实践

2023-05-14
Android ViewStub: 使用及最佳实践

2023-05-21
php开发最佳实践第二版(php入门开发实战)

2022-11-08
提升Android TV用户交互体验的最佳实践

2023-05-14
Android RemoteViews的设计原则和最佳实践

2023-05-19
Android Skia最佳实践:如何利用Skia提升移动端

Skia是移动端图像处理中常用的工具库,可用于绘制和处理图像。在Android开发中,Skia被广泛应用于应用程序中的图像处理和绘制。本文将介绍如何使用Skia库优化移动端图像显示效果的最佳实践。 一

2023-12-08
深入了解Android 33

2023-05-22
ArcGIS for Android:地图应用开发的最佳拍档

一、ArcGIS for Android的简介 ArcGIS是由Esri公司开发的一套地理信息系统软件,ArcGIS for Android则是其Android平台下的应用程序。ArcGIS for

2023-12-08
基于Python的Android/Linux应用程序开发实践

随着移动互联网的快速发展,越来越多的人开始使用移动设备,这意味着移动应用程序的需求也越来越大。在这种背景下,人们开始尝试使用Python这种高级编程语言进行移动应用程序的开发。Python是一种简单易

2023-12-08
Android颜色代码表:了解最佳配色方案

随着移动应用的需求日益复杂,颜色成为设计中不可或缺的一部分。在Android应用中,正确选择配色方案可以使应用更具吸引力、易用性和品牌性。本篇文章将介绍如何使用color.xml文件和颜色选择器来从容

2023-12-08