Android 스튜디오 소개

Android 스튜디오는 Android 앱 개발을 위한 공식 통합 개발 환경(IDE)입니다. Android 스튜디오는 IntelliJ IDEA의 강력한 코드 편집기와 개발자 도구를 기반으로 Android 앱을 빌드할 때 생산성을 높여주는 다음과 같은 다양한 기능을 제공합니다.

  • 유연한 Gradle 기반 빌드 시스템
  • 빠르고 기능이 풍부한 에뮬레이터
  • 모든 Android 기기용으로 개발할 수 있는 통합 환경
  • 앱을 다시 시작할 필요 없이 변경사항을 적용하여 실행 중인 앱에 코드 및 리소스 변경사항을 푸시
  • 일반적인 앱 기능을 빌드하고 샘플 코드를 가져오는 데 도움이 되는 코드 템플릿과 GitHub 통합
  • 광범위한 테스트 도구 및 프레임워크
  • 성능, 사용성, 버전 호환성 및 기타 문제를 파악하는 린트 도구
  • C++ 및 NDK 지원
  • Google 클라우드 메시징과 App Engine을 간편하게 통합하는 Google Cloud Platform을 기본적으로 지원

이 페이지에서는 Android 스튜디오의 기본 기능을 소개합니다. 최신 변경사항의 요약 내용은 Android 스튜디오 출시 노트를 참고하세요.

프로젝트 구조

그림 1. Android 프로젝트 뷰의 프로젝트 파일

Android 스튜디오의 각 프로젝트에는 소스 코드 파일 및 리소스 파일과 함께 모듈이 하나 이상 포함됩니다. 모듈 유형에는 다음이 포함됩니다.

  • Android 앱 모듈
  • 라이브러리 모듈
  • Google App Engine 모듈

Android 스튜디오는 기본적으로 Android 프로젝트 뷰에 프로젝트 파일을 표시합니다(그림 1 참고). 프로젝트의 주요 소스 파일에 신속하게 액세스할 수 있도록 이 뷰는 모듈별로 구성됩니다. 모든 빌드 파일은 최상위의 Gradle Scripts에 표시됩니다.

각 앱 모듈에는 다음 폴더가 포함됩니다.

  • manifests: AndroidManifest.xml 파일을 포함합니다.
  • java: JUnit 테스트 코드를 비롯한 자바 및 Kotlin 소스 코드 파일을 포함합니다.
  • res: 코드가 아닌 모든 리소스를 포함합니다(XML 레이아웃, UI 문자열, 비트맵 이미지 등).

디스크의 Android 프로젝트 구조는 이 평면화된 표현과 다릅니다. 프로젝트의 실제 파일 구조를 보려면 Project 메뉴에서 Android 대신 Project를 선택합니다.

프로젝트 파일의 뷰가 앱 개발의 특정 측면에 중점을 두도록 개발자가 맞춤설정할 수도 있습니다. 예를 들어 프로젝트의 Problems 뷰를 선택하면 인식된 코딩 및 문법 오류(예: 레이아웃 파일에서 XML 요소 닫는 태그 누락)가 포함된 소스 파일의 링크가 표시됩니다.

그림 2. Problems 뷰에 표시된 문제 있는 레이아웃 파일

자세한 내용은 프로젝트 개요를 참고하세요.

사용자 인터페이스

Android 스튜디오 기본 창은 그림 3과 같은 여러 개의 논리 영역으로 구성됩니다.

