通過Gradle和Android Studio構建和運行應用程序比通過Eclipse慢


Answers

你可以忽略gradle update-to-check檢查。

對於運行Android Studio 1.5的Windows:轉到File -> Settings -> Build, Execution, Deployment -> Build tools -> Gradle -> Check Offline work (as shown in image)

從約30秒減少到約3秒

Question

我有一個多項目(〜10個模塊),其中每次大約需要20-30秒。 當我按下Android Studio中的Run時,我必須等待每一次重建應用程序,這是非常緩慢的。

是否有可能在Android Studio中自動完成構建過程? 或者你有關於如何使這個過程更快的建議?

在Eclipse中,感謝自動構建,在模擬器上運行相同的項目大約需要3-5秒。

這是我的build.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
    }
}



根據android文檔 ,將其添加到app模塊的gradle文件中。

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



如果有人正在開發一個通過Subversion同步的項目,而且這種情況仍在發生,我認為這會降低Android Studio中的工作流程。 例如,如果它的工作非常緩慢:在類中滾動,xml等,而我的應用程序仍在我的設備上運行。

  • 轉到“首選項版本控制”,並從“Subversion”設置為“無”。



這是開始Android程序員(幾年前的專業程序員)加速Android Studio 2.2的原因。 我知道這是一個重複,但只是在一個地方總結

初始構建仍然可能非常慢,但重新啟動運行的應用程序現在通常是非常容忍的。 我使用的是次優PC:AMD四核A8-7410 CPU,8MB RAM,非SSD高清,Win 10.(並且,這是我的第一個帖子....;)

IN SETTINGS - > GRADLE:

是的“離線工作”(這也許是最重要的設置)。

IN SETTINGS - >編譯器:

是的“並行編譯獨立模塊”(不確定這實際上是否有助於使用多核CPU)。

在GRADLE SCRIPTS中 ,“build.gradle(Module: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 SCRIPTS中 ,“gradle.properties(Project Properties)”:

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

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

另外 ,在物理設備而不是仿真器上進行測試對我來說效果很好; 一個站起來的小平板很方便。




先試試這個。 這是我個人的經歷。

我有同樣的問題。 我所做的只是永久禁用防病毒軟件(Mine是Avast Security 2015)。 剛剛禁用防病毒後,事情進展順利。 Gradle成功完成。 從現在開始,幾秒鐘內完成Gradle(僅需5-10秒)。




更改這個設置後,我的編譯時間10分鐘改為〜10秒。

步驟1:

設置(Ctrl + Alt + S) - >

構建,執行,部署 - >

編譯器 - >

在命令行選項框中鍵入“ --offline ”。

第2步:

選中“並行編譯獨立模塊”複選框。

並點擊應用 - >確定

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

壞處:

您將無法下拉build.gradle文件中標識的最新版本的依賴關係。 它運行速度更快,因為它使用這些導入庫的緩存快照。

重要說明 :部署應用程序時,請使用最新版本的依賴關係刪除此設置和構建。




我最近購買了一塊新的SSD,並從Windows遷移到了Linux。我的構建時間現在快了一個數量級,不再煩人。

儘管它並不直接回答你為什麼比eclipse慢的問題,但它表明該過程是磁盤綁定的,並且升級到SSD可能是一個(稍微昂貴的)解決方案。 我猜測會有人用Google搜索這個問題並最終到達這裡,誰可能會喜歡我的經驗。







我遠不是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方案了。




遵循這些步驟將使其快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中的這些選項




接受的答案是舊版本的android studio,其中大部分現在仍在工作。 更新android studio使它更快一點。 不要打擾指定堆大小,因為隨著Xms和Xmx的增加它會自動增加。 這是VMoptions的一些修改

  1. 在bin文件夾中有一個studio.vmoptions文件來設置環境配置。 在我的情況下,這是studio64.vmoptions如果它們尚未添加並保存該文件,請添加以下行。 在我的情況下,我有8GB內存。

    -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











Related