Android Studio 구성

Android 스튜디오는 Java 개발 키트 (JDK), 사용 가능한 RAM과 같은 시스템 요구사항을 확인할 수 있는 마법사와 템플릿을 제공하고 최적화된 기본 Android Virtual Device (AVD) 에뮬레이션 및 업데이트된 시스템 이미지와 같은 기본 설정을 구성합니다. 이 문서에서는 Android 스튜디오 사용을 맞춤설정하는 추가 구성 설정을 설명합니다.

Android 스튜디오에서는 Help 메뉴를 통해 구성 파일 두 개에 액세스할 수 있습니다.

  • studio.vmoptions: Android 스튜디오의 JVM(Java Virtual Machine) 옵션(예: 힙 크기, 캐시 크기)을 맞춤설정합니다. Linux 컴퓨터에서 이 파일의 이름은 Android 스튜디오의 버전에 따라 studio64.vmoptions일 수 있습니다.
  • idea.properties: 플러그인 폴더 경로 또는 지원되는 최대 파일 크기와 같은 Android 스튜디오 속성을 맞춤설정합니다.

에뮬레이터와 기기의 설정 및 사용에 관한 구체적인 문서는 다음 주제를 참고하세요.

구성 파일 찾기

두 구성 파일 모두 Android 스튜디오의 구성 디렉터리에 저장됩니다. 구성 디렉터리를 찾으려면 디렉터리를 참고하세요.

다음 환경 변수를 사용하여 다른 곳의 특정 재정의 파일을 가리킬 수 있습니다.

  • STUDIO_VM_OPTIONS: .vmoptions 파일의 이름과 위치를 설정합니다.
  • STUDIO_PROPERTIES: .properties 파일의 이름과 위치를 설정합니다.

Android 빌드의 자바 버전에서 사용할 JDK를 구성할 수 있습니다.

VM 옵션 맞춤설정

studio.vmoptions 파일을 사용하면 Android 스튜디오의 JVM 옵션을 맞춤설정할 수 있습니다. Android 스튜디오의 성능을 개선하기 위해 가장 일반적인 조정 옵션은 최대 힙 크기이지만 studio.vmoptions 파일을 사용하여 다른 기본 설정(예: 초기 힙 크기, 캐시 크기, 자바 가비지 컬렉션 스위치)을 재정의할 수도 있습니다.

studio.vmoptions 파일을 만들거나 기존 파일을 열려면 다음 단계를 따르세요.

  1. Help > Edit Custom VM Options를 클릭합니다. Android 스튜디오의 VM 옵션을 한 번도 수정한 적이 없다면 IDE에서 새로운 studio.vmoptions 파일을 만들라는 메시지를 표시합니다. 만들기를 클릭하여 파일을 만듭니다.
  2. studio.vmoptions 파일이 Android 스튜디오의 편집기 창에서 열립니다. 파일을 수정하여 맞춤설정된 VM 옵션을 추가합니다. 맞춤설정이 가능한 JVM 옵션의 전체 목록은 Oracle의 자바 핫스팟 VM 옵션 페이지를 참고하세요.

생성된 studio.vmoptions 파일은 Android 스튜디오 설치 폴더의 bin/ 디렉터리에 있는 기본 studio.vmoptions 파일에 추가됩니다.

Android 스튜디오 프로그램 폴더에 있는 studio.vmoptions 파일을 직접 수정하면 안 됩니다. 파일에 액세스하여 Android 스튜디오의 기본 VM 옵션을 볼 수 있지만 자체 studio.vmoptions 파일만 수정하면 Android 스튜디오의 중요한 기본 설정을 재정의하지 못합니다. 따라서 studio.vmoptions 파일에서 중요한 속성만 재정의하고 변경하지 않은 모든 속성의 기본값을 Android 스튜디오가 계속 사용하도록 합니다.

최대 힙 크기

기본적으로 Android Studio의 최대 힙 크기는 1280MB입니다. 대규모 프로젝트에서 작업 중이거나 시스템에 RAM 용량이 많은 경우에는 코어 IDE, Gradle 데몬, Kotlin 데몬과 같은 Android 스튜디오 프로세스의 최대 힙 크기를 늘려 성능을 개선할 수 있습니다.