그림 3. Android 스튜디오 기본 창

  1. 툴바: 앱을 실행하거나 Android 도구를 시작하는 등 다양한 작업을 처리합니다.
  2. 탐색 메뉴: 프로젝트를 탐색하고 수정할 파일을 엽니다. 탐색 메뉴는 Project 창에 나타나는 구조를 좀 더 간략하게 표시합니다.
  3. 편집기 창: 코드를 작성하고 수정합니다. 현재의 파일 형식에 따라 편집기가 바뀔 수 있습니다. 예를 들어, 레이아웃 파일을 볼 때 편집기는 Layout Editor를 표시합니다.
  4. 도구 창 모음: IDE 창 외부에 있는 버튼을 사용하여 개별 도구 창을 펼치거나 접습니다.
  5. 도구 창: 프로젝트 관리, 검색, 버전 제어 같은 특정 작업에 액세스합니다. 창을 펼치고 접을 수 있습니다.
  6. 상태 표시줄: 프로젝트와 IDE의 상태를 표시하며 경고나 메시지도 표시합니다.

더 많은 화면 공간을 확보하도록 기본 창을 구성하려면 툴바와 도구 창을 숨기거나 이동합니다. 또한 단축키를 사용하여 대부분의 IDE 기능에 액세스할 수도 있습니다.

소스 코드, 데이터베이스, 작업, 사용자 인터페이스 요소 등에서 검색하려면 다음 중 한 가지 방법을 사용하세요.

  • Shift 키를 두 번 누릅니다.
  • Android 스튜디오 창의 오른쪽 상단에 있는 돋보기를 클릭합니다.

예를 들어, 이 검색 기능은 트리거 방법을 잊은 특정 IDE 작업을 찾으려는 경우 매우 유용할 수 있습니다.

도구 창

Android 스튜디오는 미리 설정된 구성을 사용하는 대신 상황에 따라 작업 시에 관련 도구 창을 자동으로 불러옵니다. 기본적으로 가장 자주 사용하는 도구 창이 애플리케이션 창 가장자리의 도구 창 모음에 고정됩니다.

다음을 사용하여 도구 창을 탐색합니다.

  • 도구 창을 펼치거나 접으려면 도구 창 모음에서 도구 이름을 클릭합니다. 또한 도구 창을 드래그하거나, 고정하거나, 고정 해제하거나, 연결하거나 분리할 수도 있습니다.
  • 현재 도구 창의 기본 레이아웃으로 돌아가려면 Window > Restore Default Layout을 클릭합니다. 기본 레이아웃을 맞춤설정하려면 Window > Store Current Layout as Default를 클릭합니다.
  • 전체 도구 창 모음을 표시하거나 숨기려면 Android 스튜디오 창의 왼쪽 하단 모서리에 있는 창 아이콘 을 클릭합니다.
  • 특정 도구 창을 찾으려면 창 아이콘 위로 마우스를 가져간 후 메뉴에서 도구 창을 선택합니다.

또한 단축키를 사용하여 도구 창을 열 수도 있습니다. 표 1은 가장 일반적인 도구 창의 단축키를 보여줍니다.

표 1. 도구 창의 단축키

도구 창 Windows 및 Linux macOS
프로젝트 Alt+1 Command+1
버전 제어 Alt+9 Command+9
실행 Shift+F10 Control+R
디버그 Shift+F9 Control+D
Logcat Alt+6 Command+6
편집기로 돌아가기 Esc Esc
모든 도구 창 숨기기 Control+Shift+F12 Command+Shift+F12

모든 툴바, 도구 창 및 편집기 탭을 숨기려면 View > Enter Distraction Free Mode를 클릭합니다. Distraction Free Mode를 종료하려면 View > Exit Distraction Free Mode를 클릭합니다.

Speed Search를 사용하면 Android 스튜디오의 대부분의 도구 창 내에서 검색하고 필터링할 수 있습니다. Speed Search를 사용하려면 도구 창을 선택한 다음 원하는 검색어를 입력합니다.

코드 작성

Android 스튜디오에는 단축키를 사용하여 액세스할 수 있는 세 가지 코드 작성 유형이 있습니다.

표 2. 코드 작성을 위한 단축키

