通过Gradle和Android Studio构建和运行应用程序比通过Eclipse慢


460

我有一个多项目(〜10个模块),每次构建大约需要20-30秒。当我在Android Studio中按“运行”时,我每次都必须等待以重建应用程序,这非常慢。

是否可以在Android Studio中自动进行构建过程?或者您对如何加快此过程有任何建议?

在Eclipse中,由于具有自动构建功能,因此在模拟器上运行同一项目大约需要3-5秒。

这是我的build.gradle文件(应用模块):

buildscript {
    repositories {
        maven { url 'http://repo1.maven.org/maven2' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':libraries:SharedLibs')
    compile project(':libraries:actionbarsherlock')
    compile project(':libraries:FacebookSDK')
    compile project(':libraries:GooglePlayServices')
    compile project(':libraries:HorizontalGridView')
    compile project(':libraries:ImageViewTouch')
    compile project(':libraries:SlidingMenu')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 16
    }
}

23
请记住,目前基于Gradle的构建系统和Android Studio都不是生产级的。
CommonsWare

11
在这里花费的时间很可能在DEXing阶段。不幸的是,android studio的make似乎每次都执行一次清理操作,从而导致以前删除的文件被删除。希望我们很快会看到增量构建修复。
理查德·罗斯三世

3
同时,是否有任何简单的方法来告诉您更改默认的Gradle任务,以使它们不一定总是执行清除操作?
sigmabeta

10
@CommonsWare很好,现在我们没有使用1.02版本的借口,但它仍然是一个主要问题。在运行Android Studio的情况下,我的4GB四核笔记本电脑仅使用一个hello world项目的实例就使用了约3.75gb的内存。结果也很迟钝。对我而言,这表明存在严重且持续的设计缺陷。希望事情早日解决。
Andrew S

7
@AndrewS我感到很遗憾,我们需要更改我们的操作系统,以便与以前的工具相比,能够以合理的速度运行。
理查德·勒·马修里尔

Answers:


441

硬件

很抱歉,但是将开发站升级到SSD和大量的ram可能会产生比以下几点加起来更大的影响。

工具版本

提高构建性能是开发团队的首要任务,因此请确保您使用的是最新的GradleAndroid Gradle插件

配置文件

创建一个gradle.properties在任何适用目录中命名的文件:

  • /home/<username>/.gradle/ (Linux)
  • /Users/<username>/.gradle/ (苹果电脑)
  • C:\Users\<username>\.gradle (视窗)

附加:

# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# The Gradle daemon aims to improve the startup and execution time of Gradle.
# When set to true the Gradle daemon is to run the build.
# TODO: disable daemon on CI, since builds should be clean and reliable on servers
org.gradle.daemon=true

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# https://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e#.krd1mm27v
org.gradle.jvmargs=-Xmx5120m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true

# Enables new incubating mode that makes Gradle selective when configuring projects. 
# Only relevant projects are configured which results in faster builds for large multi-projects.
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
org.gradle.configureondemand=true

# Set to true or false to enable or disable the build cache. 
# If this parameter is not set, the build cache is disabled by default.
# http://tools.android.com/tech-docs/build-cache
android.enableBuildCache=true

如果将Gradle属性放在,则它们在本地工作;如果将它们放在projectRoot\gradle.properties,则在全局范围内工作user_home\.gradle\gradle.properties。如果从控制台或直接从idea运行gradle任务,则应用的属性:

IDE设置

可以从IDE设置GUI调整Gradle-IntelliJ集成。启用“离线工作”(从检查答案Yava公司下文)将在每一个“的gradle同步文件”禁用真正的网络请求。

IDE设置

原生多索引

apk构建最慢的步骤之一是将java字节码转换为单个dex文件。启用本机multidex(仅minSdk 21用于调试版本)将有助于该工具减少工作量(请参见下面的Aksel Willgert的回答)。

依存关系

优先@aar于库子项目的依赖项。

mavenCentraljCenter上搜索aar包,或使用jitpack.io从github构建任何库。如果您不编辑依赖库的源代码,则不应每次都使用项目源代码来构建它。

防毒软件

考虑从防病毒扫描中排除项目和缓存文件。显然,这是在安全性上的权衡(不要在家中尝试!)。但是,如果您在分支之间进行大量切换,则防病毒软件将在允许gradle进程使用它之前重新扫描文件,这会减慢构建时间(尤其是带有gradle文件和索引任务的AndroidStudio同步项目)。测量启用和不启用防病毒功能的构建时间并处理CPU,以查看是否相关。

