【问题标题】:Size of .apk android.apk 安卓的大小
【发布时间】:2018-01-11 05:35:48
【问题描述】:

在构建 apk 文件后,我注意到我的应用程序大小为 2MB(原始文件大小)和 1.7MB(下载大小)。但是该应用程序非常简单,其大小为 classes.dex 单独占用大约 1.3MB 作为

我使用 ProGuard 来混淆代码如下

android {
...

buildTypes {
    release {
        shrinkResources true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'),
        'proguard-rules.pro'
    }
}

我也通过了链接Reduce Size of .apk file this 的堆栈溢出,但没有找到减少.apk 大小的方法。

gradle中添加的唯一依赖是:

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:design:26.1.0'

}

我很确定这是由于支持库加载项。那么有人可以帮我找到减小/最小化这个尺寸的方法吗?

非常感谢任何见解。谢谢。

【问题讨论】:

  • 添加shrinkResources true
  • 感谢您的回复@Amiya,也使用了但忘记在代码中添加该行。正如我提到的,classes.dex 占用了更多空间,所以你知道有什么其他方法可以减小应用程序的大小吗?

标签: android apk


【解决方案1】:

阅读Shrink Your Code and Resources

资源收缩只能与代码收缩结合使用。 在代码收缩器移除所有未使用的代码后,资源收缩器 可以识别应用程序仍在使用哪些资源。这尤其 当您添加包含资源的代码库时为真——您必须 删除未使用的库代码,使库资源变为 未被引用,因此可以被资源收缩器移除。

要启用资源收缩,请在 build.gradle 文件中将 shrinkResources 属性设置为 true(与 minifyEnabled 一起用于代码收缩)。例如:

android {
    ...
    buildTypes {
        release {
            shrinkResources true
            minifyEnabled true
            zipAlignEnabled true <-- optimization
            proguardFiles getDefaultProguardFile('proguard-android.txt'),
                    'proguard-rules.pro'
        }
    }
}

仅供参考

您可以使用VECTOR 图像。使用矢量可绘制对象而不是多个位图可以减小 apk 的大小。

classes.dex:所有Java源文件都转换成Java类文件 通过 Java 编译器。 Android SDK 包含一个名为 dx 的工具 将 Java 类文件转换为 .dex(Dalvik 可执行文件)文件。

【讨论】:

  • 检查我使用的编辑代码。这里提到的大小是在使用“shrinkResources true”之后
  • @Shree 使用矢量(SVG)图像。
  • @Amiya 所附图片清楚地表明 classes.dex 占用了更多大小。在drawable中添加图像没有问题。由于我的图像数量非常少,因此所有图像大小都以某些字节为单位。还有什么办法吗?
  • @Shree 有任何反馈吗?你缩小尺寸了吗?
  • 不,大小保持不变。但我找到了解决方案,大 .apk 的原因是支持库依赖。无论如何感谢您的回复。你提到的博客信息量很大。
猜你喜欢
  • 2014-03-05
  • 2017-03-02
  • 2016-12-11
  • 2018-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-15
  • 1970-01-01
相关资源
最近更新 更多