Android 스튜디오에서 가능한 힙 크기 최적화를 자동으로 확인하여 성능이 향상될 수 있음을 감지하면 개발자에게 알립니다.

Android 스튜디오 프로세스의 최대 RAM 크기를 구성할 수 있는 메모리 설정

그림 1. 권장 메모리 설정 관련 알림

RAM이 5GB 이상인 64비트 시스템을 사용하는 경우 수동으로 프로젝트의 힙 크기를 조정할 수도 있습니다. 방법은 다음과 같습니다.

  1. 메뉴 바에서 File > Settings(macOS의 경우 Android 스튜디오 > Preferences)를 클릭합니다.
  2. Appearance & Behavior > System Settings > Memory Settings를 클릭합니다.

    Android 스튜디오 프로세스의 최대 RAM 크기를 구성할 수 있는 메모리 설정

    그림 2. 메모리 설정에서 최대 RAM 크기를 구성하세요.

  3. 힙 크기를 조정합니다.

  4. 적용을 클릭합니다.

    IDE의 힙 크기를 변경하는 경우 Android 스튜디오를 다시 시작해야 새 메모리 설정이 적용됩니다.

IDE 설정 내보내기 및 가져오기

프로젝트에서 선호하는 IDE 설정의 전부 또는 일부가 포함된 Settings.jar 파일을 내보낼 수 있습니다. 그러고 나서 JAR 파일을 다른 프로젝트로 가져오거나 동료가 자기 프로젝트로 가져올 수 있도록 JAR 파일을 제공할 수 있습니다.

자세한 내용은 IntelliJ IDEA에서 IDE 설정 공유를 참고하세요.

IDE 속성 맞춤설정

idea.properties 파일을 사용하면 사용자가 설치한 플러그인 경로 및 IDE에서 지원하는 최대 파일 크기와 같은 Android 스튜디오의 IDE 속성을 맞춤설정할 수 있습니다. idea.properties 파일은 IDE의 기본 속성과 병합되므로 재정의 속성만 지정할 수 있습니다.

idea.properties 파일을 만들거나 기존 파일을 열려면 다음 단계를 따르세요.

  1. Help > Edit Custom Properties를 클릭합니다. IDE 속성을 한 번도 수정한 적이 없다면 Android 스튜디오에서 새로운 idea.properties 파일을 만들라는 메시지를 표시합니다. Yes를 클릭하여 파일을 만듭니다.
  2. idea.properties 파일이 Android 스튜디오의 편집기 창에서 열립니다. 파일을 편집하여 맞춤설정된 IDE 속성을 추가합니다.

다음 idea.properties 파일에는 일반적으로 맞춤설정한 IDE 속성이 포함되어 있습니다. 전체 속성 목록은 IntelliJ IDEA의 idea.properties 파일을 참고하세요.