分析构建

Gradle具有对概要分析项目的内置支持。不同的项目使用的插件和自定义脚本的组合不同。使用--profile将有助于发现瓶颈。


1
关于@aar缺陷:使用eg dependencies {compile 'com.android.support:support-v4:21.0.+'}是一个缓慢的解决方案吗?不确定要了解
younes0 2014年

1
成像,您已经添加了像这样的库:github.com/novak/numberpicker。它具有价值,可以为问题提供代码解决方案,但作者并未像maven或jCenter那样在任何地方发布。现在,您可以将该库作为源带入您的项目中,并在每次主项目构建时进行构建,或者一次编译一次,仅将@aar提交到您的项目存储库中。因此,这实际上是源/二进制依赖项选择。如果您不编辑源代码,则应将依赖项作为预编译的二进制文件。对于.jar的纯Java库,对于.aar的android库
Sergii Pechenizkyi 2014年

1
它是项目设置> gradle。请参见以下屏幕截图:i.stack.imgur.com/wrwgo.png
Sergii Pechenizkyi 2014年

2
我已经按照说明设置了所有优化,但是在Android Studio中,启动我的应用需要3到4分钟,而在Eclipse中则需要30秒。废话 只有12个项目,一个应用程序可以运行!Android开发人员现在变得如此繁琐,而一年多之后。
3c71

1
我应用了所有优化,构建一个HelloWorld apk仍然需要大约20秒钟,而在Eclipse中则需要2-3秒钟。
Pawel 2015年

148

您可以忽略gradle最新更新检查。

在此处输入图片说明

对于运行Android Studio 1.5的Windows: File -> Settings -> Build, Execution, Deployment -> Build tools -> Gradle -> Check Offline work (as shown in image)

从〜30 +秒降低到〜3秒


24
太酷了。那快很多。但是,这有什么用呢?
约翰·巴林格

2
最佳解决方案。我能知道这种解决方案的副作用
吗?