유형 설명 Windows 및 Linux macOS
기본 완성 변수, 유형, 메서드, 표현식 등에 관한 기본 제안을 표시합니다. 한 행에서 기본 완성을 두 번 호출하는 경우, 비공개 멤버 및 가져오지 않은 정적 멤버를 비롯하여 더 많은 결과가 나타납니다. Control + 스페이스 Control + 스페이스
스마트 완성 상황에 따라 관련 옵션을 표시합니다. 스마트 완성은 예상되는 유형과 데이터 흐름을 인식합니다. 한 행에서 스마트 완성을 두 번 호출하는 경우, 체인을 비롯하여 더 많은 결과가 나타납니다. Control + Shift + 스페이스 Control + Shift + 스페이스
명령문 완성 현재 명령문을 자동으로 완성하고, 누락된 소괄호, 대괄호, 중괄호, 서식 등을 추가합니다. Control + Shift + Enter Command+Shift+Enter

빠른 수정을 실행하고 의도한 작업을 표시하려면 Alt+Enter를 누릅니다.

샘플 코드 찾기

Android 스튜디오의 코드 샘플 브라우저를 사용하면 프로젝트에서 현재 강조표시된 기호를 바탕으로 Google에서 제공하는 고품질 Android 코드 샘플을 손쉽게 찾을 수 있습니다. 자세한 정보는 샘플 코드 찾기를 참고하세요.

Android 스튜디오를 탐색하는 데 도움이 되는 몇 가지 팁을 소개합니다.

  • 최근에 액세스한 파일 간에 전환하려면 Recent Files 작업을 사용합니다.

    Recent Files 작업을 불러오려면 Control+E(macOS에서는 Command+E)를 누릅니다. 기본적으로 마지막 액세스한 파일이 선택됩니다. 이 작업에서 왼쪽 열을 통해 모든 도구 창에 액세스할 수도 있습니다.

  • File Structure 작업을 사용하여 현재 파일의 구조를 확인하고 현재 파일의 어떤 부분으로든 빠르게 이동할 수 있습니다.

    File Structure 작업을 불러오려면 Control+F12(macOS에서는 Command+F12)를 누릅니다.

  • Navigate to Class 작업을 사용하여 프로젝트의 특정 클래스를 검색하고 해당 클래스로 이동합니다. Navigate to Class카멜 험프(요소의 카멜 표기법 이름에 있는 대문자로 검색), 경로, 줄 탐색(파일 내의 특정 줄로 이동), 중간 이름 일치(클래스 이름의 일부 검색) 등의 고급 표현식을 지원합니다. 이 작업을 한 행에서 두 번 호출하는 경우, 프로젝트 클래스의 결과를 표시합니다.

    Navigate to Class 작업을 불러오려면 Control+N(macOS에서는 Command+O)을 누릅니다.

  • Navigate to File 작업을 사용하여 파일 또는 폴더로 이동합니다.

    Navigate to File 작업을 불러오려면 Control+Shift+N(macOS에서는 Command+Shift+O)을 누릅니다. 파일이 아니라 폴더를 검색하려면 표현식 끝에 '/'를 추가합니다.

  • Navigate to Symbol 작업을 사용하여 이름별로 메서드 또는 필드로 이동합니다.

    Navigate to Symbol 작업을 불러오려면 Control+Shift+Alt+N(macOS에서는 Command+Option+O)을 누릅니다.

  • 현재 커서 위치에서 클래스, 메서드, 필드, 매개변수 또는 명령문을 참조하는 모든 코드 조각을 찾으려면 Alt+F7(macOS에서는 Option+F7)을 누릅니다.

스타일 및 서식

수정 중에 Android 스튜디오는 코드 스타일 설정에 지정된 대로 서식과 스타일을 자동으로 적용합니다. 프로그래밍 언어로 코드 스타일 설정을 맞춤설정할 수 있으며, 여기에는 탭과 들여쓰기 간격, 공백, 줄바꿈 및 중괄호, 빈 줄의 규칙을 지정하는 것이 포함됩니다.