#---------------------------------------------------------------------
# Uncomment this option if you want to customize path to user installed plugins folder. Make sure
# you're using forward slashes.
#---------------------------------------------------------------------
# idea.plugins.path=${idea.config.path}/plugins
#---------------------------------------------------------------------
# Maximum file size (kilobytes) IDE should provide code assistance for.
# The larger the file is, the slower its editor works and higher overall system memory requirements are
# if code assistance is enabled. Remove this property or set to very large number if you need
# code assistance for any files available regardless their size.
#---------------------------------------------------------------------
idea.max.intellisense.filesize=2500
#---------------------------------------------------------------------
# This option controls console cyclic buffer: keeps the console output size not higher than the
# specified buffer size (Kb). Older lines are deleted. In order to disable cycle buffer use
# idea.cycle.buffer.size=disabled
#---------------------------------------------------------------------
idea.cycle.buffer.size=1024
#---------------------------------------------------------------------
# Configure if a special launcher should be used when running processes from within IDE.
# Using Launcher enables "soft exit" and "thread dump" features.
#---------------------------------------------------------------------
idea.no.launcher=false
#---------------------------------------------------------------------
# To avoid too long classpath
#---------------------------------------------------------------------
idea.dynamic.classpath=false
#---------------------------------------------------------------------
# There are two possible values of idea.popup.weight property: "heavy" and "medium".
# If you have WM configured as "Focus follows mouse with Auto Raise", then you have to
# set this property to "medium". It prevents problems with popup menus on some
# configurations.
#---------------------------------------------------------------------
idea.popup.weight=heavy
#---------------------------------------------------------------------
# Use default anti-aliasing in system, i.e. override value of
# "Settings|Editor|Appearance|Use anti-aliased font" option. May be useful when using Windows
# Remote Desktop Connection for instance.
#---------------------------------------------------------------------
idea.use.default.antialiasing.in.editor=false
#---------------------------------------------------------------------
# Disabling this property may lead to visual glitches like blinking and fail to repaint
# on certain display adapter cards.
#---------------------------------------------------------------------
sun.java2d.noddraw=true
#---------------------------------------------------------------------
# Removing this property may lead to editor performance degradation under Windows.
#---------------------------------------------------------------------
sun.java2d.d3d=false
#---------------------------------------------------------------------
# Workaround for slow scrolling in JDK6.
#---------------------------------------------------------------------
swing.bufferPerWindow=false
#---------------------------------------------------------------------
# Removing this property may lead to editor performance degradation under X Window.
#---------------------------------------------------------------------
sun.java2d.pmoffscreen=false
#---------------------------------------------------------------------
# Workaround to avoid long hangs while accessing clipboard under Mac OS X.
#---------------------------------------------------------------------
# ide.mac.useNativeClipboard=True
#---------------------------------------------------------------------
# Maximum size (kilobytes) IDEA will load for showing past file contents -
# in Show Diff or when calculating Digest Diff.
#---------------------------------------------------------------------
# idea.max.vcs.loaded.size.kb=20480

메모리 용량이 낮은 기기의 IDE 구성

권장 사양 (시스템 요구사항 참고)보다 낮은 컴퓨터에서 Android 스튜디오를 실행하는 경우 IDE를 맞춤설정하여 다음과 같이 기기의 성능을 개선할 수 있습니다.

  • Android 스튜디오에서 사용할 수 있는 최대 힙 크기 줄이기: Android 스튜디오의 최대 힙 크기를 512Mb로 줄입니다. 최대 힙 크기 변경에 관한 자세한 내용은 최대 힙 크기를 참고하세요.
  • Gradle 및 Android Gradle 플러그인 업데이트: 최신 성능 개선사항을 활용하려면 Gradle 및 Android Gradle 플러그인을 최신 버전으로 업데이트하세요. Gradle 및 Android Gradle 플러그인 업데이트에 관한 자세한 내용은 Android Gradle 플러그인 출시 노트를 참고하세요.
  • 절전 모드 사용 설정: 절전 모드를 사용 설정하면 오류 강조 표시, 즉석 검사, 자동 팝업 코드 완성, 자동 증분 백그라운드 컴파일 등 메모리와 배터리를 많이 사용하는 여러 백그라운드 작업을 끌 수 있습니다. 절전 모드를 켜려면 File > Power Save Mode를 클릭합니다.
  • 불필요한 린트 검사 사용 중지: Android 스튜디오가 코드에서 실행하는 린트 검사를 변경하려면 다음 단계를 진행하세요.

    1. File > Settings(macOS의 경우 Android 스튜디오 > Preferences)를 클릭하여 Settings 대화상자를 엽니다.
    2. 왼쪽 창에서 Editor 섹션을 펼치고 Inspections를 클릭합니다.
    3. 체크박스를 클릭하여 프로젝트에 알맞게 린트 검사를 선택하거나 선택 해제합니다.
    4. Apply 또는 OK를 클릭하여 변경사항을 저장합니다.
  • 물리적 기기에서 디버그: 실제 기기에서 디버깅하여 Android 스튜디오의 전반적인 성능을 개선합니다. 에뮬레이터에서 디버깅하면 실제 기기에서 디버깅하는 것보다 더 많은 메모리를 사용합니다.

  • 필요한 Google Play 서비스만 종속 항목으로 포함: 필요한 Google Play 서비스만 프로젝트의 종속 항목으로 포함합니다. 종속 항목은 필요한 메모리 양을 늘리므로 종속 항목을 제한하면 메모리 사용량과 성능이 개선됩니다. 자세한 내용은 Google Play 서비스 종속 항목 선언을 참고하세요.

  • Gradle에 사용할 수 있는 최대 힙 크기 줄이기: 다음과 같이 gradle.properties 파일의 org.gradle.jvmargs 속성을 재정의하여 Gradle의 최대 힙 크기 값을 기본값인 1,536MB에서 줄입니다.

    # Make sure to gradually decrease this value and note
    # changes in performance. Allocating too little memory can
    # also decrease performance.
    org.gradle.jvmargs = -Xmx1536m
    
  • 병렬 컴파일이 사용 설정되지 않았는지 확인: Android 스튜디오는 독립적인 모듈을 병렬로 컴파일할 수 있지만 시스템 메모리가 부족한 경우에는 이 기능을 사용 중지한 상태로 둡니다. 이 설정을 확인하려면 다음 단계를 따르세요.

    1. File > Settings(macOS의 경우 Android 스튜디오 > Preferences)를 클릭하여 Settings 대화상자를 엽니다.
    2. 왼쪽 창에서 Build, Execution, Deployment를 펼치고 Compiler를 클릭합니다.
    3. Compile independent modules in parallel 옵션이 선택 해제되어 있는지 확인합니다.
    4. 설정을 변경했다면 Apply 또는 OK를 클릭하여 변경사항을 적용합니다.

