Android Studio 만나보기

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

  • 유연한 Gradle 기반 빌드 시스템
  • 빠르고 기능이 풍부한 에뮬레이터
  • 모든 Android 기기를 개발할 수 있는 통합 환경
  • 새로운 APK를 빌드하지 않고도 실행 중인 앱에 변경 사항을 푸시하는 Instant Run
  • 일반적인 앱 기능을 빌드하고 샘플 코드를 가져오는 데 도움이 되는 코드 템플릿과 GitHub 통합
  • 광범위한 테스트 도구 및 프레임워크
  • 성능, 유용성, 버전 호환성 및 기타 문제를 파악하는 Lint 도구
  • 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 테스트 코드를 비롯한 자바 소스 코드 파일을 포함합니다.
  • res: 코드가 아닌 모든 리소스를 포함합니다(XML 레이아웃, UI 문자열 및 비트맵 이미지 등).

디스크의 Android 프로젝트 구조는 이 축약 표현과 다릅니다. 프로젝트의 실제 파일 구조를 보려면, Project 드롭다운에서 Project를 선택합니다(그림 1에서는 Android로 표시).

프로젝트 파일의 뷰가 앱 개발의 특정 측면에 중점을 두도록 개발자가 지정할 수도 있습니다. 예를 들어, 프로젝트의 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 Mac
프로젝트 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가 활성화됩니다. Distraction Free Mode를 종료하려면 View > Exit Distraction Free Mode를 클릭합니다.

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

추가 도움말은 단축키를 참조하세요.

코드 작성

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

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

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

Alt+Enter를 눌러 신속하게 수정하고 원하는 작업을 표시할 수도 있습니다.

샘플 코드 찾기

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

다음은 Android 스튜디오를 탐색하는 데 필요한 몇 가지 유용한 정보입니다.

  • 최근에 액세스한 파일 간에 전환하려면 Recent Files 작업을 사용합니다. Control+E(Mac은 Command+E)를 눌러 Recent Files 작업을 불러옵니다. 기본적으로 마지막 액세스한 파일이 선택됩니다. 이 작업에서 왼쪽 열을 통해 모든 도구 창에 액세스할 수도 있습니다.
  • 현재 파일의 구조를 보려면 File Structure 작업을 사용합니다. Control+F12(Mac은 Command+F12)를 눌러 File Structure 작업을 불러옵니다. 이 작업을 사용하면 현재 파일의 모든 부분을 신속하게 탐색할 수 있습니다.
  • 프로젝트에서 특정 클래스를 검색하고 탐색하려면 Navigate to Class 작업을 사용합니다. Control+N(Mac은 Command+O)을 눌러 이 작업을 불러옵니다. Navigate to Class는 캐멀 험프, 경로, 라인 탐색, 중간 이름 일치 등을 비롯한 고급 식을 지원합니다. 이 작업을 한 행에서 두 번 호출하는 경우, 프로젝트 클래스의 결과를 표시합니다.
  • 파일이나 폴더를 탐색하려면 Navigate to File 작업을 사용합니다. Control+Shift+N(Mac은 Command+Shift+O)을 눌러 Navigate to File 작업을 불러옵니다. 파일이 아니라 폴더를 검색하려면 식 끝에 /를 추가합니다.
  • 이름별로 메서드나 필드를 탐색하려면 Navigate to Symbol 작업을 사용합니다. Control+Shift+Alt+N(Mac은 Command+Shift+Alt+O)을 눌러 Navigate to Symbol 작업을 불러옵니다.
  • 현재 커서 위치에서 클래스, 메서드, 필드, 매개변수 또는 식을 참조하는 모든 코드 조각을 찾으려면 Alt+F7(Mac은 Option+F7)을 누릅니다.

스타일 및 형식

편집 중에 Android 스튜디오는 코드 스타일 설정에 지정된 대로 서식과 스타일을 자동으로 적용합니다. 프로그래밍 언어로 코드 스타일 설정을 맞춤설정할 수 있으며, 여기에는 탭과 들여쓰기, 공백, 줄바꿈 및 괄호, 빈 줄의 규칙을 지정하는 것이 포함됩니다. 코드 스타일을 맞춤설정하려면 File > Settings > Editor > Code Style(Mac은 Android Studio > Preferences > Editor > Code Style)을 클릭합니다.

