诗林 发表于 2024-8-22 02:59:42

Android APK体积优化指南:清理项目,打造更小的APK、更快的构建速率和更好

https://i-blog.csdnimg.cn/blog_migrate/b206ca0baa537363a52333e6d7dec76e.png
Android APK体积优化指南:清理项目,打造更小的APK、更快的构建速率和更好的开辟体验

在任何软件项目中,开辟是一个连续的过程,随着时间的推移,代码库会变得越来越复杂。这种复杂性可能导致构建时间变慢、APK体积变大,以及开辟体验变得不那么高效。在本指南中,我们将介绍一些保持您的Android项目干净高效的实践方法。
1. 移除未使用的资源

减小APK大小的最简单方法之一就是移除未使用的资源。这些资源很轻易被忽视,并且随着时间的推移会逐渐累积。如果您想从项目中移除全部未使用的资源,可以使用Android Studio菜单中的"Refactor > Remove Unused Resources"。
https://i-blog.csdnimg.cn/blog_migrate/c5cbd17b5520e557505e6ce7e7ffdef0.png
这将查找并删除项目中的全部未使用资源。例如,如果您有一个未使用的drawable像如许:
https://i-blog.csdnimg.cn/blog_migrate/15ce1ffca3b7703f082e25656aab42e9.png
您可以通过使用Android Studio菜单中的"Refactor > Remove Unused Resources"来删除它。
https://i-blog.csdnimg.cn/blog_migrate/29eab091f783de3bd8fe0652b4555e87.png
另一种移除未使用资源的方法是在您的build.gradle文件中使用shrinkResources。这不会实际从项目中删除资源,但会在构建APK时将其移除。让我们看一个怎样在build.gradle文件中使用shrinkResources的示例:
buildTypes {
    release {
      isMinifyEnabled = true
      isShrinkResources = true
      proguardFiles(
            getDefaultProguardFile("proguard-android-optimize.txt"),
            "proguard-rules.pro"
      )
    }

    debug {
      isMinifyEnabled = false
      isShrinkResources = false
      proguardFiles(
            getDefaultProguardFile("proguard-android-optimize.txt"),
            "proguard-rules.pro"
      )
    }
}
然后创建一个不使用shrinkResources的APK并进行分析。
https://i-blog.csdnimg.cn/blog_migrate/12868904027a03a83bebafaece8911e8.png
在这里,您可以看到APK大小的一大部分是由我们添加的大图像引起的。现在让我们将shrinkResources添加到我们的build.gradle文件中,再次创建一个APK:
buildTypes {
    release {
      isMinifyEnabled = true
      isShrinkResources = true
      proguardFiles(
            getDefaultProguardFile("proguard-android-optimize.txt"),
            "proguard-rules.pro"
      )
    }

    debug {
      isMinifyEnabled = true
      isShrinkResources = true
      proguardFiles(
            getDefaultProguardFile("proguard-android-optimize.txt"),
            "proguard-rules.pro"
      )
    }
}
在这里,您可以看到通过使用shrinkResources大幅减小了APK大小。
https://i-blog.csdnimg.cn/blog_migrate/fed3dbac7991dcf73fd1b8ef92886c02.png
注意:不要忘记R8也可以帮助缩小应用程序大小。不是用于移除未使用资源,而是用于移除未使用的代码。
另一种移除、究竟上查找未使用资源的方法是使用lint。请记住,lint是一个静态代码分析工具,用于检查您的Android项目中潜伏的错误和优化改进。它还会找到未使用的资源并在lint陈诉的“未使用资源”部分体现出来。
您可以通过在终端中运行以下命令生成一个lint陈诉:
./gradlew lint
运行此命令后,lint将生成一个陈诉,您可以在“未使用资源”部分中看到未使用的资源。但请记住,是否移除它们取决于您,lint只是展示未使用的资源。
https://i-blog.csdnimg.cn/blog_migrate/bc8fc179e5b646ab8db5918e1f3a570e.png
2. 移除未使用的代码

移除未使用的代码是减小APK大小的另一种方法。虽然不如移除未使用资源有效,但仍然可以帮助。至少,这将使您的代码库更加干净且更易于维护。
为了找到未使用的代码,主要包括未使用的类、方法和字段,您可以通过Android Studio菜单中的"Analyze > Run Inspection by Name > Unused Symbol"来检测它们。
https://i-blog.csdnimg.cn/blog_migrate/c736b48a67f96c942fde0ef77b712d4d.png
这将查找项目中的未使用代码并在弹出窗口中体现出来。在那里,您可以看到未使用的代码并将其移除。
假设我们有一个未使用的类如下:
class X {
    private val y = 0

    fun z() = Unit
}
然后您可以通过使用"Analyze > Run Inspection by Name > Unused Symbol"来检测它,并在右侧点击安全删除按钮。执行此操纵后,您会看到未使用类已从项目中移除。
https://i-blog.csdnimg.cn/blog_migrate/2486144263285967a9de077050258116.png
别的,应用程序中另一个较大的部分通常来自我们使用的库。如果未使用的库保存在项目中,它们将增加APK的大小。为了找到未使用的库,您可以使用Android Studio菜单中的"Analyze > Run Inspection by Name > Unused Library"。
https://i-blog.csdnimg.cn/blog_migrate/f08e6fcaffde029cc46c9f510d9bd2b2.png
这将查找项目中未使用的库并在弹出窗口中体现出来。在那里,您可以看到未使用的库并将其移除。
例如,让我们将“glide”库添加到我们的项目中。然后运行这个分析:
implementation("com.github.bumptech.glide:glide:4.16.0")
然后当您运行"Analyze > Run Inspection by Name > Unused Library"时,您会发现glide库在项目中未被使用,您可以通过点击删除按钮将其移除。
https://i-blog.csdnimg.cn/blog_migrate/9fa2a68a62a2985b450462332c01a5ac.png
在这份全面的指南中,我们探讨了优化Android项目的根本实践方法,以实现更小的APK大小、更快的构建时间和更出色的开辟体验。希望这些内容可以或许帮助您优化项目,使其更小、更干净。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Android APK体积优化指南:清理项目,打造更小的APK、更快的构建速率和更好