프록시 설정

프록시는 인터넷 연결에 보안 및 개인정보 보호 기능을 추가하는 HTTP 클라이언트와 웹 서버 사이에서 중간 연결 지점의 역할을 합니다.

Android 스튜디오가 방화벽 뒤에서 실행되도록 지원하려면 Android 스튜디오 IDE HTTP 프록시 설정 페이지를 사용하여 HTTP 프록시를 설정합니다.

Android Gradle 플러그인을 명령줄에서 실행하거나 Android 스튜디오가 설치되지 않은 기기(예: 지속적 통합 서버)에서 실행하는 경우 Gradle 빌드 파일에서 프록시 설정을 구성합니다.

Android 스튜디오 프록시 설정

Android 스튜디오는 HTTP 프록시 설정을 지원하므로 방화벽 또는 보안 네트워크 뒤에서 Android 스튜디오를 실행할 수 있습니다. Android 스튜디오에서 HTTP 프록시 설정을 구성하려면 다음 단계를 따르세요.

  1. 메뉴 바에서 File > Settings(macOS의 경우 Android 스튜디오 > Preferences)를 클릭합니다.
  2. 왼쪽 창에서 Appearance & Behavior > System Settings > HTTP Proxy를 클릭합니다. HTTP 프록시 페이지가 나타납니다.
  3. Auto-detect proxy settings를 선택하여 프록시 설정의 자동 프록시 구성 URL을 사용하거나 Manual proxy configuration을 선택하여 각 설정을 직접 입력합니다. 이 설정에 관한 자세한 내용은 HTTP 프록시를 참고하세요.
  4. Apply 또는 OK를 클릭하여 변경사항을 적용합니다.

Gradle용 Android 플러그인 HTTP 프록시 설정

Android 플러그인을 명령줄에서 실행하거나 Android 스튜디오가 설치되지 않은 컴퓨터에서 실행하는 경우 Gradle 빌드 파일에서 Android Gradle 플러그인 프록시 설정을 구성합니다.

애플리케이션별 HTTP 프록시 설정의 경우 각 애플리케이션 모듈의 필요에 따라 build.gradle 파일에서 프록시를 설정합니다.

plugins {
  id 'com.android.application'
}

android {
    ...

    defaultConfig {
        ...
        systemProp.http.proxyHost=proxy.company.com
        systemProp.http.proxyPort=443
        systemProp.http.proxyUser=userid
        systemProp.http.proxyPassword=password
        systemProp.http.auth.ntlm.domain=domain
    }
    ...
}

프로젝트 범위의 HTTP 프록시 설정의 경우 gradle/gradle.properties 파일에서 프록시를 설정합니다.

# Project-wide Gradle settings.
...

systemProp.http.proxyHost=proxy.company.com
systemProp.http.proxyPort=443
systemProp.http.proxyUser=username
systemProp.http.proxyPassword=password
systemProp.http.auth.ntlm.domain=domain

systemProp.https.proxyHost=proxy.company.com
systemProp.https.proxyPort=443
systemProp.https.proxyUser=username
systemProp.https.proxyPassword=password
systemProp.https.auth.ntlm.domain=domain

