如何减少使用资产文件夹中pdf文件的android应用大小

问题描述 投票:0回答:1

我正在使用资产文件夹中的pdf文件制作图书应用。压缩后所有文件均为10-20mb。如何缩小应用程序的大小?当前是500 + mb。

android android-studio resize apk android-assets
1个回答
0
投票

[Android Studio提供了一个非常有用的工具:APK Analyser APK分析器将关闭您的应用程序,并让您知道.apk文件中的哪个组件占用的空间更大?让我们看看没有进行任何优化的防盗屏幕锁定apk文件。

APK Analyser Example 1

从apk分析器输出中,您可以看到应用程序原始大小约为3.1MB。应用播放存储压缩后,应用程序大小约为2.5 MB。从屏幕截图中可以看到,主要的3个文件夹占用了大多数应用程序大小。

  • classes.dex —这是dex文件,其中包含将在DVM或ART上运行的Java代码的所有字节代码文件。
  • res-此文件夹包括res文件夹下的所有文件。大多数情况下,它将包含所有图像,图标和原始文件,菜单文件以及布局。
  • resources.arsc-此文件保存所有有价值的资源。该文件包含您在不同值文件夹下的所有数据。此资源包含字符串,尺寸,样式,整数,id等。

APK Analyser Example 2

所以,现在您知道APK是由什么组成的。让我们来看看,如何通过逐一优化组件来减小应用程序的大小。

减少classes.dex:

正如我们所讨论的,它包含所有Java代码。在构建应用程序时,gradle将合并所有模块中的所有.class文件,并将这些.class文件转换为.dex文件,并将它们合并为单个classes.dex文件。单个classes.dex文件可以容纳大约64K个方法。如果超过此限制,则必须在项目中启用multidexing。这将创建另一个classes1.dex文件以包含所有剩余方法。因此,classes.dex文件的数量取决于您拥有的方法的数量。

APK Analyser Example 3

您可以看到当前的“防盗屏幕锁”包含4392类和29897方法。此结果没有应用proguard。您可以应用两个默认的proguard文件。

-proguard-android-optimize.txt

-proguard-android.txt

顾名思义,“ proguard-android-optimize.txt”是更具侵略性的progurard配置。我们将其用作默认的proguard配置。您可以在/ app目录proguard-rules.pro文件中添加自定义proguard配置。

Compression Gist 1

通过将minifyEnabled

设置为true(在Compression Gist 1中,您要告诉Proguard删除所有未使用的方法,说明并缩小classes.dex文件。

这里是缩小启用的APK的结果,

APK Analyser Example 4

您可以通过在项目的每个模块中启用proguard来看到,我们可以将classes.dex文件大小减少近50%。同样,您可以看到方法数量从29897减少到15168(几乎50%)。

大小从3.1 MB减小到1.98MB。 (减少约50%)

减少分辨率:

apk大小中第二大的组件是res文件夹,其中包含所有图像,原始文件和XML。您无法添加/删除/修改XML,因为它们包含您的布局。但是我们可以减少图像文件。

  • “ shrinkResources”属性将删除所有资源,这些资源未在项目中的任何地方使用。通过添加以下行在build.gradle文件中启用此功能:
  • Compression Gist 2

  • “ resConfigs”属性将在构建应用程序时删除所有其他本地化资源。在我们的案例中,“防盗屏幕锁”仅支持英语。虽然所有支持库可能都有其他语言的本地化文件夹。我们不需要的因此,添加以下行以仅允许将英语资源添加到APK文件中。
  • Compression Gist 3

  • Android Studio 2.3,并且您的应用程序最低版本为18或更高版本,应使用webp而不是png。 webp图像的大小小于png文件,并且保留了原始图像质量。除此以外,Android还原生支持webp图像。因此,您可以像其他栅格图像一样在ImageView中加载webp图像。因此,您不必更改布局。
  • 您可以从项目中选择可绘制文件夹和mipmap文件夹,右键单击并选择转换为webp

。这将在配置对话框下面打开。

convert to webp按确定,它将所有png图像一一转换为webp格式。如果webp图片的大小大于png,则Android Studio将自动跳过该文件。

让我们看看最终结果:

APK Analyser Example 5

  • res文件夹的大小从710KB减少到597KB。
  • 通过应用上述简单的技巧,应用程序大小从3.19 MB减小到1.89 MB。

快乐编码😊

© www.soinside.com 2019 - 2024. All rights reserved.