如何在 Android 中减小 APK 大小?

简介: 如何在 Android 中减小 APK 大小?

用户体验中APK 的大小是最重要的因素之一。没有用户愿意安装一个非常大的 APK 并在下载该 APK 时消耗他的数据。APK 大小会影响您的应用性能,包括它的加载速度、消耗的内存量以及使用的内存量。在开发时查看您的 APK 大小非常重要。在本文中,我们将了解在 Android Studio 中减小 APK 大小的技巧。

1.删除未使用的来源

APK 的大小取决于非常小的因素,而不是您的应用中使用的代码、图像和资产。要减小 APK 的大小,请删除未使用的源,这将有助于在一定程度上减小 APK 的大小。删除未使用的 APK 源,例如未使用的 png、jpeg 和许多其他资产。小尺寸图像也更适合减小 APK 大小。建议使用矢量绘图而不是其他图像格式,如 JPEG、PNG 等。矢量绘图尺寸很小,矢量绘图的主要优点是即使在增加或减小尺寸后它们也不会失去质量。另外so文件不需要全部集成可以删除多余部分。

2. Vector Drawables的使用

避免使用 jpegs 和 pngs 图像,因为与普通矢量可绘制对象相比,它们消耗非常高的内存。矢量绘图很容易扩展,并且它们的质量不会随着大小的变化而降低。

3. 重用你的代码

尽可能重用您的代码,而不是重复代码。面向对象编程将帮助您解决这个问题,这也将有助于保持 APK 的大小。重复代码会增加该特定文件的大小,并导致 APK 大小增加。  

4.压缩PNG和JPEG文件

在大多数情况下,图像是降低应用内和网站性能的主要目的。因此,最好使用压缩图像来减小其大小并提高应用程序性能。图片的大小也会影响 APK 的大小,因此最好在您的应用中使用压缩图片。您可以使用许多在线平台免费压缩图像。

5. Lint的使用

Lint 是重要的工具之一,它将帮助我们在您的应用程序中获取未使用和重复的代码。因此,此工具将有助于删除重复和未使用的代码。  

6.使用WebP文件格式的图片

WebP 是谷歌开发的另一种著名的图像格式。这种图像格式通常侧重于图像质量和优化。与其使用 PNG 和 JPEG 格式的图像,不如使用 WebP 图像格式,因为它的质量更高。

7.proguard的使用

Proguard 在调整 Android APK 的大小方面也起着重要的作用。使用 Proguard 的主要功能如下:

它使应用程序难以进行逆向工程。

它通过删除未使用的类和方法来帮助减小应用程序的大小。

Android App 中的 Proguard 可以在Gradle Scripts > build.gradle文件中找到。

proguardFiles

getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

8. ShrinkResources 的使用

ShrinkResources 方法将显示在 build.gradle 文件中。此方法将删除项目中未使用的资源。您必须通过将其指定为 true 来启用它。你可以在build.gradle 文件 > buildTypes > release > shrinkResources中找到这个方法。选择开启。

9.使用R8减小APK大小

R8 的工作方式与 proguard 类似。R8 收缩是我们减少代码量的过程,这有助于自动减少 APK 大小。R8 使用 proguard 规则并更快地收缩代码,即输出大小。

10.限制外部库的使用

在我们的应用程序中添加许多外部功能时,我们更喜欢使用一些外部库。这些外部库将安装它们提供的类,其中一些类不是必需的,也没有用,它们会消耗存储空间并导致 APK 大小增加。因此最好限制外部库的使用以减小 APK 大小。

11. 使用 Android Size Analyzer 工具

在 Android Studio 中有一个名为 Android Size Analyzer 的插件,该工具将帮助查找我们的 APK 的不同文件消耗的内存量。除了这个 Size,Analyzer 工具还会为我们提供一些有助于减小 APK 大小的提示。要分析您的 APK 大小,您只需单击构建 > 分析 APK选项,然后选择您的 APK。您将看到文件的实际大小以及可下载的大小。借助此工具,您还可以比较以前 APK 与新 APK 的大小。

