我有一个多项目(大约10个模块),每次建造大约需要20-30秒。当我在Android Studio中按下Run键时,我每次都要等待重新构建应用程序,这非常缓慢。

是否有可能在Android Studio中自动化构建过程?或者你有什么建议可以加快这个过程吗?

在Eclipse中,由于自动构建,在模拟器上运行相同的项目大约需要3-5秒。

这是我的身材。Gradle文件(app模块):

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
    }
}

当前回答

请按照以下步骤操作。

开启脱机模式:请检查打印屏幕下方。 https://i.stack.imgur.com/RF9uG.png 启用立即运行:请检查下面的打印屏幕。 https://i.stack.imgur.com/mvHKJ.png 如果你想了解更多关于即时运行,请访问android开发者网站。

其他回答

您可以尝试打开studio右侧的gradle菜单,只组装已更改的模块,然后运行install命令。当你按下运行键时,不管你对它正在组装的代码做了什么改变,它都会组装所有东西

这是另一个提高性能的技巧:

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

“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%。

你可以忽略gradle update-to-date检查。

对于运行Android Studio 1.5的Windows:转到文件->设置->构建,执行,部署->构建工具-> Gradle ->检查离线工作(如图所示)

从~30+秒降低到~3秒

以下是帮助这个刚开始的Android程序员(几年前曾是专业程序员)加速Android Studio 2.2的方法。我知道这是在重复,但是,只是在一个地方总结一下。

初始构建仍然非常缓慢,但现在重新启动运行中的应用程序通常是可以忍受的。我使用的是一台次优PC: AMD四核A8-7410 CPU, 8MB RAM,非ssd HD, Win 10。(这是我第一次在....上发布Stack Overflow;)

在设置-> gradle:

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

在设置->编译器:

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

在GRADLE脚本中,“构建。gradle(模块:app)”:

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

也在GRADLE脚本,“GRADLE。物业(项目物业)”:

org . gradle。jvmargs=-Xmx3048m -XX: maxpermze =512m -XX:+ heapdumpfdfile -Dfile.encoding=UTF-8

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

此外,在物理设备上而不是模拟器上进行测试对我来说效果很好;可以站立的小平板很方便。

我远不是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的构建方案工作了。