코드 스타일을 맞춤설정하려면 File > Settings > Editor > Code Style(macOS에서는 Android Studio > Preferences > Editor > Code Style)을 클릭합니다.

작업 중에 IDE에 의해 서식이 자동으로 적용되지만 Reformat Code 작업을 명시적으로 호출할 수도 있습니다. 이 작업을 호출하려면 Control+Alt+L(macOS에서는 Opt+Command+L)을 누릅니다. 모든 줄에 자동 들여쓰기 간격을 적용하려면 Control+Alt+I(macOS에서는 Control+Option+I)를 누르세요.

그림 4. 서식 지정 전의 코드

그림 5. 서식 지정 후의 코드

버전 제어 기본 정보

Android 스튜디오에서는 다양한 버전 제어 시스템(VCS)을 지원하며 여기에는 Git, GitHub, CVS, Mercurial, Subversion 및 Google Cloud Source Repositories가 포함됩니다.

앱을 Android 스튜디오로 가져온 후에 Android 스튜디오의 VCS 메뉴 옵션을 사용하여 원하는 시스템에 VCS를 지원하고, 저장소를 만들고, 새 파일을 버전 제어로 가져오고, 기타 버전 제어 작업을 처리합니다.

VCS 지원을 사용 설정하려면 다음 단계를 따르세요.

  1. Android 스튜디오의 VCS 메뉴에서 Enable Version Control Integration을 선택합니다.
  2. 메뉴에서 프로젝트 루트에 연결할 VCS를 선택합니다.
  3. OK를 클릭합니다.

이제 선택한 시스템에 따라 VCS 메뉴에 여러 가지 버전 제어 옵션이 표시됩니다.

참고: File > Settings > Version Control 메뉴 옵션을 사용하여 버전 제어 설정을 구성 및 수정할 수도 있습니다.

Gradle 빌드 시스템

Android 스튜디오는 빌드 시스템의 기반으로 Gradle을 사용하며, 더 많은 Android 전용 기능이 Android Gradle 플러그인을 통해 제공됩니다. 이 빌드 시스템은 Android 스튜디오 메뉴에서는 통합 도구로 실행되고, 명령줄에서는 독립적으로 실행됩니다. 이 빌드 시스템의 기능을 사용하여 다음 작업을 실행할 수 있습니다.

  • 빌드 프로세스 맞춤설정, 구성 및 확장
  • 동일한 프로젝트 및 모듈을 사용하여 다양한 기능을 갖춘 앱을 위한 여러 APK 생성
  • 전체 소스 세트에 걸쳐 코드 및 리소스 재사용

Gradle의 유연성을 활용하면 앱의 주요 소스 파일을 수정하지 않고도 이 모든 작업을 처리할 수 있습니다.

Android 스튜디오 빌드 파일은 build.gradle로 명명됩니다. 이 빌드 파일은 Groovy 구문을 사용하는 일반 텍스트 파일이며 Android Gradle 플러그인이 제공하는 요소들로 빌드를 구성합니다. 전체 프로젝트에서 각 프로젝트에는 하나의 최상위 빌드 파일이 있으며 모듈별로 별도의 모듈 수준 빌드 파일이 있습니다. 개발자가 기존 프로젝트를 가져오면 Android 스튜디오는 필요한 빌드 파일을 자동으로 생성합니다.

빌드 시스템 및 빌드 구성 방법에 관한 자세한 내용은 빌드 구성을 참고하세요.

빌드 변형

빌드 시스템을 사용하여 단일 프로젝트에서 동일한 앱의 다양한 버전을 만들 수 있습니다. 이 기능은 무료 버전 앱과 유료 버전 앱이 둘 다 있거나 Google Play에서 다른 기기 설정에 관해 여러 APK를 배포하려는 경우에 유용합니다.

빌드 변형 구성에 관한 자세한 내용은 빌드 변형 구성을 참고하세요.

