I have a 멀티 프로젝트 (~ 10 모듈) 재배케하여 구축되므로 때마다 20-30 초 정도가 걸린다. 내가 안드로이드 스튜디오, 누를 때 실행할 수 있는 애플리케이션 (앱) 을 기다려야 할 때마다 재작성합니다 매우 느립니다.
건설 과정 자동화합니다 안드로이드 스튜디오 에서 수 있습니까? 또는 이 보다 빠르게 만드는 방법에 대한 조언을 있습니까?
덕분에 호스팅하면서 Eclipse 에서 자동 건물 같은 프로젝트 협력하였습니다 에뮬레이터이고 시간을 약 3-5 초짜리입니다.
이건 내 부ild.그래들 파일 (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
}
}
주요 개발 팀이 원거리일수록 구축하십시오 실적은 대한 우선 순위가 smartupdate 사용하고 있기 때문에 최신 Gradle 및 안드로이드 Gradle 플러그인에는.
'어떤 디렉터리입니다 qic 그레들리프로페르티스' 라는 파일을 생성합니다.
덮어쓰기/추가:
-;;! < > 속성를 언어:
# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# The Gradle daemon aims to improve the startup and execution time of Gradle.
# When set to true the Gradle daemon is to run the build.
# TODO: disable daemon on CI, since builds should be clean and reliable on servers
org.gradle.daemon=true
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# https://medium.com/google-developers/faster-android-studio-builds-with-dex-in-process-5988ed8aa37e#.krd1mm27v
org.gradle.jvmargs=-Xmx5120m -XX:MaxPermSize=512m -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
org.gradle.parallel=true
# Enables new incubating mode that makes Gradle selective when configuring projects.
# Only relevant projects are configured which results in faster builds for large multi-projects.
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demand
org.gradle.configureondemand=true
# Set to true or false to enable or disable the build cache.
# If this parameter is not set, the build cache is disabled by default.
# http://tools.android.com/tech-docs/build-cache
android.enableBuildCache=true
Gradle 특성는 경우 '와' 는 지역) 에서 그들을 배치하십시오 projectRoot\gradle.properties 전역으로라는 배치하십시오 user_home.gradle\gradle.properties 경우) 에서 그들을 ''. Gradle 작업을 실행할 경우 또는 속성 발려짐 콘솔에서 직접 메시지:
Ide 에서 면변형 린텔리 gradle 통합공정 gui 설정이 가능하다. 오프라인 work" 구현해줍니다 "; (나중에 답을 야바 아래) 가 매년 ", 실제 네트워크 요청률 비활성화합니다 동기화됨 gradle file".
Apk 는 자바 바이트코드 구축하십시오 최저속 단계 중 하나의 인덱스 파일 변환. 넷윈을 구현해줍니다 멀티데스 (21 만 디버그로 민스데크 를 바탕으로,) 는 작업량을 줄일 수 있도록 한 설비 (확인란 답을 악셀 윌거트 참조).
'이상' 종속물과의 포지셔닝하십시오 @aar 라이브러리란 하위 프로젝트.
검색 aar 패키지로부터 마벤센트랄, 제센테르 사용하거나 jitpack.io 에서 모든 라이브러리 구축 깃허브. 소스를 편집하든 않을 경우 종속성 라이브러리 구축 프로젝트와 함께 소스뿐만 때마다 안 됩니다.
프로젝트 및 캐시 파일의 제외하려면 고려해보십시오 안티바이러스 스캐닝중. 이것은 분명히 함께 무역 오프하도록 보안 (don& t # 39, 집에서 이 시도하시겠습니까!). 그러나 전환하면 분기로서의 rescan 파일을 사용할 수 있도록 안티바이러스 불지옥으 많이유 관심용 gradle 프로세스, 이는 전에 신속하게 제작 기간 (특히 안드로이드스투디오 동기화됨 gradle) 와 프로젝트 파일 및 인덱스화를 작업). 제작 기간 및 프로세스가 CPU 를 주옵니다 없이 안티바이러스 활성화됨 있는지 확인하기 위해 관련.
Gradle 장치당 [프로필링 프로젝트] [9] 지원 기능이 내장되어 있다. 여러 프로젝트를 다양하게 조합하여 사용하는 플러그인 및 맞춤형 스크립트입니다. '' 프로필 병목 현상을 찾기 위해 사용하는 데 도움이 될 것입니다.
[9]: https://docs.gradle.org/current/userguide/tutorial_gradle_command_line.html # sec:profiling_build
이를 위해 마지막으로 모든 해결책을 찾으면 우리를 위해 사용할 수 있는 것을 발견했다. 빌드 병렬로 처리할 수 있습니다 (의 OSX: '환경 설정 - >. 컴파일러 - >. gradle - >. & # 39 의 컴파일하십시오 비종속 모듈에서는 parallel" "; ') 와 프로젝트 automatically& # 39, 할 수 있습니다. 이 줄어든 데 1 분 20 초 ~ ~ 덕분에 재생하느뇨 / u / 코발런스.
http://www.reddit.com/r/androiddev/comments/1k3nb3/gradle_and_android_studio_way_slower_to_build/
나는 이번에 구입한 뒤 새로운 SSD 에서 Windows 를 라이너스리니 배 빠르고, 더 이상 귀찮은 강도 이제 구축하십시오 목이다.
Feel like you are waiting for the Studio 에서 안드로이드 완료하십시오 판매업체에서 바탕으로 있는 분? 나도. 그리고 꽤 귀찮은. 다행히 개선하는 데 사용할 수 있는 몇 가지 방법이 있습니다. 안드로이드 구축을 위한 Gradle 사용합니다. 최신 버전이 4.6 은 이전 버전에 비해 큰 성능 향상 (자세한 내용은 릴리즈 노트 참조).
업데이트 *
변경하십시오 Gradle 버전: 4.6* 및
플러그인에는 변경하십시오 안드로이드 버전: 3.2.1*
Gradle 릴리스에는 다운로드하십시오 분배 에서 https://services.gradle.org/distributions/gradle-4.6-all.zip Gradle 폴더에서는 복사합니다.
마지막 단계는 의 설정을 > 디스크리브루션 추가합니다. Gradle
잊지 말아 선택하시려면 적용하십시오 변경 사항을 저장합니다.
다음 단계로 Gradle 데몬입니다 및 평행광 구축하십시오 활성화하십시오 프로젝트에 대한. 동시에 여러 개의 모듈 (멀티 프로젝트 는 Gradle) 구축 프로젝트에 생길 수 있는 대형 프로젝트를 구축할 수 있는 동시에 해야 또는 모듈실 구축하십시오 가속화합니다.
이러한 설정을 할 수 있는 라는 파일에 의해 활성화됨 모디피링 그레들리프로페르티스 Gradle scripts 디렉토리에는 (즉, ~ /.gradle/gradle.properties) 이 옵션 (예를 들어 콤프리 모듈과 병렬로) 에서 사용할 수 있는 이섬 안드로이드 스튜디오 또한 있을 수 있지만, 기본적으로 퍼팅 활성화됨 그들에게 그레들리프로페르티스 파일은 사용할 수도 있다는 것을 확실히 하는 단말기 및 로부터 건물을 활성화됨 때 이러한 사실이 동료와 같은 꾸미기야. 하지만 네가 working on a 팀, 때로는 이 물건을 커밋합니다 수 없습니다.
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit org.gradle.parallel=true
# When set to true the Gradle daemon is used to run the build. For local developer builds this is our favorite property.
# The developer environment is optimized for speed and feedback so we nearly always run Gradle jobs with the daemon.
org.gradle.daemon=true
네 빌드를 사용하여 daemon. 발쿰치로 되지 않는 등 전체 Gradle 부팅하도록 %s/dbase/ext_table. 시작프로그램을 빠른 애플리케이션 항상. Gradle 이 데몬입니다 비활성화됨 기본적으로 항상 있습니다 하지만 애태우면 추천합니까 개발자를 위한 '머신 (하지만 떠나기 위해 비활성화했습니다 지속적 통합 서버). 여기서 찾을 수 있다 (https://docs.gradle.org/current/userguide/gradle_daemon.html.) 이 모드를 대한 faq 병렬 구축 프로젝트를 안전하지 않은 일부 설정을 할 수 있다. 그게 단가요 고객의 요구사항을 모듈은 반드시 실패할 수 있습니다 (자세한 내용은 http://gradle.org/docs/current/userguide/multi_project_builds.html 또는 dell. 비연계 구축하십시오 자세한 내용은 # sec:decoupled_projects).
이 옵션을 추가 데이터베이스에구성원을 안드로이드 요소:
dexOptions {
incremental true
}
그 데소티언스 블록이어야 덱스 프로세스에 대한 예를 들어 힙 크기를 지정할 수도 있습니다.
dexOptions {
incremental true
javaMaxHeapSize "12g"
}
여기서 "12g" 는 12GB 메모리. 여기 이 google.github.io/android-gradle-dsl/current/ 대한 추가 정보를 찾을 수 있다 Gradle 매개 변수를 설정 파일에서 구성할 수도 있습니다 최대 힙 크기를 증가되지는 못한 경우, 예를 들어 대형 프로젝트:
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
매개변수 목록 모두 볼 수 있습니다. 자세한 내용은 https://docs.gradle.org/current/userguide/userguide_single.html # sec:gradle_configuration_properties.
[도움됐네 링크] [10]
[10]: # .vm894p5iz https://medium.com/@101/speed-up-gradle-build-in-android-studio-80a5f74ac9ed
그냥 따라 필요한 라이브러리를 사용하는 경우, 구글 플레이 서비스 대신 전체 물방울 내말들어봐 창조하셨노 가속화합니다.
필요한 것은 매핑하므로 해결할 수 있는 유일한 경우 사용합니다.
compile 'com.google.android.gms:play-services-maps:6.5.+'
대신:
compile 'com.google.android.gms:play-services:6.5.+'
후자의 방법을 누구이뇨 20k (http://otl. 블로그) classpath 에 수 있는 방법을 통해 총 카운트입니다 팁, 64k.
2 또는 [멀티데스] 프로가드 사용할 것이라고 인력용 대해서도 디버그입니다 빌드. 내가 내 프로젝트 중 하나로 경식도 정보정의다음 구축하십시오 배
이 경우, 가능한 것 "이라고 설명한 것처럼 멀티데스 최적화하려면 21+ 개발에 sdk 는 [있는 안드로이드 문서용으로] [3]
android {
productFlavors {
// Define separate dev and prod product flavors.
dev {
// dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
// to pre-dex each module and produce an APK that can be tested on
// Android Lollipop without time consuming dex merging processes.
minSdkVersion 21
}
prod {
// The actual minSdkVersion for the application.
minSdkVersion 14
}
}
...
}
[3]: https://developer.android.com/tools/building/multidex.html # dev 빌드
이 수락됨 캐비닛용입니다 오토메이티드 이전 버전의 안드로이드 스튜디오 대다수의 작동됨 계속 됐다. 업데이팅이 안드로이드 스튜디오 그것으로이라엘 조금 가속화합니다. # 39 don& 수는 없는 노릇, 힙 크기로 it& # 39, ll 증가되지는 지정할 수 증가를 통해 자동으로 Xms 및 Xmx. # 39 의 here& 티모프티언스 함께 일부 수정
Open your 터미널, 이 명령을 동일팔레트에 티모프티언스 MAC OSX 에서 엽니다.
open -e /Applications/Android\ Studio.app/Contents/bin/studio.vmoptions
그냥 그레들리프로페르티스 라는 파일을 만들고 있는 다음 디렉터리입니다.
/home/<username>/.gradle/ (Linux)
/Users/<username>/.gradle/ (Mac)
C:\Users\<username>\.gradle (Windows)
이 노선은 추가 파일:
org.gradle.daemon=true
이제 나를 위해 같은 속도로 진행한다.
만약 누군가 작동하고 있으며, 이 프로젝트를 통해 원하는거요 synced Subversion 이 과정을 계속 일어나고, 내가 생각하는 워크플로에 안드로이드 스튜디오 늦출 수 있습니다. 예를 들어 매우 느린 경우 작업 중. app 가 실행되는 동안 스크롤하지 클래스에서 xml 등 여전히 내, 내 디바이스입니다.
이러한 방법을 사용할 수 있는 것을, 내가 모든 질문에 매우 구축하십시오 속도 향상을 위해 이 번호요.
9월 2016년, 안드로이드 2.2 에 안드로이드 출시 직후 릴리즈됨 캐쉬 기능 속도를 높이기 위해 '실험' 이 은 현재 안드로이드 스튜디오 2.3 카나리아 빌드 성능, gradle 관계자는. (정식 출시 참고)
It 는 새 캐쉬 기능, 이는 기본적으로 활성화하십시오 구축하십시오 시간을 단축할 수 있습니다 (전체 구축, 빌드, 인스턴트 실행하십시오 변동분 등) 에서 만든 파일을 저장하여 / 디렉터리용 이전 구축 및 재사용합니다 같거나 다른 안드로이드 프로젝트.
'선' 에 다음과 같은 추가 그레들리프로페르티스 파일
android.enableBuildCache = true
# Set to true or false to enable or disable the build cache. If this parameter is not set, the build cache is enable by default.
Gradle 은 새로운 작업을 더 쉽게 찾을 수 있습니다 '-' 라는 좁히어 클레인부일드카치 청소하십시오 캐쉬. 다음 in your 털미널 입력하여 사용할 수 있습니다.
'./gradlew 클레인부일드카치'
',' username> .android\build-cache C:\Users\<.
이 기간 내 컴파일하십시오 설정 변경 후 10 분 ~ 10 초) 로 변경되었습니다.
>. 설정 (ctrl+Alt+S) - >. >. >. 구축, 실행, 배포 - >. >. >. 컴파일러 - >. >. >. 유형 ',' 오프라인 " ". 의 명령행 옵션을 기입란.
>. "컴파일하십시오 비종속 모듈과 병렬로" 확인란 확인합니다. >. >. &. > 적용하십시오 클릭합니다. 확인
참조 - https://www.sundoginteractive.com/blog/speed-up-gradle-in-android-studio
최신 버전의 당기십시오 수 없습니다 다운되어도 종속도 식별됨 in your 부ild.그래들 절실해졌습니다. 그 때문에 빠른 속도로 실행됩니다 캐싱된 스냅샷입니다 임포트된 라이브러리보다는 사용합니다.
그냥 또 다른 성능 임포브레멘스 팁:
덱스 컴파일러와의 작동됨 후드 아래에 있는 주로, 이 " 일상적으로 사용하는 앱 개발, 하지만 app& # 39 의 제작 기간 이데스 직접 미치는 영향, 파일 크기, 런타임용으로 개발하십시오 performance.".
" 컴파일러로 컴파일하는 비교할 때, 그리고 새로운 D8 빠르고 작은 이데스 파일의 현재 DX 컴파일러, D8 출력입니다 갖는 한편 동일하거나 더 나은 app 런타임용으로 개발하십시오 performance.".
우리는 할 수 있어, d8 선택적입니다 - # 39 의 그레들리프로페르티스 project& 사용한다.
android.enableD8=true
추가 정보: https://android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html
PS, 그것은 내 제작 기간 임포베 30% 포인트 정도.
초기 빌드를 실행할 수는 있지만, 보통 아주 잔인하게 느린 재가동함으로써 어플리케이션이 이제 참을 수. # 39 m, i& 차선적인 사용하는 PC: AMD CPU, RAM 8MB 쿼드-코어 a8 7410 비사양 ssd hd, win 10. (그리고, 이것은 스택 오버플로입니다 내 첫 포스팅. )
예, 오프라인된 " work". (이는 아마도 가장 가져오기의 설정).
예, 독립적인 모듈로 " 컴파일하십시오 parallel". (멀티 코어 cpu 를 사용할 경우 이 문제는 사실 도움말에서는 확실하지 않다).
, , GRADLE 스크립트에만 있는 " 부ild.그래들 (모듈에서는: 앱) ":
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 스크립트에만 " 그레들리프로페르티스 (프로젝트 속성을) ":
xx 맥스페르마시즈 = - = - = - xmx3048m 오르고드그래들리제프마리스 512m xx:+heapdumponoutofmemoryerror 트피레스니코딩 utf-8
오르고드그래들리파라예르 = true 오르고드그래들리다레먼 = true
또한 , 는 물리적 장치에 대한 테스트를 에뮬레이터이고 대신 제대로 for me. 서 있는 작은 태블릿 up 은 편리하잖아요
정말 빠른 가져다줄래요 댁이라면 이 설정 (약 2 초 구축하십시오)
android {
dexOptions {
incremental true
preDexLibraries = false
jumboMode = false
maxProcessCount 4
javaMaxHeapSize "6g"
}
}
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx8192M
다음 단계를 따르십시오.
https://i.stack.imgur.com/RF9uG.png
https://i.stack.imgur.com/mvHKJ.png
안드로이드 개발자 사이트에서 실행하십시오 경우 즉시 대해 자세히 확인하시겠습니까 merant.
이 sudo dpkg - 추가 아키텍처입니다 i386 sudo apt 확보하십시오. 업데이트 sudo apt 확보하십시오. install i386 libncurses5 libstdc++6:i386 i386 zlib1g
gradle.projectsLoaded {
rootProject.allprojects {
repositories {
mavenRepo name: 'libs-repo', url: 'http://guest-vm/artifactory/repo'
}
}
}
하지만 난 아직 내가 줄 수 있는 아무 생각이 왜 어딨었는데 종료기 변경
gradle.projectsLoaded {
rootProject.allprojects {
repositories {
mavenCentral()
}
}
}
그리고 지금 난 결국 안드로이드 스튜디오 & 서약 없이 사용할 수 있습니다. Gradle 부일드린트 구성표가.