[Android] Google I/O 2017 Speeding up your Android Gradle builds에서 발표한 Tips 10개

4112 단어 Android
구글 I/O 2017의 Speeding up your Android Gradle builds(빌딩 고속화)에 발표된 Tips 10개다.

Tips


Tips1: 최신 Gradle Plugin 사용


최신gradle plugginhttps://maven.google.com을 사용합니다.

Tips2: 기존 멀티덱스 방지


전통적인 멀티텍스란 멀티텍스와 minSdkVersion이 21도 안 되는 것을 말한다.
build 개발할 때만 21으로 만들면 돼요.

Tips3: 멀티-ACK 비활성화

sprits() 블록은 개발에 필요하지 않기 때문에build를 개발할 때 무효화됩니다.
Preferences의 왼쪽 열에서 Build, Excution, Deployment->Compiler를 선택한 후 Command-line Options-PdevBuild를 입력합니다.
build.gradle에서 다음과 같은 내용을 보충합니다.(세션에 설명된 예)
android {
    if (project.hasProperty('devBuild')) {
        splits.abi.enable = false
        splits.density.enable = false
    }
}

Tips4: 최소 리소스 포함(지정 언어 및 DPI)


build 지정 언어와 DPI를 개발합니다.
예: resConfig("en", "xxhdpi")

Tips5: PNG crunting 무효화


Android Studio는 최적화가 가능하므로 필요하지 않습니다.
지정aaptOptions.cruncherEnables = false.
또는 토론에서는 WebP를 사용할 수 없습니다.

Tips6: Instant Run 사용


( ^-R ) :
( ⌘-F10 )

Tips7: Manifest 불필요한 변경 방지


Manifest의 versionCode 동적 변화 설정(예: 날짜에 version 설정이 부여된 경우)이면 Full Build가 주행하므로 피하십시오.
개발build은 고정값입니다.

Tips8: dependencies의 동적 버전 방지


compile 'com.android.applat-v7:+'+를 가리킨다.
최신 버전이 있는지 찾아봐야 하기 때문에 버전을 고정시켜야 한다.

Tips9: 메모리 주의


gradle.properties org.gradle.jvmargs=-Xmx1536m 를 시험해 보세요.
build.gradle의 dexOption에서 javaMaxHeapSize = "4g"로 변하는 경우 주의하세요.

Tips10:Gradle 캐시 설정


Gradle 3.5에서gradle까지.properties에 추가org.gradle.caching되었기 때문에 유효화됩니다.

추가 Tips: Crashlytics 무효화


다음을 설정하면 build을 개발할 때 Crashlytics가 무효가 될 수 있습니다.
android {
    buildTypes {
        debug {
          // Disable fabric build ID generation for debug builds
          ext.enableCrashlytics = false
          ...
(참조)
Build Tools — Fabric for Android documentation

결실


Tips를 이렇게 많이 만들었으면 여러 가지 build이 빠르다고 합니다.(Santa Tracker의 경우)
Full Build
Incremental Build (Java Change)
Incremental Build (Resource Change)
세 배
12배
세 배
Tips의 다양한 효과
Tips
Full Build
Incremental Build (Java Change)
Incremental Build (Resource Change)
1: 최신 Gradle Plugin 사용
-25%
-38%
-16%
2: MultiDex의 잔류 방지
-12%
-53%
0%
3: 멀티-ACK 비활성화
-12%
-6%
-26%
4: 최소 리소스 포함(지정 언어 및 DPI)
-17%
-24%
-21%
5: PNG의 crunting 무효화
-33%
0%
0%
6: Instant Run 사용
+37%
-54%
-42%
7: 매니페스트 불필요한 변경 방지
-
+130%
+90%
8:dependencies의 동적 버전 피하기
-
-
-
9: 메모리 주의
-
-
-
10:Gradle 캐시 설정
-25%
0%
+12%
소스 파일: https://github.com/google/santa-tracker-android

좋은 웹페이지 즐겨찾기