다중 APK 지원

다중 APK 지원을 사용하면 화면 밀도 또는 ABI를 기반으로 여러 APK를 효율적으로 만들 수 있습니다. 예를 들어 hdpimdpi 화면 밀도에 맞게 앱의 개별 APK를 만드는 동시에 이들을 단일 변형으로 간주하여 테스트 APK, javac, dx 및 ProGuard 설정을 공유하도록 허용할 수 있습니다.

다중 APK 지원에 관한 자세한 내용은 다중 APK 빌드를 참고하세요.

리소스 축소

Android 스튜디오의 리소스 축소는 패키지 앱과 라이브러리 종속 항목으로부터 미사용 리소스를 자동으로 삭제합니다. 예를 들어, 앱에서 Google Play 서비스를 사용하여 Google Drive 기능에 액세스하고 현재 Google 로그인을 사용하고 있지 않은 경우 리소스 축소를 사용하면 SignInButton 버튼의 다양한 드로어블 애셋을 삭제할 수 있습니다.

참고: 리소스 축소는 ProGuard 등의 코드 축소 도구와 함께 사용됩니다.

코드 및 리소스 축소에 관한 자세한 내용은 앱 축소, 난독화 및 최적화를 참고하세요.

종속 항목 관리

프로젝트의 종속 항목은 build.gradle 파일에 이름으로 지정됩니다. Gradle은 종속 항목을 찾아 빌드에서 사용할 수 있게 합니다. 모듈 종속 항목, 원격 바이너리 종속 항목, 로컬 바이너리 종속 항목을 build.gradle 파일에서 선언할 수 있습니다.

기본적으로 Android 스튜디오는 Maven Central Repository를 사용하도록 프로젝트를 구성합니다. 이 구성은 프로젝트의 최상위 빌드 파일에 포함됩니다.

종속 항목 구성에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.

디버그 및 프로파일링 도구

Android 스튜디오를 사용하면 인라인 디버깅 및 성능 분석 도구 등을 사용하여 코드를 디버그하고 코드 성능을 개선할 수 있습니다.

인라인 디버깅

참조, 표현식 및 변수 값의 인라인 확인 기능이 있는 디버거 뷰에서 인라인 디버깅을 사용하여 코드 검토 능률을 높입니다.

인라인 디버그 정보에는 다음과 같은 항목이 포함됩니다.

  • 인라인 변수 값
  • 선택한 객체를 참조하는 객체
  • 메서드 반환 값
  • 람다 및 연산자 표현식
  • 도움말 값

그림 6. 인라인 변수 값

인라인 디버깅을 사용 설정하려면 Debug 창에서 Settings 를 클릭하고 Show Values Inline을 선택합니다.

성능 프로파일러

Android 스튜디오는 성능 프로파일러를 제공하며 이를 통해 앱의 메모리 및 CPU 사용량을 쉽게 추적하고, 할당 해제된 객체를 확인하고, 메모리 누수를 찾아내고, 그래픽 성능을 최적화하고, 네트워크 요청을 분석할 수 있습니다.

성능 프로파일러를 사용하려면 앱이 기기 또는 에뮬레이터에서 실행 중일 때 View > Tool Windows > Profiler를 선택하여 Android 프로파일러를 엽니다.

성능 프로파일러에 관한 자세한 내용은 앱 성능 프로파일링을 참고하세요.

힙 덤프

Android 스튜디오에서 메모리 사용량을 프로파일링 중인 경우, 동시에 가비지 컬렉션을 시작하고 자바 힙을 Android 전용 HPROF 바이너리 형식 파일로 힙 스냅샷에 덤프할 수 있습니다. HPROF 뷰어는 클래스, 각 클래스의 인스턴스, 참조 트리를 표시하므로 메모리 사용량을 추적하고 메모리 누수를 찾는 데 도움이 됩니다.

