마지막 업데이트 (6 월 25 일부터 빌드) 이후로 Android 스튜디오 Gradle의 모든 변경 사항은 매우 느립니다. 또한 파일을 편집하고 키 업시 다시 컴파일 할 때 변경 사항을 자동 추적하는 것처럼 보입니다.
i5에서 각 변경 사항은 몇 분이 걸립니다.
Gradle 변경 속도를 높이는 방법에 대한 아이디어가 있습니까?
마지막 업데이트 (6 월 25 일부터 빌드) 이후로 Android 스튜디오 Gradle의 모든 변경 사항은 매우 느립니다. 또한 파일을 편집하고 키 업시 다시 컴파일 할 때 변경 사항을 자동 추적하는 것처럼 보입니다.
i5에서 각 변경 사항은 몇 분이 걸립니다.
Gradle 변경 속도를 높이는 방법에 대한 아이디어가 있습니까?
답변:
확실히 차이를 만듭니다 : 방법… Gradle 빌드 시간 단축
gradle.properties
다음 디렉토리에 이름이 지정된 파일을 작성하십시오 .
/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)
이 줄을 파일에 추가하십시오.
org.gradle.daemon=true
이 설정을 변경하면 컴파일 시간 10 분이 10 초로 줄었습니다.
1 단계:
설정 (ctrl + Alt + S)->
빌드, 실행, 배포->
컴파일러->
--offline
명령 행 옵션 상자에 " "를 입력하십시오 .
2 단계:
"독립 모듈을 병렬로 컴파일"체크 상자를 체크하십시오.
적용-> 확인을 클릭하십시오.
3 단계 : gradle.properties 파일에서-> 다음 행 추가
org.gradle.jvmargs=-Xmx2048M -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.daemon=true
최신 정보:
Android Studio 2.0 이상을 사용하는 경우 즉시 실행을 시도하십시오
설정 → 빌드, 실행, 배포 → 인스턴트 실행 → 인스턴트 실행 사용.
인스턴트 실행에 대한 자세한 정보-https: //developer.android.com/studio/run/index.html#instant-run
안드로이드 스튜디오의 gradle.properties 파일에 다음을 추가하여 이전 core2duo 랩톱 (리눅스 민트 실행)에서 gradle 빌드를 43 초에서 25 초로 줄일 수있었습니다.
org.gradle.parallel=true
org.gradle.daemon=true
데몬 설정이 더 빨리 빌드되는 이유에 대한 출처 : https://www.timroes.de/2013/09/12/speed-up-gradle/
단계를 수행하면 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 에서이 옵션을 확인하십시오.
최신 버전의 gradle (ver 2.4)이 있습니다.
파일 메뉴에서 '프로젝트 구조'대화 상자를 열어 프로젝트에 대해이를 설정할 수 있습니다.
Project Structure -> Project -> Gradle version
'2.4'로 설정하십시오. 이 링크
에서 성능 향상에 대한 자세한 내용을 볼 수 있습니다 .
Android Studio 2.1에서는 더 빠른 앱 빌드를 위해 "Dex In Process"를 활성화 할 수 있습니다.
https://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e#.vijksflyn 에서 자세한 정보를 얻을 수 있습니다.
이것이 내가 한 일이며 내 gradle 빌드 속도가 크게 향상되었습니다! 첫 번째 빌드의 경우 1 분에서 20 초로, 후속 빌드는 40 초에서 5 초로 변경되었습니다.
에서 gradle.properties의 파일이 추가 :
org.gradle.jvmargs=-Xmx8192M -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
에서 명령 줄 인수 파일> 기타 설정> 기본 설정> 빌드, 실행, 배포> 컴파일러로 이동을 통해 및 명령 줄 인수에 다음 인수를 추가
이거 추가 해봐:
--debug --stacktrace -a, --no-rebuild -q, --quiet --offline
Android 개발을 수행 할 때 RAM이 8GB 인 Mac / PC를 사용하지 마십시오. 에뮬레이터 1 개 (Genymotion 또는 기타)를 시작하자마자 Android Studio에서 gradle 빌드를 사용하면 빌드 시간이 매우 느려집니다. 1 소스 파일을 한 줄로 간단하게 변경하더라도 이러한 상황이 발생합니다.
에뮬레이터를 닫고 실제 장치를 사용하면 많은 도움이되지만 물론 이것은 매우 제한적이고 덜 유연합니다. 에뮬레이터의 RAM 사용량 설정을 줄이는 것이 도움이 될 수 있지만 가장 좋은 방법은 랩톱에 최소 12-16GB의 RAM이 있는지 확인하는 것입니다.
업데이트 (2017 년 6 월) : 이제 Android Studio gradle 빌드 속도를 높이는 방법을 설명하는 8 개의 좋은 medium.com 기사가 있으며 8GB 컴퓨터에서도 작동합니다.
요약 된 합의는 다음과 같습니다.
크리에이트 gradle.properties의 (하나의 글로벌 파일 ~/.gradle/gradle.properties
또는 프로젝트에 로컬), 다음과 같은 줄을 추가합니다 :
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true
오프라인 작업 사용
다음 코드를 추가하여 Gradle 성능 향상 gradle.properties
org.gradle.daemon = true
org.gradle.parallel = true
단계별 가이드 : http://www.viralandroid.com/2015/08/how-to-make-android-studio-fast.html
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
Android Wikimedia Apps 팀 의이 페이지 에 따르면 Gradle 빌드를 최적화하는 좋은 방법은 ~ / .gradle / gradle.properties 에이 줄을 추가하는 것입니다.
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.jvmargs=-Xmx2048M
파일이없는 사람들에게는 두 가지 방법이 있습니다.
프로젝트 루트에 gradle.properties라는 파일을 작성하여 프로젝트에서 로컬로 파일을 추가하십시오.
당신은 당신의 홈 디렉토리에 같은 파일을 생성하여 모든 프로젝트에 대해 전역으로 설정할 수 있습니다 (% USERPROFILE % .gradle에 윈도우 에서, ~ / .gradle 리눅스 및 맥 OS X )
이다 좋은 연습 이 아니라 프로젝트 수준에서보다 홈 디렉토리의 속성을 설정합니다.
더 나은 성능을 위해 명령 줄을 사용할 수도 있습니다 .Linux <task name>
에서 프로젝트의 루트 폴더 내부에서 ./gradlew 명령을 사용하거나 <task name>
주어진 Gradle에 대해 위의 명령 중 하나를 처음 실행할 때 gradlew와 같은 gradlew.bat 파일을 사용할 수 있습니다 버전에서 해당 Gradle 배포를 다운로드하고 빌드를 실행하는 데 사용합니다.
래퍼를 통해 Gradle 프로젝트를 가져올 때 IDE에서 Gradle 'all'배포를 사용하도록 요청할 수 있습니다. 이것은 완벽하게 괜찮으며 IDE가 빌드 파일에 대한 코드 완성을 제공하도록 도와줍니다. 이것은 Gradle을 수동으로 직접 설치할 필요가 없다는 것을 의미 할뿐만 아니라 빌드 용으로 설계된 Gradle 버전도 사용해야합니다. 이것은 역사적 빌드를보다 안정적으로 만듭니다. 자세한 정보 는 랩퍼를 사용하여 빌드 실행을 참조하십시오.
build.gradle
파일 추가
android {
...
dexOptions {
javaMaxHeapSize "4g" //specify the heap size for the dex process
}
...
}
도움이 되길 바랍니다.
Windows 10 및 1TB 솔리드 스테이트로 5 세대 i7을 실행하고 있습니다. Android Studio Projects 폴더를 압축하고 약 80 % 향상되었습니다. 도움이 되었기를 바랍니다.
그런 다음 위의 솔루션과 결합했습니다 (예 : org.gradle.parallel = true, org.gradle.daemon = true). 성능 향상은 상당히 인상적이었습니다.
또한 :
위의 모든 답변은 완전히 정확하지만 안드로이드 개발자 (4 년 반)의 경험으로 진술해야합니다 .Android / Gradle 개발자는 스피너 드라이브가있는 컴퓨터에서 작업하지 않아야합니다. 고체 상태. 우리는 모두 IDE에서 하루에 100 번 그 재생 버튼을 쳤습니다. 스피너에서 SSD (포스터 Gradle)로 갔을 때 속도와 효율성이 문자 그대로 2 ~ 4 배 빨랐으며 여기서 과장하지 않겠다고 약속합니다.
이제 작은 SSD와 큰 스피너가있는 기계를 말하는 것이 아니라 1 개의 큰 SSD에 대해 이야기하고 있습니다. 소형 SSD와 대형 스피너가있는 머신이 이미있는 경우 소형 스피너를 500GB SSD로 업그레이드하고 개발자 도구가 설치된 SSD를 기본 OS 드라이브로 설정할 수 있습니다.
따라서 빠른 속도로 진행되는 환경에서 작업하는 경우이 게시물을 상사에게 보여주십시오. 괜찮은 1TB SSD는 VAT를 포함하여 약 300 파운드 또는 500GB SSD의 경우 약 160 파운드로 되돌릴 수 있습니다. 주니어 또는 수석 안드로이드 개발자인지 여부에 따라 드라이브는 1-2 주 근무일에 비용을 지불하거나, 소규모에 투자하는 경우 약 2-5 일 (근무일 기준)에 비용을 지불합니다. 500GB SSD라고 말하십시오.
많은 개발자들은 이것이 사실이 아니라고 주장 할 수도 있지만 Gradle 시스템은 직접 디스크 액세스가 매우 어렵 기 때문에 Gradle의 경우입니다. .NET / C # / VB Net 또는 기타 개발 도구로 작업하는 경우 큰 차이는 없지만 Gradle의 차이는 엄청납니다. 이 게시물에 따라 행동해도 실망하지 않을 것입니다. 개인적으로 1TB Spinner와 함께 제공되는 8GB RAM이있는 5 세대 i7을 사용하고 있으며 삼성 SSD 840 EVO 1TB로 업그레이드했으며 그 이후로 되돌아 보지 않았습니다. https://www.aria.co.uk 에서 광산을 구입했습니다 .
도움이 되었기를 바랍니다. 또한 나는 이것이 상업적으로 동기 부여 된 게시물이 아니라고 진술해야합니다. 나는 전에 여러 번 사용해 왔으며 항상 신뢰할 수있는 Aria를 추천합니다.
gradle.properties 파일에 추가 할 수있는 몇 가지 명령 :
org.gradle.configureondemand = true-이 명령은 gradle에게 실제로 빌드해야하는 프로젝트 만 빌드하도록 지시합니다. 데몬 사용 — org.gradle.daemon = true-데몬은 빌드가 완료된 후에도 그래들 인스턴스를 백그라운드에서 계속 실행합니다. 그러면 gradle을 초기화하는 데 필요한 시간이 제거되고 빌드 시간이 크게 줄어 듭니다.
org.gradle.parallel = true-gradle이 프로젝트를 병렬로 빌드하도록 허용합니다. 프로젝트에 여러 모듈이있는 경우이 기능을 사용하면 gradle이 독립 모듈에 대한 빌드 작업을 병렬로 실행할 수 있습니다.
힙 크기 늘리기 — org.gradle.jvmargs = -Xmx3072m -XX : MaxPermSize = 512m -XX : + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8-android studio 2.0부터 gradle은 프로세스에서 dex를 사용하여 빌드 타이밍을 줄입니다. 계획. 일반적으로 애플리케이션을 빌드하는 동안 여러 dx 프로세스가 다른 VM 인스턴스에서 실행됩니다. 그러나 Android Studio 2.0부터는 모든 dx 프로세스가 단일 VM에서 실행되고 해당 VM도 gradle과 공유됩니다. 이는 모든 dex 프로세스가 동일한 VM 인스턴스에서 실행될 때 빌드 시간을 크게 줄입니다. 그러나 이것은 모든 dex 프로세스와 gradle을 수용하기 위해 더 큰 메모리가 필요합니다. 즉, gradle 데몬에 필요한 힙 크기를 늘려야합니다. 기본적으로 데몬의 힙 크기는 약 1GB입니다.
동적 종속성이 사용되지 않는지 확인하십시오. 즉 'com.android.support:appcompat-v7:27.0.+'구현을 사용하지 마십시오. 이 명령은 gradle이 온라인 상태가되어 앱을 빌드 할 때마다 최신 버전을 확인 함을 의미합니다. 대신 'com.android.support:appcompat-v7:27.0.2'와 같은 고정 버전을 사용하십시오.
android 폴더에서 gradle.properties를 열고 강조 표시된 행의 주석을 해제하고 시스템 구성에 따라 메모리 값을 제공하십시오. 내 컴퓨터에 8GB 램이 있으므로 최대 4096MB와 1024MB를 각각 부여했습니다.
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
//Uncomment below line for providing your system specific configuration
#org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=1024m -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
//Uncomment below line to allow parallel process execution.
#org.gradle.parallel=true
이 후 내 빌드 시간이 절반으로 줄었습니다. 행복한 건물 !!
프로젝트에서 멀티 덱스를 활성화했을 때 종종 발생합니다. 이것은 잠재적으로 개발 프로세스를 늦출 수 있습니다 !! 의사 에 따르면 :
빌드 시스템은 기본 DEX 파일에 포함 할 클래스와 보조 DEX 파일에 포함 할 수있는 클래스에 대해 복잡한 결정을 내려야하므로 멀티 덱스 구성에는 빌드 처리 시간이 크게 증가해야합니다. 즉, 멀티 덱스를 사용하는 증분 빌드는 일반적으로 시간이 오래 걸리고 개발 프로세스가 느려질 수 있습니다.
그러나 이것을 최적화 할 수 있습니다 :
더 긴 증분 빌드 시간을 줄이려면 프리 덱싱을 사용하여 빌드간에 멀티 덱스 출력을 재사용해야합니다.
Android Studio 2.3 이상을 사용하는 경우 IDE는 Android 5.0 (API 레벨 21) 이상을 실행하는 기기에 앱을 배포 할 때이 기능을 자동으로 사용합니다.
따라서 minSdkVersion을 21 이상 으로 설정해야합니다 !
그러나 프로덕션 버전이 minSdkVersion을 21 미만으로 지원해야하는 경우 (예 : 19)
productFlavors를 사용 하여 개발자 버전에 minSdkVersion 21을 설정할 수 있습니다 .
android {
defaultConfig {
...
multiDexEnabled true
// The default minimum API level you want to support.
minSdkVersion 15
}
productFlavors {
// Includes settings you want to keep only while developing your app.
dev{
//the IDE automatically uses pre-dexing feature to mitigate longer incremental when deploying your app to a device running Android 5.0 !
minSdkVersion 21
}
prod {
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
}
dependencies {
compile 'com.android.support:multidex:1.0.3'
}
더 나은 빌드 시간을 위해 커맨드 라인에서 빌드하는 것을 선호합니다. 앱 코드 기반이 크고 여러 모듈이있는 경우 여기에 설명 된대로 로컬 AAR 접근 방식 을 시도 하면 Android Studio 성능 및 gradle 빌드 시간이 크게 향상됩니다. 명령 줄 빌드와도 호환됩니다.
통합 지침이 포함 된 데모 프로젝트는 https://github.com/akhgupta/AndroidLocalMavenRepoAARDemo 에서 찾을 수 있습니다.