如何删除 .apk 文件中不必要的代码?

问题描述

我有一个空项目(没有任何类,没有活动),只有对 com.google.android.material:material:1.3.0 的依赖才能编译代码(定义了一种使用它的样式)。

我启用了收缩选项,但是,在生成签名 APK 后,即使该应用程序没有代码,该 APK 中有一个 classes.dex 文件,其中包含大量代码。为什么以及如何摆脱这些,以确保 apk 只包含需要的内容,没有额外的膨胀软件?谢谢。

这是扩展后的 apk:

This is the expanded apk.

解决方法

对于代码压缩,请打开 Proguard,您可以根据需要选择自定义 Proguard 规则。

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

尝试 1

打开 .jar 文件 (appodeal.jar) 并删除所有 .dex 文件。

尝试 2

使用内置检查 Java | Declaration redundancy | Unused declaration

要在整个项目上运行它,请转到 Analyze -> Run inspection by name...,键入 Unused declaration 并选择所需的范围。然后仔细检查输出并在需要时将一些类标记为入口点。

选择列表中的 Unused declaration 节点并对所有未使用的声明立即执行 Safe delete 操作。