如何提高Android Studio应用程序构建的速度?

时间:2015-08-13 17:23:19

标签: android android-studio

有没有办法显示我的构建过程是哪一个花费最多的时间,然后尝试解决它?

我正在使用Android Studio。目前我不会把我的项目称为大项目,但我想我需要的依赖项会使它更大,构建仍需要40-60秒。 (从删除多个dex之前的90秒开始)

以下是我2015年中期Macbook Pro的规格:

  • 处理器:2.5 GHz Intel Core i7
  • 内存:16GB 1600 MHz DDR3

我不得不删除部分依赖项,以便能够在不启用多dex支持的情况下构建,这节省了我~20秒,但是我想添加更多的依赖项,所以我需要改进构建时间,以便我可以重新-enable multi dex并实际使用我想要的依赖项。

我看过一些关于修改Android Studio的帖子,以加快构建时间,但这些似乎没有用,我宁愿看看能不能解决问题。

以下是我当前的依赖项:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

// MY INTERNAL LIBRARIES
    wearApp project(':wear')
    compile project(':ViewPagerIndicator')
    compile project(':connection-manager')
    compile project(':core-library')
    compile project(':activity-manager')
    compile project(':activity-recorder')

    compile 'com.google.android.gms:play-services-maps:7.5.0'
    compile 'com.google.android.gms:play-services-wearable:7.5.0'
    compile 'com.google.android.gms:play-services-location:7.5.0'

    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.android.support:support-v4:22.2.1'
    compile 'com.android.support:design:22.2.1'
    compile 'com.android.support:cardview-v7:22.2.1'
    compile 'com.android.support:recyclerview-v7:22.2.1'
    compile 'com.android.support:support-annotations:22.2.1'

    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'joda-time:joda-time:2.7'
    compile 'com.androidplot:androidplot-core:0.6.1'

    compile project(':ParseLoginUI')

    /*Images*/
    compile 'com.squareup.picasso:picasso:2.3.3'
    compile 'com.makeramen:roundedimageview:2.1.0' // https://github.com/vinc3m1/RoundedImageView
    compile 'com.squareup.retrofit:retrofit:1.9.0'
    compile 'io.reactivex:rxandroid:1.0.1'

//    apt 'com.google.dagger:dagger-compiler:2.0'

}

4 个答案:

答案 0 :(得分:6)

您可以采取两项主要措施来提高建筑速度:

  1. 离线工作:
  2. offline work on gradle

    1. 针对更大的SDK版本进行编译:
    2. 这个很棘手。通常你的minSdkVersion需要像14或16这样的东西。如果使用minSdkVerison = 22进行编译,速度时间会急剧增加。 您可以在开发期间增加minSdkVersion,并在发布时减少它。

答案 1 :(得分:6)

我无意中修复了我在处理其他事情时看到我的目的的问题。

实现外部依赖Retrolambda将我的构建时间从大约10秒增加到大约45/50秒。从我的应用程序中删除它显着减少了它(事实上大约40秒!)。

我删除了retrolambda因为我想开始测试我的应用程序并需要依赖项RobolectricMockito。如果我同时使用retrolambda,我会在unsupported major.minor version指向JDK 7的行中遇到异常。故事的长短之处在于我厌倦了对我的依赖项进行黑客攻击并构建设置只是为了使用retrolambda(Android Studio无论如何都会模仿它们的代码折叠)。

答案 2 :(得分:1)

使用离线模式进行gradle可以缩短构建时间。

Preferences > Build, Execution, Deployment > Gradle > Offline work

缺点是您必须在更新依赖关系时关闭脱机模式。

答案 3 :(得分:0)

你也可以用Glide替换两个库(毕加索和圆形图像视图)和一个可以轻松完成roundimageview库工作的实用程序类。

查看此帖子,查看一个示例代码,该代码将图像转换为带滑动的圆形图像。 How to round an image with Glide library?

我还建议您创建Utility目录并将此CircleTransform类放入其中。

执行上述步骤将减少您使用的库数量,从而减少方法计数项目的构建时间!