...

프록시 설정에 Gradle 속성을 사용하는 방법에 관한 자세한 내용은 Gradle 사용자 가이드를 참고하세요.

Windows에서 Android 스튜디오 성능 최적화

Windows에서 Android 스튜디오의 성능은 다양한 요인에 영향을 받을 수 있습니다. 이 섹션에서는 Windows에서 Android 스튜디오 설정을 최적화하여 가능한 한 최상의 성능을 얻는 방법에 관해 설명합니다.

바이러스 백신 소프트웨어가 빌드 속도에 미치는 영향 최소화

일부 바이러스 백신 소프트웨어는 Android 스튜디오 빌드 프로세스를 방해할 수 있으며, 이로 인해 빌드 실행 속도가 크게 느려질 수 있습니다. Android 스튜디오에서 빌드를 실행하면 Gradle은 앱의 리소스와 소스 코드를 컴파일한 후 컴파일된 리소스를 APK나 AAB로 함께 패키징합니다. 이 과정에서 많은 파일이 컴퓨터에 생성됩니다. 바이러스 백신 소프트웨어에 실시간 검사가 사용 설정된 경우 바이러스 백신 소프트웨어는 파일을 검사하는 동안 파일이 생성될 때마다 빌드 프로세스를 강제로 중지할 수 있습니다.

이런 문제를 방지하려면 바이러스 백신 소프트웨어에서 특정 디렉터리를 실시간 검사 대상에서 제외하면 됩니다. Windows의 경우 빌드 분석 도구를 사용하면 활성 스캔에서 제외해야 하는 디렉터리를 식별하고 제외할 수 있습니다.

다음 목록은 실시간 검사에서 제외할 수 있는 각 Android 스튜디오 디렉터리의 기본 위치를 보여줍니다.

Gradle 캐시
%USERPROFILE%\.gradle
Android 스튜디오 프로젝트
%USERPROFILE%\AndroidStudioProjects
Android SDK
%USERPROFILE%\AppData\Local\Android\SDK

Android 스튜디오 시스템 파일

구문: %LOCALAPPDATA%\Google\<product><version>

예: C:\Users\YourUserName\AppData\Local\Google\AndroidStudio4.1

그룹 정책 제어 환경의 디렉터리 위치 맞춤설정

그룹 정책이 컴퓨터에서 실시간 검사에서 제외할 수 있는 디렉터리를 제한하는 경우 Android 스튜디오 디렉터리를 중앙 집중식 그룹 정책에서 이미 제외한 위치 중 하나로 이동할 수 있습니다.

다음 목록에서는 각 Android 스튜디오 디렉터리의 위치를 맞춤설정하는 방법을 보여줍니다. 여기서 C:\WorkFolder는 그룹 정책에서 이미 제외한 디렉터리입니다.

Gradle 캐시
C:\WorkFolder\.gradle를 가리키도록 GRADLE_USER_HOME 환경 변수를 정의합니다.
Android 스튜디오 프로젝트
프로젝트 디렉터리를 C:\WorkFolder의 적절한 하위 디렉터리로 이동하거나 이 디렉터리에 생성합니다. 예를 들어 C:\WorkFolder\AndroidStudioProjects입니다.
Android SDK

위치를 맞춤설정하려면 다음 단계를 따르세요.

  1. Android 스튜디오에서 Settings 대화상자(macOS의 경우 Preferences)를 열고 Appearance & Behavior > System Settings > Android SDK로 이동합니다.

  2. Android SDK Location의 값을 C:\WorkFolder\AndroidSDK로 변경합니다.

    SDK를 다시 다운로드하지 않으려면 기본적으로 %USERPROFILE%\AppData\Local\Android\SDK에 있는 기존 SDK 디렉터리를 새 위치에 복사합니다.

Android 스튜디오 시스템 파일

위치를 맞춤설정하려면 다음 단계를 따르세요.

  1. Android 스튜디오에서 Help > Edit Custom Properties를 클릭합니다.

    아직 idea.properties 파일이 없으면 Android 스튜디오에서 이 파일을 만들라는 메시지를 표시합니다.

  2. idea.properties 파일에 다음 줄을 추가합니다.

    idea.system.path=c:/workfolder/studio/caches/trunk-system