26
@JohnBallinger脱机工作-使用此复选框可在脱机模式下使用Gradle。在这种情况下,Gradle将使用缓存中的依赖项。Gradle将不会尝试访问网络来执行依赖关系解析。如果所需的依赖项不在依赖项的缓存中,则构建执行将失败。(来源:jetbrains.com/idea/help/gradle-2.html
cprcrack 2014年

10
在通过网络访问之前,是否默认先使用缓存的依赖项?我无法想象每次gradle运行都会检查更新的依赖项。真奇怪
Ehtesh Choudhury

1
@EhteshChoudhury,这很奇怪。整个Gradle / Android Studio开发环境是如此糟糕。大多数人认为这是由于Java造成的。我在IDEA上进行服务器端Java开发,并且运行非常顺利。
stepanian '16

34

在各处进行搜索,最后找到适合我们的解决方案。启用并行构建(在OSX上:)preferences -> compiler -> gradle -> "Compile independent modules in parallel"并启用“自动创建项目”,使并行构建从大约1分钟降低到大约20秒。感谢/ u / Covalence。

http://www.reddit.com/r/androiddev/comments/1k3nb3/gradle_and_android_studio_way_slower_to_build/


56
20秒仍然非常慢。
约翰内斯·布罗德沃尔

6
请记住,这显然仅在您具有多个独立的模块/项目时才有用。我已经在一个模块应用程序上对其进行了测试,但没有任何区别。
山姆

我有一个相当大的项目,在MacBook Pro 2012 Core i7和8 GB RAM上需要2-3分钟。可以吗
塞米利翁

25

我最近买了一个新的SSD,从Windows转到Linux,现在我的构建时间快了一个数量级,不再烦人了。

尽管它没有直接回答您为什么它比Eclipse慢的问题,但它表明该过程受磁盘限制,并且升级到SSD可能是一个(有些昂贵的)解决方案。我猜想会有人去研究这个问题,然后到这里结束,他们可能会欣赏我的经验。


11
我团队的开发人员在具有大量内存的快速计算机中拥有快速SSD。对于不平凡的应用程序,与在Eclipse中几乎立即重新部署相比,在微小的代码更改后重新部署仍然需要大约45秒。即使运行普通的非Android JUnit也非常慢。到目前为止,“升级”到Android Studio和Gradle的降级很大。:-/
spaaarky15年

@Lionleaf从Windows切换到Linux的速度要快多少?
younes0 2015年

@ younes0我不知道。我同时切换到Linux到SSD。我并不是说这有任何积极的作用,只是我为加速更改了这两个变量。
AndreasLøveSelvik

4
以我
为例,

我赞同@Bartosz Kosarzycki所说的。我最终在我的开发机器上运行带有virtualbox的Ubuntu vm。在Windows上构建约54秒,对于在同一硬件上的虚拟机内部进行相同构建,约需7秒。迁移到Linux可以实现疯狂的加速。
埃里克·康奈尔森

20

加快Android Studio 3.2.1中的Gradle构建

是否曾经想过等待几分钟才能在Android Studio中完成构建?我也是。这很烦人。幸运的是,有几种方法可以用来改善这一点。Android使用Gradle进行构建。最新版本是4.6,与以前的版本相比,性能有了巨大提高(有关详细信息,请参阅发行说明)。

步骤1:更新Gradle版本完成此操作的更简单方法是转到:打开模块设置(您的项目)>项目结构

在此处输入图片说明

更新

更改为Gradle版本:4.6 和更改为Android插件版本:3.2.1

在此处输入图片说明

https://services.gradle.org/distributions/gradle-4.6-all.zip下载Gradle Release发行版, 并将其复制到Gradle文件夹:

在此处输入图片说明

最后一步是在“设置”>“ Gradle”中添加您的分配

在此处输入图片说明

不要忘记单击“应用”以保存更改。

步骤2:为项目启用离线模式,Gradle守护程序和并行构建离线模式告诉Gradle忽略更新检查。Gradle每次都会要求依赖项,并且具有此选项会使它仅使用计算机上已有的依赖项。从android studio设置转到Gradle,然后在离线工作框中单击。

在此处输入图片说明

  1. 从android studio设置转到编译器,然后在命令行框中添加“ — offline”,然后单击并行编译独立模块。

在此处输入图片说明

下一步是为您的项目启用Gradle守护程序和并行构建。并行构建将导致具有多个模块的项目(Gradle中的多项目构建)并行构建,这将使大型或模块化项目的构建速度更快。

在此处输入图片说明

这些设置可以通过在Gradle脚本目录中修改一个名为gradle.properties的文件(即〜/ .gradle / gradle.properties)来启用。其中一些选项(例如并行的Complie模块)可以从Android Studio获得,也可以通过在以下位置启用默认情况下,但是将它们放在gradle.properties文件中将在从终端进行构建时启用它们,并确保您的同事将使用相同的设置。但是,如果您在团队中工作,有时就无法提交这些东西。

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit org.gradle.parallel=true
# When set to true the Gradle daemon is used to run the build. For local developer builds this is our favorite property.
# The developer environment is optimized for speed and feedback so we nearly always run Gradle jobs with the daemon.
 org.gradle.daemon=true

使用守护程序可以使您的构建启动更快,因为它不必每次都启动整个Gradle应用程序。Gradle守护程序默认情况下未启用,但建议始终在开发人员的计算机上启用它(但对于连续集成服务器则将其禁用)。有关此模式的常见问题解答,请参见https://docs.gradle.org/current/userguide/gradle_daemon.html。对于某些项目,并行构建设置可能不安全。要求是所有模块都必须解耦,否则构建可能会失败(有关详细信息,请参见http://gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects)。

第3步:启用增量dexign和调整内存设置您可以通过启用增量解压缩来加快构建速度。在模块的构建文件中:

在此处输入图片说明

将此选项添加到您的android块:

dexOptions {
    incremental true
}

在该dexOptions块中,您还可以指定dex进程的堆大小,例如:

dexOptions {
    incremental true
    javaMaxHeapSize "12g"
}

其中“ 12g”是12GB的内存。有关此问题的其他信息,请参见google.github.io/android-gradle-dsl/current/。您还可以在设置文件中配置Gradle参数,例如,如果您有大型项目,则增加最大堆大小:

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

在此处查看所有参数列表:https : //docs.gradle.org/current/userguide/userguide_single.html#sec : gradle_configuration_properties了解详细信息。

第四步:禁用防病毒考虑将项目和缓存文件从防病毒扫描中排除。显然这是在安全性上的权衡。但是,如果您在分支之间进行大量切换,则防病毒软件将在允许gradle进程使用它之前重新扫描文件,这会减慢构建时间(特别是带有gradle文件和索引任务的Android Studio同步项目)。测量构建时间并在启用和未启用防病毒功能的情况下处理CPU,以查看是否相关。我希望这有帮助。如果您有任何疑问或其他一些提高构建性能的技巧,请发表评论。

有用的链接


19

如果使用Google Play服务,则取决于您需要的库而不是整个Blob,可以使事情变得更快。

如果您唯一需要的是地图,请使用:

compile 'com.google.android.gms:play-services-maps:6.5.+'

代替:

compile 'com.google.android.gms:play-services:6.5.+'

后者将20k方法(请参阅博客)带入类路径,这可能使方法总数超过64k。

即使在调试版本中,这也将迫使使用proguard或multidex。对于我的一个项目,我有以下构建时间

  • multidex构建(带有支持库)〜40秒
  • proguard建立〜20秒
  • 当方法限制<64k〜5sec时构建

如果在sdk 21+上进行开发,则可以按照android文档中所述优化multidex版本

android {
    productFlavors {
        // Define separate dev and prod product flavors.
        dev {
            // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
            // to pre-dex each module and produce an APK that can be tested on
            // Android Lollipop without time consuming dex merging processes.
            minSdkVersion 21
        }
        prod {
            // The actual minSdkVersion for the application.
            minSdkVersion 14
        }
    }
    ...
}

2
相反,编译所有的play-service图书馆,我只编译mapslocations 和禁用multidex。我觉得有很大的不同。感谢+1
Sami Eltamawy

16

可接受的答案适用于旧版本的android studio,并且大多数现在仍然可以使用。更新android studio使其速度更快。不必指定堆大小,因为堆大小会随着Xms和Xmx的增加而自动增加。这是VMoptions的一些修改

  1. 在bin文件夹中,有一个studio.vmoptions文件来设置环境配置。在我的情况下,这是studio64.vmoptions。如果尚未添加以下行,则添加它们并保存文件。就我而言,我有8GB RAM。

    -Xms4096m
    -Xmx4096m
    -XX:MaxPermSize=2048m
    -XX:+CMSClassUnloadingEnabled
    -XX:+CMSPermGenSweepingEnabled 
    -XX:+HeapDumpOnOutOfMemoryError
    -Dfile.encoding=utf-8`
  2. 启动android studio。转到文件->设置->构建,执行,部署->编译器

    • 并行检查编译独立模块
    • 在命令行选项中输入:--offline
    • 选中自动创建项目
    • 检查按需配置

如果使用Mac,一开始我找不到vmoptions。无论如何,这是一篇不错的文章,介绍了如何在MAC OSX中更改vmoptions。这里引用本文。

打开终端,并输入以下命令以打开MAC OSX中的vmoptions:

open -e /Applications/Android\ Studio.app/Contents/bin/studio.vmoptions

1
从AS 2.3.2开始,您可以通过help-> Edit Custom Vm Options
Sam Sam '22

15

只需在以下目录中创建一个名为gradle.properties的文件:

/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)

将此行添加到文件中:

org.gradle.daemon=true

对我来说,速度现在等于Eclipse。

资料来源:https : //www.timroes.de/2013/09/12/speed-up-gradle/


我无法在Mac中看到.gradle文件夹。怎么打开呢?
Dharmik 2014年

@Dharmik:也许您已使用其他用户名安装了Android Studio。否则,我猜它没有正确安装。
Yster

1
不,这是另外一个问题。“.gradle”系统文件夹是隐藏的。所以我去走=>前往文件夹,比我发现.gradle文件夹..多谢快速回复..
Dharmik

14

如果从命令行使用gradle,则可以使过程更快。对于IDE开发人员,有很多优化要做。但这只是一个早期版本。

有关更多信息,请与一些开发人员一起阅读有关g +的讨论


3
即使在2016
-Leo支持Monica Cellio

11

如果有人正在开发通过Subversion同步的项目,并且这种情况仍在发生,我认为这会减慢Android Studio中的工作流程。例如,如果它在以下情况下运行非常缓慢:在我的应用程序仍在设备上运行时滚动类,xml等。

  • 转到“首选项”中的“版本控制”,并将“ Subversion”设置为“无”。在此处输入图片说明

1
您节省了我的时间:2/4分钟-> 15秒(我为项目禁用了Tortoise HG)。
kaftanati

3
如果有人仍在使用Subversion,则应切换到Git或Mercurial
Leo支持Monica Cellio

8

在Android Studio 2.3之后更新

所有答案都很棒,我鼓励在此方法中使用这些方法以提高构建速度。

在2016年9月发布android 2.2之后,Android释放了实验性构建缓存功能以加快gradle构建性能,该功能现已从Android Studio 2.3 Canary正式发布。(官方发行说明)

它引入了一项新的构建缓存功能,默认情况下启用此功能,它可以通过存储和重用在相同或不同Android的先前构建中创建的文件/目录来加快构建时间(包括完整构建,增量构建和即时运行)项目。

如何使用:

gradle.properties文件中添加以下行

android.enableBuildCache = true
# Set to true or false to enable or disable the build cache. If this parameter is not set, the build cache is enable by default.

清理缓存:

  • 有一个新的Gradle任务要求cleanBuildCache您更轻松地清理构建缓存。您可以通过在终端中键入以下内容来使用它:

    ./gradlew cleanBuildCache

  • 或者您可以通过删除以下位置的所有文件存储来清理Android studio 2.2的缓存

    C:\Users\<username>\.android\build-cache


7

更改此设置后,我的编译持续时间10分钟更改为〜10秒。

步骤1:

设置(ctrl + Alt + S)->

构建,执行,部署->

编译器->

--offline在命令行选项框中键入“ ”。

第2步:

选中“并行编译独立模块”复选框。

并单击“应用”->“确定”

在此处输入图片说明

参考-https: //www.sundoginteractive.com/blog/speed-up-gradle-in-android-studio

坏处:

您将无法下拉build.gradle文件中标识的依赖关系的最新版本。它运行更快,因为它使用了这些导入库的缓存快照。

重要说明:部署应用程序时,请删除此设置并使用最新版本的依赖项进行构建。


6

解决了我的

File -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle -> Offline work

Gradle版本从8分钟延长到3秒。


4

这是帮助这位初学者的Android程序员(几年前为前专业程序员)加速Android Studio 2.2的原因。我知道这是一种重新演练,但是仅在一个地方进行总结

最初的构建仍然可能很慢,但是现在通常可以容忍重新启动正在运行的应用程序。我使用的是次优的PC:AMD四核A8-7410 CPU,8MB RAM,非SSD HD,Win10。(而且,这是我的第一个Stack Overflow发布....;)

在设置中->渐变:

是的,对于“离线工作”(这可能是最重要的设置)。

在设置->编译器中:

是的,“并行编译独立模块”(不确定是否确实有助于利用多核CPU)。

在脚本中,“ build.gradle(模块:应用程序)”:

defaultConfig {
    ...
   // keep min high so that restarted apps can be hotswapped...obviously, this is hugely faster.
   minSdkVersion 14
   ...
    // enabling multidex support...does make big difference for me.
    multiDexEnabled true

还在SCRIPTS中,“ gradle.properties(项目属性)”:

org.gradle.jvmargs = -Xmx3048m -XX:MaxPermSize = 512m -XX:+ HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8

org.gradle.parallel = true org.gradle.daemon = true

另外,在物理设备(而不是仿真器)上进行测试对我来说效果很好。站立起来的小平板电脑很方便。


4

另一个提高性能的提示:

Android Studio 3.0包含名为D8的新DEX编译器。

“ dex编译器通常在您日常的应用程序开发中发挥作用,但它直接影响应用程序的构建时间,.dex文件大小和运行时性能。”

“并且当将新的D8编译器与当前的DX编译器进行比较时,D8的编译速度更快,输出的.dex文件更小,同时具有相同或更好的应用运行时性能。”

D8是可选的-必须使用它,我们必须将其放入项目的gradle.properties中

android.enableD8=true

更多信息:https : //android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html

PS。它使我的构建时间缩短了大约30%。


1

这个设置对我来说真的非常快(构建大约需要2秒)

build.gradle

android {

    dexOptions {
        incremental true
        preDexLibraries = false
        jumboMode = false
        maxProcessCount 4
        javaMaxHeapSize "6g"
    }
}

gradle.properties

org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx8192M

我的电脑:

  • CPU英特尔®奔腾®CPU G2030 @ 3.00GHz,3000 Mhz,2个procesadores主体,2个procesadoreslógicos
  • x64
  • Microsoft Windows 7专业版
  • (RAM)16,0 GB

项目文件
-全部位于本地HD中



1

您可以尝试打开studio右侧的gradle菜单,仅组装您已更改的模块,然后运行install命令。当您按下run时,它将组装所有内容,无论您对它正在组装的代码进行任何更改


0

我远不是Gradle的专家,但是我的环境在.gradle / init.gradle中包含以下内容

gradle.projectsLoaded {
    rootProject.allprojects {
        repositories {
            mavenRepo name: 'libs-repo', url: 'http://guest-vm/artifactory/repo'
        }
    }
}

但是我不知道为什么那条线在那里,但我尝试更改为

gradle.projectsLoaded {
    rootProject.allprojects {
        repositories {
            mavenCentral()
        }
    }
} 

现在我终于可以在不咒骂Android Studio&Gradle buildind方案的情况下工作了。


在您的情况下,工件可能被用作库缓存。您与工件服务器联系,该服务器看是否具有该库。如果是,它将返回给您,否则它将从mavencentral获取,然后返回给您。
Fabio Marcolini 2015年

0

在我们的特定情况下,问题是由于存在逆行lambda插件,即使我们的核心模块中的代码没有更改,每次尝试启动应用程序时,插件都迫使所有项目和子项目重新编译。

删除retrolamba可以为我们修复它。希望它可以帮助某人。


0

请先尝试一下。这是我的个人经历。

我有同样的问题。我所做的只是永久禁用防病毒软件(我的是Avast Security 2015)。禁用防病毒软件后,一切进展顺利。gradle成功完成。从现在起几秒钟内,gradle即将结束(仅需5-10秒)。


0

嗨,我知道这是非常非常晚的答案,但也许对
我正在使用的 人有所帮助

compile 'com.android.support:support-v4:23.1.1'

在我的应用程序Gradle依赖项中,
但是在我的一个库中

 compile 'com.android.support:support-v4:23.0.1'

将所有更改为最新版本后,我的问题解决了。


0

遵循以下步骤将使其速度提高10倍,并将构建时间减少90%

首先在以下目录中创建一个名为gradle.properties的文件:

/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)

将此行添加到文件中:

org.gradle.daemon=true
org.gradle.parallel=true

并在Android Studio中选中此选项

在此处输入图片说明



0

一个微不足道的变化(至resoruce XML)仍花了10分钟。正如@rivare在他的回答中所说,命令行构建的速度更快(将其缩短至15 )。
这是一些步骤,至少可以从Windows的命令行快速进行简单构建。

  1. 转到项目根目录(gradlew.bat所在的位置):

    cd c:\ android \ MaskActivity

  2. 执行构建

    gradlew assembleDebug

  3. 直接从手机上卸载 APK(拖动以卸载)。

  4. 当构建完成后,杀死使用Windows任务管理器BIG java程序。

或者,如果您的Windows计算机上装有Unix工具,请执行以下操作:

ps

显示“ pid”:

kill -9 <pid>
  1. 现在安装您的apk:

    亚行-d安装C:\ Android \ MaskActivity \ app \ build \ outputs \ apk \ app-debug.apk


0

根据android文档,将其添加到app模块的gradle文件中。

android {
    ...
    dexOptions {
    preDexLibraries true
    maxProcessCount 8
    }
}

0

在低配置计算机上运行Android环境。

  1. 关闭浏览器中不必要的Web选项卡
  2. 对于防病毒用户,排除自动生成的生成文件夹
  3. Android studio具有1.2 Gb的默认堆,可以减少到512 MB。帮助>编辑自定义VM选项studio.vmoptions -Xmx512m布局性能将加快

  4. 对于Gradle来说,Android Studio Mkae的核心组件之一肯定是目前最新的3.0beta版本

以下提示可能会影响代码质量,因此请谨慎使用:

  1. Studio包含“电源安全模式”,当它打开时,它将关闭后台操作,包括lint,代码补全等。

  2. 您可以在需要时手动运行lintcheck ./gradlew lint

  3. 大多数人平均使用Android模拟器消耗2 GB的RAM,因此,如果可能的话,请使用实际的Android设备,这些将减少计算机上的资源负载。另外,您可以减少模拟器的RAM,这将自动减少计算机上的虚拟内存消耗。您可以在虚拟设备配置和高级设置中找到它。

  4. Gradle脱机模式是带宽受限用户禁用构建依赖项下载的功能。它将减少后台操作,这将有助于提高Android Studio的性能。

  5. Android studio提供了优化以并行编译多个模块。在低RAM的计算机上,此功能可能会对性能产生负面影响。您可以在编译器设置对话框中将其禁用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.