IDE는 작업 중에 서식을 자동으로 적용하지만, Control+Alt+L(Mac은 Opt+Command+L)을 눌러 Reformat Code 작업을 명시적으로 호출하거나 Control+Alt+I(Mac은 Alt+Option+I)를 눌러 모든 줄에 자동 들여쓰기를 적용할 수 있습니다.

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

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

버전 제어 기본 정보

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

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

  1. Android 스튜디오의 VCS 메뉴에서 Enable Version Control Integration을 클릭합니다.
  2. 드롭다운 메뉴에서 프로젝트 루트에 연결할 버전 제어 시스템을 선택한 다음 OK를 클릭합니다.

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

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

Gradle 빌드 시스템

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

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

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

빌드 시스템과 구성 방법에 대해 자세히 알아보려면 빌드 구성을 참조하세요.

빌드 변형

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

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

다중 APK 지원

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

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

리소스 축소

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

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

코드 및 리소스 축소에 관한 자세한 내용은 코드 및 리소스 축소를 참조하세요.

종속성 관리

프로젝트의 종속성은 build.gradle 파일에 이름으로 지정됩니다. Gradle은 종속성을 찾고 빌드에서 사용할 수 있게 만듭니다. 모듈 종속성, 원격 바이너리 종속성 및 로컬 바이너리 종속성을 build.gradle 파일에서 선언할 수 있습니다. 기본적으로 Android 스튜디오는 Maven Central Repository를 사용하도록 프로젝트를 구성합니다. (이 구성은 프로젝트의 최상위 빌드 파일에 포함됩니다.) 종속성 구성에 관한 자세한 내용은 빌드 종속성 추가를 참조하세요.

디버그 및 프로필 도구

Android 스튜디오는 코드를 디버깅하고 코드 성능을 개선하도록 도와주며 여기에는 인라인 디버깅 및 성능 분석 도구가 포함됩니다.

인라인 디버깅

참조, 식 및 변수 값의 인라인 확인 기능이 있는 디버거 뷰에서 인라인 디버깅을 사용하여 코드 검토 능률을 높입니다. 인라인 디버그 정보에는 다음과 같은 항목이 포함됩니다.

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

그림 6. 인라인 변수 값

인라인 디버깅을 활성화하려면 Debug 창에서 Settings 를 클릭하고 Show Values Inline의 체크박스를 선택합니다.

성능 프로파일러

Android 스튜디오는 성능 모니터를 제공하며 이를 통해 앱의 메모리 및 CPU 사용량을 보다 쉽게 추적하고, 할당 해제된 객체를 확인하고, 메모리 누수를 찾아내고, 그래픽 성능을 최적화하고, 네트워크 요청을 분석할 수 있습니다. 앱이 기기 또는 에뮬레이터에서 실행 중일 때 Android Profiler 탭을 엽니다.

성능 프로파일러에 관한 자세한 내용은 성능 프로파일링 도구를 참조하세요.

힙 덤프

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

힙 덤프에 관한 자세한 내용은 힙 및 할당 검사를 참조하세요.

메모리 프로파일러

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

할당의 추적 및 분석에 관한 자세한 내용은 힙 및 할당 검사를 참조하세요.

데이터 파일 액세스

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

사용 가능한 생성된 데이터 파일을 보려면, Captures 도구 창을 엽니다. 생성된 파일 목록에서 파일을 두 번 클릭하여 데이터를 봅니다. 임의의 .hprof 파일을 마우스 오른쪽 버튼으로 클릭하여 표준 RAM 사용량 조사 파일 형식으로 변환합니다.

코드 검사

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

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

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

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

자세한 내용은 Lint 확인으로 코드 개선을 참조하세요.

Android 스튜디오의 주석

Android 스튜디오는 변수, 매개변수 및 반환 값에 관한 주석을 지원하므로, 개발자는 null 포인터 예외 및 리소스 유형 충돌 등의 버그를 잡아낼 수 있습니다. Android SDK Manager는 Android 스튜디오에서 사용할 수 있도록 Support-Annotations 라이브러리를 Android 지원 저장소에서 패키징합니다. Android 스튜디오는 코드를 검사하는 동안 구성된 주석의 유효성을 검사합니다.

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

로그 메시지

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

성능 프로파일링

앱의 CPU, 메모리 및 네트워크 성능을 프로파일링하려면 View > Tool Windows > Android Profiler를 클릭하여 Android Profiler를 엽니다.