12. 生成 App Bundles 而不是 APK

Android App Bundle 是一种由 Google 提供的发布格式。它由您的应用程序的代码和资源组成,不同于 APK 生成和签名到 Google Play。Google Play 将处理您的应用程序包,它会根据设备配置为特定设备生成优化的 APK。当您使用 app bundle 时,您不必为不同的设备生成多个 APK 文件。要为您的应用生成 app bundle,您只需点击 Build>Build Bundle(s)/APK(s),然后点击 Build Bundle(s)。将生成您的应用程序包。

13. 使用多个 APK 文件

如果您不想为您的应用程序创建捆绑包,那么您可以选择创建多个 APK 文件的选项。可以使用多个 APK 文件来支持不同的设备类型和不同的 CPU 架构。

14. 减少库大小

如果您正在使用这些库在项目中添加一些自定义视图,那么您可以添加 Google 提供的官方库。通常添加库可以更轻松地在我们的应用程序中轻松添加新功能,但同时它也会影响我们应用程序的大小。最好在构建任何应用程序时减少库的使用。

15. Resconfigs 的使用

在构建 Android 应用程序时,其中存在一些默认资源。我们在设备中使用的所有这些支持库都有其他语言的本地文件夹,我们实际上不在我们的应用程序中。这些文件夹还在我们的应用程序中占用一些内存位置。我们可以使用 resConfigs 删除我们的 APK 中不需要的这些资源,这将有助于将应用程序大小减少一定数量。如果您正在构建一个仅针对特定受众的特定应用程序,并且该受众仅使用特定语言(如英语),那么我们将仅保留资源,我们将删除所有其他不需要的语言。

16.删除只需要调试的库

许多开发人员使用一些特定的库来调试他们的 APK 文件。这些调试库也会在我们的 APK 文件中占用一些存储空间。我们可以在我们的应用程序中使用debugImplementation()方法仅在调试时使用这些调试库。因此,这些库将仅在调试时使用,不会添加到您的发布 APK 文件中。

相关文章
|
6月前
|
机器学习/深度学习 Java Shell
[RK3568][Android12.0]--- 系统自带预置第三方APK方法
[RK3568][Android12.0]--- 系统自带预置第三方APK方法
632 0
|
3月前
|
Java Android开发 Windows
使用keytool查看Android APK签名
本文介绍了如何使用Windows命令行工具和keytool查看APK的签名信息,并提供了使用AOSP环境中的signapk.jar工具对APK进行系统签名的方法。
353 0
使用keytool查看Android APK签名
|
3月前
|
Android开发
将AAB(Android App Bundle)转换为APK
将AAB(Android App Bundle)转换为APK
239 1
|
3月前
|
Android开发 开发者
Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)
Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)
262 1
|
3月前
|
Android开发
解决android apk安装后出现2个相同的应用图标
解决android apk安装后出现2个相同的应用图标
339 2
|
4月前
|
Android开发
【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk
【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk
132 0
|
5月前
|
Android开发
Android Gradle开发—脚本实现自动打包后复制一份APK文件,并修改APK名称,到指定目录作备份
Android Gradle开发—脚本实现自动打包后复制一份APK文件,并修改APK名称,到指定目录作备份
276 0
|
6月前
|
XML API Android开发
android S 上 安装apk出现android.os.FileUriExposedException
android S 上 安装apk出现android.os.FileUriExposedException
72 6
|
6月前
|
设计模式 缓存 Java
补齐Android技能树——从AGP构建过程到APK打包过程,安卓rxjava面试
补齐Android技能树——从AGP构建过程到APK打包过程,安卓rxjava面试
|
5月前
|
Shell Go 开发工具
How to decompile Google Android .apk file as readable dump【原创】
How to decompile Google Android .apk file as readable dump【原创】
34 0