개발툴/이클립스, STS

Gradle 및 Android Studio를 통해 앱을 빌드하고 실행하는 것이 Eclipse를 사용하는 것보다 느립니다.

Rateye 2021. 6. 25. 10:37
728x90
반응형

 

질문 : Gradle 및 Android Studio를 통해 앱을 빌드하고 실행하는 것이 Eclipse를 사용하는 것보다 느립니다.

나는 건물에 매번 20-30 초가 걸리는 다중 프로젝트 (~ 10 개 모듈)를 가지고 있습니다. Android Studio에서 Run을 누르면 앱을 다시 빌드 할 때마다 기다려야하는데 이는 매우 느립니다.

Android Studio에서 빌드 프로세스를 자동화 할 수 있습니까? 아니면이 프로세스를 더 빠르게 만드는 방법에 대한 조언이 있습니까?

Eclipse에서는 자동 빌드 덕분에 에뮬레이터에서 동일한 프로젝트를 실행하는 데 약 3-5 초가 걸립니다.

이것은 내 build.gradle 파일 (앱 모듈)입니다.

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

죄송합니다. 개발 스테이션을 SSD와 램으로 업그레이드하는 것이 아래의 포인트를 합친 것보다 더 큰 영향을 미칠 것입니다.

빌드 성능 향상은 개발 팀의 최우선 과제이므로 최신 GradleAndroid Gradle 플러그인을 사용하고 있는지 확인하세요.

적용되는 디렉토리에 gradle.properties 라는 파일을 만듭니다.

  • /home/<username>/.gradle/ (Linux)
  • /Users/<username>/.gradle/ (Mac)
  • C:\Users\<username>\.gradle (Windows)

추가 :

# 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
                                                                                                

projectRoot\gradle.properties 배치하면 로컬로 작동 user_home\.gradle\gradle.properties 배치하면 전역 적으로 작동합니다. 콘솔에서 또는 아이디어에서 직접 gradle 작업을 실행하는 경우 적용되는 속성 :

IDE 설정 GUI에서 Gradle-IntelliJ 통합을 조정할 수 있습니다. "오프라인 작업"( 아래 yava의 답변 확인)을 활성화하면 모든 "동기화 gradle 파일"에서 실제 네트워크 요청이 비활성화됩니다.

IDE 설정

apk 빌드의 가장 느린 단계 중 하나는 Java 바이트 코드를 단일 dex 파일로 변환하는 것입니다. 네이티브 multidex (디버그 빌드 전용 minSdk 21)를 활성화하면 도구를 사용하여 작업량을 줄이는 데 도움이됩니다 ( 아래 Aksel Willgert의 답변 확인).

라이브러리 하위 프로젝트보다 @aar 종속성을 선호합니다.

mavenCentral , jCenter 에서 aar 패키지를 검색하거나 jitpack.io 를 사용하여 github에서 라이브러리를 빌드하십시오. 종속성 라이브러리의 소스를 편집하지 않는 경우 프로젝트 소스로 매번 빌드하면 안됩니다.

바이러스 백신 검사에서 프로젝트 및 캐시 파일을 제외하는 것을 고려하십시오. 이것은 분명히 보안과의 상충 관계입니다 (집에서 이것을 시도하지 마십시오!). 그러나 브랜치 사이를 많이 전환하면 바이러스 백신이 gradle 프로세스가 파일을 사용하도록 허용하기 전에 파일을 다시 검색하므로 빌드 시간이 느려집니다 (특히 AndroidStudio 프로젝트를 gradle 파일 및 인덱싱 작업과 동기화). 바이러스 백신을 사용하거나 사용하지 않은 상태에서 빌드 시간과 프로세스 CPU를 측정하여 관련되었는지 확인합니다.

Gradle에는 프로젝트 프로파일 링에 대한 기본 지원이 있습니다. 서로 다른 프로젝트에서 서로 다른 플러그인 및 사용자 지정 스크립트 조합을 사용하고 있습니다. --profile 을 사용하면 병목 현상을 찾는 데 도움이됩니다.

출처 : https://stackoverflow.com/questions/16775197/building-and-running-app-via-gradle-and-android-studio-is-slower-than-via-eclips
728x90
반응형