随着数字化程度越来越高,对我们日常使用的移动设备和移动应用程序提出了更多要求。移动存储空间增加至 256 GB,随着我们满足客户需求、添加新功能以及支持不同屏幕尺寸上的应用程序,这一数字肯定会增加。
根据该报告,全球 74% 的人使用 Android,大约 70% 的用户在安装任何应用程序之前都会考虑应用程序的大小。
既然您正在阅读这篇文章,那么有两种可能性。要么你是一个面临上述问题的普通用户(读者)——就像我一样,要么是一个受雇的 Android 应用程序开发人员,他有能力通过在 Android 应用程序开发生命周期中减少 Android 应用程序来不让用户面临这个问题。
但是,本文主要介绍如何在 Android 应用开发过程中优化或减小 Android APK 大小。因此,如果您是初学者或经验丰富的 Android 应用程序开发人员,这些技术和方法肯定会帮助您开发一个正常且标准的 Android 应用程序,并且不需要更多空间。
Android 应用程序大小很重要
在这个移动驱动的世界中,移动应用程序的受欢迎程度与日俱增。也因为这个原因,也增加了对为两个平台开发基于 Android 和 iOS 的应用程序的应用程序开发人员的需求。但是,凭借 Android 和 iPhone 应用程序开发的良好经验,我们发现并非每个 Android 或 iOS 应用程序都能经得起考验并取得成功。换句话说,我们可以说并非每个智能手机用户都喜欢所有应用程序。
现在,谷歌提出了更好的解决方案。它提出了 Android App Bundle,这允许您安装应用程序,甚至无需下载 Play 商店中其他应用程序中存在的基本元素,从而有助于减小大小,正如 Google 所认为的那样,几乎减少了 35%。
那么,现在的问题是,如果您的 Android 应用程序需要更多空间怎么办?而且您知道,如果您的应用程序占用更多空间,那么人们根本就不会愿意下载它。您可以理解这样一个事实:没有用户愿意在仅仅一个应用程序上花费大量数据后遇到麻烦。
那么,现在让我们看看在 Android 应用程序开发过程中如何减小 Android 应用程序大小或 APK 大小。
1.使用Android App Bundle来减少应用程序大小
当您开发了 Android 应用程序并准备发布应用程序时,您必须在 APK 和 Android App Bundle 之间进行选择。Android App Bundle 将使 Google Play 只为那些需要功能的特定用户创建 APK。
安卓应用程序包
- 对于由应用程序的编译代码和资源组成的发布格式,使用 Android App Bundle 并延迟 APK 生成和签名到 Google Play。
- 通过 Android App Bundle,压缩下载大小限制为 150 MB。该应用程序包不能与 APK 扩展文件一起使用。
2.使用混淆器
为了减少应用程序 APK 的大小,Proguard 可能是最有用的工具之一。它将直接将源代码文件减少到最小,并且可以将 APK 文件大小降低多达 90%。
- 每当使用“Proguard”时,请尝试使用所有变体。
- 如果在开发过程中在所有变体中使用 Proguard,则 Proguard 有助于避免生成的 APK 或捆绑包出现争议。
- ProGuard 重命名或删除这些数据类上的任何字段不是我们可以做的,因为它们必须匹配序列化格式。
3.使用Android尺寸分析器插件
要显着减小 Android 应用程序的大小,您可以选择 Android Studio 插件。借助 APK 分析器,Android 开发人员将完成以下任务:
- 查看 APK 的完整大小和比较大小。
- 了解 DEX 文件的组成。
- 快速查看APK中文件的最终版本,例如AndroidManifest.xml文件。
- 对两个 APK 进行并排比较。
4. 图像优化
更高分辨率的图像始终是吸引用户访问网站的最佳和首选。由于最新的移动设备具有良好的相机分辨率,因此不妨通过稀释分辨率来减小图像尺寸。如果您不想失去图像质量,则必须将 .jpg 或 .png 图像转换为 .webp。
使用图像而不缩小尺寸可能会影响应用程序的质量。将 .jpg 和 .png 图像转换为 Web 格式,而不是在应用程序中上传或使用原始图像。对于 png 文件,您还可以使用 pngcrush 或 Zopflipng 等工具。对于 jpg 文件,您可以使用 packJPG 和 Guetzli 等工具。您还可以使用矢量图形,因为它使图像变得简单并充分利用空间。
事实上,图像无需静态资源即可创造奇迹。在运行时,框架足以动态绘制此类图像。此外,在创建小型应用程序时,使用 Vector Drawables 对象是一个好主意。
由于这些应用程序可以在 APK 文件内的最小空间中生存并创建符合材料设计规则的图片,因此使用 Vector Drawables 很有价值。人们还应该注意 CPU 和 RAM 作为复杂对象的使用可能会出现的争执。
5. 支持特定屏幕密度
要减小 Android 应用程序的大小,以正确的方式利用特定的屏幕密度是另一个不错的选择。有 100 万台支持 Android 的设备,其屏幕密度各不相同。然而,我们不使用整个屏幕密度,并且可以消除不需要的内容。
要消除将所有未使用的屏幕密度捆绑到您的应用程序中,请进行分析以确定拥有特定密度设备的用户百分比。如果这个百分比可以忽略不计,那么您就有理由消除它们并减轻应用程序的大小。
6. 删除死代码
APK文件的大小与应用程序的加载速度、占用的内存以及消耗的电量直接相关。因此,为了保留而保留的任何未使用或不适当的代码只会增加垃圾。这就是为什么您的应用程序需要删除死代码或消除代码才能始终保持活跃和充满活力。
此代码删除将提高源代码的质量并降低维护代码大小的需要,从而体现出整体健康的应用程序。
7. 重用你的资源
重用确实比删除更好、更简单。这是一种以各种方式利用资源的奇妙方式。它为您提供流畅的滚动性能。它可以帮助您减少 Android APK 的最终大小。您可以消除那些仅与其他资源轮换等效的资源。
假设您有巧妙的资源来描述图像中与色调、色调和方向有关的变化。但是,您可以将相同的资源用于其他图像。
8. 多APK文件支持
有些 APK 包含已下载但几乎从未使用过的内容。例如,并不总是需要诸如附加语言之类的附加组件;但是,无论如何,它们都会被下载。这会占用存储空间中的额外空间并扩大应用程序。
然而,这个麻烦使开发人员开始寻求更好的解决方案,仅下载应用程序中对用户有益的某些部分。不幸的是,无法下载 APK 的有用部分。
但为了使其更接近这些解决方案,您可以通过 Android App Bundle 将应用程序上传到 Google Play 商店,这使得 Google 能够根据设备配置启用优化的 APK。为此,您可以将一个应用程序划分为多个 APK。此后,用户只能根据其设备配置获取对他们有益的 APK。
9.避免枚举
枚举是可疑的。可以轻松地将单个文件添加到应用程序的classes.dex 文件中(1.0 到1.4 KB 范围内的任何位置)。如果存在复杂的框架或共享库,这些可能会消耗大量的高速。