힙 덤프 작업에 관한 자세한 내용은 힙 덤프 캡처를 참고하세요.

메모리 프로파일러

메모리 프로파일러를 사용하면 메모리 할당을 추적하고 특정 작업을 실행할 때 객체가 어디에서 할당되는지 살펴볼 수 있습니다. 이러한 할당을 검토하면 작업과 관련된 메서드 호출을 조정하여 앱의 성능과 메모리 사용을 최적화할 수 있습니다.

할당의 추적 및 분석에 관한 자세한 내용은 메모리 할당 보기를 참고하세요.

데이터 파일 액세스

SystraceLogcat과 같은 Android SDK 도구는 자세한 앱 분석을 위해 성능 및 디버깅 데이터를 생성합니다.

사용 가능한 생성된 데이터 파일을 보려면 다음을 따르세요.

  1. Captures 도구 창을 엽니다.
  2. 생성된 파일 목록에서 파일을 더블클릭하여 데이터를 봅니다.
  3. HPROF 파일을 마우스 오른쪽 버튼으로 클릭하여 표준으로 변환합니다.
  4. RAM 사용량 파일 형식을 조사합니다.

코드 검사

개발자가 프로그램을 컴파일할 때마다 Android 스튜디오는 구성된 린트 및 기타 IDE 검사를 자동으로 실행하여 코드의 구조적 품질 문제를 쉽게 식별하고 수정하도록 도와줍니다.

린트 도구는 Android 프로젝트 소스 파일을 검사하여 잠재적 버그를 찾아내고 정확성, 보안, 성능, 사용성, 접근성, 국제화 등을 최적화합니다.

그림 7. Android 스튜디오에서 린트 검사의 결과

린트 검사 외에도, Android 스튜디오는 IntelliJ 코드 검사를 실행하고 주석의 유효성을 검사하여 코딩 워크플로를 능률화합니다.

자세한 내용은 린트 검사로 코드 개선을 참고하세요.

Android 스튜디오의 주석

Android 스튜디오는 변수, 매개변수 및 반환 값에 관한 주석을 지원하므로, 개발자는 null 포인터 예외 및 리소스 유형 충돌 등의 버그를 포착할 수 있습니다.

Android SDK Manager는 Android 스튜디오에서 사용할 수 있도록 Jetpack Annotations 라이브러리를 Android 지원 저장소에서 패키징합니다. Android 스튜디오는 코드를 검사하는 동안 구성된 주석의 유효성을 검사합니다.

Android 주석에 관한 자세한 내용은 주석으로 코드 검사 개선을 참고하세요.

로그 메시지

Android 스튜디오로 앱을 빌드 및 실행할 때 Logcat에서 adb 출력 및 기기 로그 메시지를 볼 수 있습니다.

개발자 계정에 로그인

Android 스튜디오에서 개발자 계정에 로그인하여 Firebase와 같이 인증이 필요한 추가 도구에 액세스합니다. 로그인하면 이러한 도구에 다양한 Google 서비스에서 내 데이터를 보고 관리할 권한을 부여하게 됩니다.

Android 스튜디오에서 프로젝트를 연 후에 다음과 같은 방법으로 개발자 계정에 로그인하거나 개발자 계정을 전환할 수 있습니다.

  1. 그림 8과 같이 툴바 끝에 있는 프로필 아이콘 을 클릭합니다.

    그림 8. 프로필 아이콘을 사용하여 로그인합니다.

  2. 창이 열리면 다음 단계 중 하나를 따릅니다.

    • 아직 로그인하지 않았다면 Sign In을 클릭하여 표시된 서비스에 Android 스튜디오가 액세스할 수 있도록 허용합니다.
    • 이미 로그인했다면 Add Account를 클릭하여 다른 Google 계정으로 로그인합니다.

      또는 Sign Out을 클릭한 후 이전 단계를 반복하여 다른 계정에 로그인할 수 있습니다.