• 使用构建缓存加快干净构建的速度
    • 更改构建缓存的位置
    • 清除构建缓存
    • 停用构建缓存

    使用构建缓存加快干净构建的速度

    构建缓存可以存储 Android Plugin for Gradle 在构建您的项目时生成的特定输出(例如未打包的 AAR 和 pre-dexed 远程依赖项)。使用缓存时,您的干净构建将显著加快,因为构建系统在后续构建期间可以直接重用这些缓存文件,而不用重新创建它们。构建缓存也可以在持续性集成服务器上工作,并适合在一台本地机器上运行多个构建进程的情况。

    使用 Android 插件 2.3.0 及更高版本的项目在默认情况下会启用构建缓存(除非您明确停用构建缓存)。不过,如果您将以下构建属性之一设置为与下面所示不同的值,插件将停用 pre-dexed 远程依赖项的缓存。(这些是每个属性的默认设置,因此如果您完全不声明它们,pre-dexed 远程依赖项的缓存将保持启用。)

    1. android {
    2. defaultConfig {
    3. // If you do enable multidex, you must also set
    4. // minSdkVersion to 21 or higher.
    5. multiDexEnabled false
    6. }
    7. buildTypes {
    8. <build-type> {
    9. minifyEnabled false
    10. }
    11. }
    12. dexOptions {
    13. preDexLibraries true
    14. }
    15. ...
    16. }
    17. ...

    :如果您的项目使用 Android 插件版本 2.2.2 或 2.2.3,那么它使用的是实验性版本的构建缓存功能。您应更新您的项目以使用最新版本的 Android 插件。

    如果您想要了解可以让您的构建变快的其他方式,请阅读优化您的构建速度。

    更改构建缓存的位置

    默认情况下,Android 插件将您的缓存保存在 <user-home>/.android/build-cache/ 中。如果您配置以下路径变量(按优先级逐渐降低的顺序列示)之一,Android Studio 将使用 <path-variable>/.android/build-cache/

    • ANDROID_SDK_HOME
    • user.home
    • HOME
      Android 插件将为构建缓存使用一个默认位置,以便在您使用 Android 插件 2.3.0 或更高版本(并且未停用构建缓存)的所有项目之间共享缓存的文件。例如,在您的一个项目构建并缓存 pre-dexed 依赖项后,也使用该依赖项的其他项目可以从共享的构建缓存复制它,再次跳过预 dexing。

      如果希望项目创建其自己的缓存(并且不与其他项目共享该缓存),您可以在该项目的 gradle.properties 文件中为缓存指定一个唯一位置,如下所示:

    1. // You can specify either an absolute path or a path relative
    2. // to the gradle.properties file.
    3. android.buildCacheDir=<path-to-directory>

    完成文件的编辑后,请点击 Sync ProjectUse the build cache - 图1 以创建新的构建缓存目录。

    :避免为您在 <project-root>/build/<project-root>/<module-root>/build/ 目录中的构建缓存指定目录,因为 Gradle 会在每次运行 clean 任务时删除这些目录。

    如果您仅希望将缓存与特定的其他项目共享,请在这些项目的 gradle.properties 文件中指定相同的构建缓存目录。

    清除构建缓存

    Android 插件的 clean 任务可以清除您的项目的 build/ 目录,与之类似,您可以运行 cleanBuildCache 任务来清除您的项目的构建缓存。如果项目为其构建缓存指定非默认目录,从该项目运行此任务仅会清除相关缓存,而无法清除默认位置中的共享缓存。要执行此任务,请从菜单栏中选择 View > Tool Windows > Terminal,并使用以下命令之一:

    • 在 Windows 上:
    1. gradlew cleanBuildCache
    • 在 Mac 或 Linux 上:
    1. ./gradlew cleanBuildCache

    :如果您停用构建缓存,cleanBuildCache 任务将不可用。

    停用构建缓存

    由于构建缓存可以加快您的干净构建的速度,因此不建议停用此功能。如果您仍希望为您的项目停用构建缓存,请将以下内容添加到项目的 gradle.properties 文件中:

    1. // To re-enable the build cache, either delete the following
    2. // line or set the property to 'true'.
    3. android.enableBuildCache=false

    完成文件的编辑后,请点击 Sync ProjectUse the build cache - 图2 以应用您的更改。

    :在您停用构建缓存后,Android 插件将忽略 android.buildCacheDir 属性,cleanBuildCache 任务将不再可用。同样,停用构建缓存不会自动清除构建目录。如果您决定重新启用构建缓存,这样可以让您保留缓存的文件。