首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提高Android应用程序构建的速度?

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

Stack Overflow用户
提问于 2015-08-13 17:23:19
回答 4查看 4.5K关注 0票数 13

有没有任何方法来显示我的构建过程中哪个过程花费了最多的时间,然后试着绕过它呢?

我在使用安卓工作室。目前我不认为我的项目很大,但是我想我所需要的依赖使它更大,而且构建仍然需要40-60秒。(删除多个dex之前的90秒)

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

  • 处理器: 2.5 GHz英特尔核心i7
  • 内存:16 MHz 1600 MHz DDR3

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

我见过一些关于修改Android以加快构建时间的帖子,但是这些似乎都没有用,我更愿意看看我是否能解决这个问题。

下面是我当前的依赖关系:

代码语言:javascript
复制
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'

}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-08-19 16:42:35

我无意中解决了我在做其他事情时看到的问题。

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

我删除了retrolambda,因为我想开始测试我的应用程序,并且需要依赖项RobolectricMockito。如果同时使用retrolambda,我就会得到一个类似于unsupported major.minor version指向JDK 7的异常。故事的长短在于,我受够了围绕我的依赖项进行黑客攻击,只为使用retrolambda构建安装程序(Android无论如何在代码折叠中模仿它们)。

票数 6
EN

Stack Overflow用户

发布于 2015-08-18 13:05:39

有两件主要的事情可以提高建筑速度:

  1. 离线工作:

  1. 针对更大的SDK版本进行编译:

这件事很棘手。通常情况下,你的minSdkVersion应该是14或16左右,这是慢的事情。如果使用minSdkVerison = 22进行编译,则速度会急剧增加。您可以在开发期间增加minSdkVersion,并在发布时减少它。

票数 6
EN

Stack Overflow用户

发布于 2015-08-18 13:07:52

对gradle使用脱机模式可以提高构建时间。

代码语言:javascript
复制
Preferences > Build, Execution, Deployment > Gradle > Offline work

缺点是,无论何时更新依赖项,都必须关闭脱机模式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31994725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档