안드로이드 스튜디오는 안드로이드앱 개발을 위한 IntelliJ IDEA 을 기반으로 하는 통합 개발환경이다. IntelliJ의 강력한 에디터와 개발 툴 상에 안드로이드 스튜디오는 안드로이드 앱을 생성할 때 더욱 생산성을 향상시켜주는 특성들을 제공한다. 다음과 같은:
- 유연한 Gradle 기반의 빌드 시스템
- 빠르고 기능이 풍부한 에뮬레이터
- 모든 안드로이드 장치들을 개발할 수 있는 통합 환경
- 새로운 APK를 빌드하지 않고 실행하는 앱에 변경사항을 밀어 넣는 즉각적인 실행
- 공통 앱 기능들을 빌드하고 샘플 코드를 불러오는데 도움을 주는 코드 템플릿과 GitHub 통합
- Code templates and GitHub integration to help you build common app features and import sample code
- 광범위한 테스팅 툴과 프레임워크
- 퍼포먼스, 사용성, 버전 호환성 과 다른 문제점들을 잡기 위한 Lint 툴들
- C++과 NDK 지원
- Google Cloud Messaging과 App Engine 통합을 쉽게 하기 위한 Google Cloud Platform 내장 지원
이 페이지는 기본적인 안드로이드 스튜디오 특성에 대한 소개를 제공한다. 최근 변경사항의 요약은 Android Studio Release Notes 을 봐주세요.
Project Structure

Figure 1. The project files in Android view.
안드로이드 스튜디오의 각 프로젝트들은 소스 코드 파일들과 리소스 파일들과 함께 하나 이상의 모듈들을포함한다. 모듈의 타입은 다음과 같다:
- 안드로이드 앱 모듈
- 라이브러리 모듈
- 구글 앱 엔진 모듈
- Google App Engine modules
기본으로 안드로이드 스튜디오는 그림1과 같이 안드로이드 프로젝트뷰에 프로젝트 파일들을보여준다. 이 뷰는 프로젝트의 주요 소스 파일들에 빠른 접근을 제공하는 모듈들로 구성된다.
모든 빌드 파일들은 Gradle Scripts 하위에 탑 레벨에 보여지고 각 앱 모듈들은 다음 폴더들을 포함한다
- manifests: AndroidManifest.xml 파일을 포함한다.
- java: JUnit test 코드를 포함한 자바 소스 코드 파일들을 포함한다.
- res: XML 레이아웃, UI 스트링, 그리고 비트맵 이미지들과 같은 소스 코드가 아닌 리소스들을 포함한다.
디스크 상의 안드로이드 프로젝트의 구조는 이 평평해진 표현과는 틀리다. 프로젝트의 실제 파일 구조를 보려면 Project 드롭다운에서 Project를 선택해라(그림1에서는 Android로 보여주고 있다).
또한 프로젝트 뷰를 당신의 앱 개발의 특정 측면에 맞춰서 커스터마이징 할 수 있다. 예를 들어, 프로젝트의 Problems 뷰를 선택하면 레이아웃 파일에서 태그를 닫는 XML 요소를 빼먹는 것과 같이 코딩과 문법에러를 포함하고 있는 소스 파일로의 링크를 보여주도록하는것이다.

Figure 2. The project files in Problems view, showing a layout file with a problem.
For more information, see Managing Projects.
The User Interface
The Android Studio main window is made up of several logical areas identified in figure 3.

Figure 3. The Android Studio main window.
- 툴바는 넓은 영역의 액션을 수행하게 해준다. 앱을 실행시키는 것과 안드로이드 툴을 실행하는 것을 포함해서
- 네비게이션 바는 당신의 소스 수정을 위해 당신의 프로젝트를 탐색하고 파일을 오픈하는 것을 돕는다. 그리고 프로젝트 툴 윈도우에서 보여주는 더욱 간략한 구조 뷰를 제공한다.
- 에디터 윈도우는 코드를 생성하고 변경하는 곳이다. 현재 파일타입에 따라 윈도우는 변할 수 있다. 예를 들어, 레이아웃파일을 볼때, 에디터 윈도우는 레이아웃 에디터를 보여주고 대응하는 XML 파일을 보여주는 옵션을 제공한다.
- 툴 윈도우는 프로젝트 관리, 검색, 버전 컨트롤 그리고 그외에 대한 특정 업무에 대한 접근을 제공한다. 사용자는 툴 윈도우를 펼치고 닫을 수 있다.
- 상태바는 경고 및 메시지뿐만 아니라 프로젝트와 IDE 자체의 상태를 보여준다.
툴바와 툴 운도우를 숨기거나 옮겨서 더 많은 스크린 공간을 주기 위해 메인 윈도우를 구성할 수 있다. 또한 대부분의 IDE 기능에 액세스 할 수 있도록 키보드 단축키를 사용하 ㄹ수 있다.
언제든, 쉬프트키를 두번 누르거나 안드로이드 스튜디오 윈도우의 오른쪽 상단코너에 있는 돋보기를 클릭하여 당신의 소스 코드, 데이터 베이스, 액션, UI의 요소 등등을 가로질러 검색할 수 있다. 이는 상당히 유용할 수 있는데, 예를 들어 어떻게 작동시키는지 까먹은 특정 IDE 액션의 위치를 찾고자 할때이다.
Tool Windows
perspective를 제공하는 대신에, 안드로이드 스튜디오는 당신의 문맥을 따르고 자동적으로 당신이 일하는 것에 따라 관련 툴 윈도우를 불러온다. 기본으로, 대부분 공통적으로 사용되는 툴 윈도우는 애플리케이션 윈도우의 가장자리에 있는 툴 윈도우 바에 고정되어 있다.
- 툴 윈도우를 확장하고 닫기 위해서 툴 윈도우 바에 있는 툴 이름을 클릭한다. 또한 툴윈도우를 드래그하고, 고정, 고정해제, 붙이고 떼고 할 수 있다.
- 현재기본 툴윈도우 레이아웃으로 돌아가기 위해 Window > Restore Default Layout 를 클릭하거나 Window > Store Current Layout as Default 를 클릭해서 디폴트 레이아웃을 커스터마이징 하세요.
- 전체 툴 윈도우 바를 보이거나 숨기기 위해 안드로이드 스튜디오 윈도우의 왼쪽 하단에 있는 윈도우 아이콘
을 클릭합니다.
- 특정 툴 윈도우를 위치시키기 위해 윈도우 아이콘 위에 마우스 커서를 두고 메뉴에서 툴 윈도우를 선택합니다.
툴 윈도우를 열기 위해 키보드 단축키를 사용할 수 있습니다. 표1에는 대부분의 일반 윈도우를 위한 단축키를 열거합니다.
Table 1. Keyboard shortcuts for some useful tool windows.
Tool Window | Windows and Linux | Mac |
---|---|---|
Project | Alt+1 | Command+1 |
Version Control | Alt+9 | Command+9 |
Run | Shift+F10 | Control+R |
Debug | Shift+F9 | Control+D |
Android Monitor | Alt+6 | Command+6 |
Return to Editor | Esc | Esc |
Hide All Tool Windows | Control+Shift+F12 | Command+Shift+F12 |
만약 모든 툴바, 툴 윈도우 그리고 엗터 탭을 숨기고 싶다면 View > Enter Distraction Free Mode 를 클릭하세요. 이는 Distraction Free Mode 를 가능케 합니다. Distraction Free Mode를 빠져나갈려면 View > Exit Distraction Free Mode 를 클릭합니다.
윈도우 스튜디오에서 대부분의 툴 윈도우 내에서 서치와 필터에 대한 Speed Search 를 사용할 수 있습니다. Speed Search를 사용하려면 툴 윈도우를 선택하고 당신의 search query 를 타이핑합니다.
You can use Speed Search to search and filter within most tool windows in Android Studio. To use Speed Search, select the tool window and then type your search query.
Code Completion
안드로이드 스튜디오는 세가지 코드 자동완성 타입이 있습니다. 이는 키보드 단축키를사용하여 접근 가능합니다.
Table 2. Keyboard shortcuts for code completion.
Type | Description | Windows and Linux | Mac |
---|---|---|---|
Basic Completion | Displays basic suggestions for variables, types, methods, expressions, and so on. If you call basic completion twice in a row, you see more results, including private members and non-imported static members. | Control+Space | Control+Space |
Smart Completion | Displays relevant options based on the context. Smart completion is aware of the expected type and data flows. If you call Smart Completion twice in a row, you see more results, including chains. | Control+Shift+Space | Control+Shift+Space |
Statement Completion | Completes the current statement for you, adding missing parentheses, brackets, braces, formatting, etc. | Control+Shift+Enter | Shift+Command+Enter |
또한 빠른 수정을 수행하고 Alt+Enter 을 눌러서 intention action들을 보이게 할 수 있습니다.
자동 완성에 대한 더 많은 정보는 Code Completion 참고하세요.
Navigation
안드로이드 스튜디오 주변을 이동하는데 도움이되는 팁이 있습니다.
- Recent Files 액션을 이용하여 최근에 접근한 파일들 사이를 스위칭하세요.
최근 파일들 액션을 불러오기 위해서 Control+E (Command+E on a Mac) 를 누릅니다. 기본으로 최근 접근 파일이 선택되어 있습니다. 또한 이 액션의 왼쪽 컬럼을 통해 어느 툴윈도우든 접근할 수 있습니다. - File Structure 액션을 이용해서 현재 파일의 구조를 봅니다. File Structure 액션을 불러오기 위해 Control+F12 (Command+F12 on a Mac)을 누룹니다. 이 액션을 사용해서 현재 파일의 어느 부분으로든 빠르게 탐색할 수 있습니다.
- Navigate to Class 액션을 이용해 당신 프로젝트 내에서 특정 클래스를 검색하고 탐색하세요. Control+N(Command+O on a Mac)을 눌러서 액션을 불러옵니다. Navigate to Class supports sophisticated expressions, including camel humps, paths, line navigate to, middle name matching, and many more. 만약 연속해서 두번 호출하면, 프로젝트 외부에서의 결과를 보여준다.
- Navigate to File 액션을 이용해 파일이나 폴더를 탐색해라. Navigate to File 애션은 Control+Shift+N (Command+Shift+O on a Mac)를 눌러서 불러온다. 파일 대신 폴더를 찾기 위해 당신의 표현 끝에 / 를 더해라.
- Navigate to Symbol 액션을 이용해서 이름으로 멤버나 필드를 탐색합니다. Control+Shift+Alt+N(Command+Shift+Alt+O on a Mac) 를 눌러서 Navigate to Symbol을 불러옵니다.
- Alt+F7 을 눌러서 현재 커서 위치에서 클래스 메소드, 필드, 파라미터 또는 문장에 대한 코드 참조를 찾습니다.
Style and Formatting
편집을 하면서, 안드로이드 스튜디오는 자동으로 당신의 코드 스타일 셋팅에 지정된데로 포매팅과 스타일을 적용합니다. 프로그래밍 언어별로 코드 스타일 셋팅을 커스터마이징 할수 있으며 이는 탭, 들여쓰기, 공백, wrapping 그리고 괄호, 빈 줄에 대한 규칙을 지정하는 것을 포함합니다. 당신의 코드 스타일 셋팅을 커스터마이징 하기 위해 File > Settings > Editor > Code Style (Android Studio > Preferences > Editor > Code Style on a Mac.)을 클릭합니다.
당신이 작업할 때 IDE가 포맷팅을 자동적으로 적용함에도, Control+Alt+L(Opt+Command+L on a Mac) 을 눌러서 명시적으로 Reformat Code 액션을 호출할 수 있습니다. 또는 Control+Alt+I (Alt+Option+I on a Mac). 를 눌러서 모든 라인에 auto-indent를 수행할 수 있습니다.

Figure 4. Code before formatting.

Figure 5. Code after formatting.
Version Control Basics
안드로이드 스튜디오는 다양한 버전 컨트롤 시스템(VCS's)을 지원한다. 여기는 Git, GitHub, CVS, Mercurial, Subversion 그리고 Google Cloud Source Repositories가 포함된다.
안드로이스 스튜디오에 앱을 임포팅한 이후에 희망하는 버전 컨트롤 시스템을 위한 VCS 지원을 가능하게 하기 위해 안드로이드 스튜디오 VCS 메뉴 옵션을 사용한다. repository를 생성하고 새로운 파일들을 버전 컨트롤에 임포트하고 그외 버전 컨트롤 작업을 수행한다:
안드로이스 스튜디오에 앱을 임포팅한 이후에 희망하는 버전 컨트롤 시스템을 위한 VCS 지원을 가능하게 하기 위해 안드로이드 스튜디오 VCS 메뉴 옵션을 사용한다. repository를 생성하고 새로운 파일들을 버전 컨트롤에 임포트하고 그외 버전 컨트롤 작업을 수행한다:
- 안드로이드 VCS 메뉴로부터 Enable Version Control Integration을 클릭한다.
- 드롭다운 메뉴로부터 project root와 연관된 버전 컨트롤 시스템을 선택하고 OK를 클릭한다.
이제 VCS 메뉴는 당신이 선택한 시스템에 기반한 많은 버전 컨트롤 옵션을 보여준다.
Note: File > Settings > Version Control 메뉴를 선택해서 버전 컨트롤 셋팅을 셋업하고 변경할 수 있다.
Gradle Build System
안드로이드 스튜디오는 빌드 시스템 토대로 Gradle을 사용한다. 이는 Android Plugin for Gradle
이 제공하는 안드로이드만의 기능을 가지고 있다. 이 빌드 시스템은 안드로이드 스튜디오 메뉴에서 통합된 툴로써 실행되고 명령 라인에서는 독립적으로 실행된다. 당신은 다음의 빌드 시스템 특성을 사용할 수 있다 :
이 제공하는 안드로이드만의 기능을 가지고 있다. 이 빌드 시스템은 안드로이드 스튜디오 메뉴에서 통합된 툴로써 실행되고 명령 라인에서는 독립적으로 실행된다. 당신은 다음의 빌드 시스템 특성을 사용할 수 있다 :
- 빌드 프로세스를 커스터마이즈하고 설정하고 확장한다.
- 동일한 프로젝트와 모듈을 사용하는 다른 특성들을 가진 다양한 APK들을 생성한다.
- 소스셋을 전체에 걸쳐 코드와 리소스를 재사용한다.
Gradle의 유연성을 채용하여 앱 코어 소스 파일들을 변경하지 않고 이 모든 것을 달성할 수 있다. 안드로이스 스튜디오 빌드 파일들은 build.gradle로 이름붙여져 있다. 파일들은 안드로이드 Gradle 플러그인에 의해 제공되는 요소들로 빌드를 설정하는 Groovy문법을 사용하는 평범한 텍스트 파일이다. 각 프로젝트는 최상위 레벨에 전체 프로젝트를 위한 하나의 빌드 파일을 가지고 있고 각 모듈별로 모듈레벨 빌드 파일들로 구분된다. 존재하는 프로젝트를 임포트하면 안드로이드 스튜디오는 자동으로 필요한 빌드 파일들을 생성한다.
빌드 시스템과 설정하는 방법에 대해 더 알고 싶으면 Configure Your Build를 참고해라.
빌드 시스템과 설정하는 방법에 대해 더 알고 싶으면 Configure Your Build를 참고해라.
Build Variants
빌드 시스템은 하나의 프로젝트로부터 동일한 애플리케이션의 다양한 버전을 생성하는데 도움을 줄 수 있다. 당신이 앱의 무료버전과 유료버전을 동시에 가지고 싶거나 구글 플레이에 있는 다양한 환경을 위한 다수의 APK들을 배포하고자 할 때 유용하다.
build variants를 설정하는 더 많은 정보는 Configuring Gradle Builds를 참고해라.
build variants를 설정하는 더 많은 정보는 Configuring Gradle Builds를 참고해라.
APK Splits
APK splits는 screen density 나 ABI에 기반한 다수의 APK들을 효율적으로 생성하게 해준다. 예를 들어 APK splits는 앱을 분리된 hdpi와 mdpi 버전으로 생성하면서 여전히 그들을 하나의 variant로 간주하고 그들이 test app, javc, dx 그리고 ProGuard 셋팅들을 공유할 수 있게 해준다.
APK Splits에 대한 더 많은 정보는 APK Splits 를 참고해라.
Resource Shrinking
안드로이드 스튜디오에서 Resource shrinking은 당신의 패키징된 앱과 라이브러리 의존성으로부터 사용되지 않는 리소스들을 자동으로 제거한다. 예를 들어 당신 앱이 구글 드라이브 기능에 접근하기 위해 Google Play services를 사용하고 현재 당신이 Google Sign-In을 사용하고 있지 않다면 Resource shrinking은 SignInButton 버튼을 위한 다양한 drawable assets을 제거할 것이다.
Note: Resource shrinking 은 ProGuard와 같은 code shrinking tool과 조합하여 동작한다.
코드와 리소스를 줄이기 위한 더 많은 정보는 Shrink Your Code and Resources를 보아라.
Managing Dependencies
프로젝트를 위한 의존성은
build.gradle
파일에 있는 이름으로 명세된다. Gradle은 주의를 기울여 당신 의존성을 찾아내고 당신의 빌드에서 사용가능하게 한다. 당신은 build.gradle파일에 모듈 의존성, remote binary dependencies, 그리고 ㅣlocal binary dependencies 를 선언할 수 있다. 안드로이드 스튜디오는 프로젝트가 Maven Central Repository를 디폴트로 사용하도록 설정한다.(이 설정은 프로젝트를 위한 최상위 빌드 파일에 포함된다.) 의존성 설정에 대한 더 많은 정보는 Configure Build Variants를 읽어라.Debug and Profile Tools
안드로이드 스튜디오는 당신이 디버깅하고 코드의 성능을 개선하는 것을 보조한다. 여기는 인라인 디버깅과 퍼포먼스 분석 툴이 포함된다.
Inline debugging
refences, expressions, 그리고 변수 값의 inline verification을 가진 디버깅 뷰에서 당신 코드의 자세한 설명을 개선하기 위해 인라인 디버깅을 사용해라. 인라인 디버깅 정보는 다음을 포함한다:
- Inline variable values
- Referring objects that reference a selected object
- Method return values
- Lambda and operator expressions
- Tooltip values

Figure 6. An inline variable value.
인라인 디버깅을 활성화시기기 위해 Debug window 에서 Settings
을 클릭하고 Show Values Inline을 위한 체크박스를 선택한다.

Performance monitors
안드로이드 스튜디오는 쉽게 당신 앱의 메모리와 CPU 사용량을 추적하고 deallocated object를 찾고 메모리 릭을 찾고 그래픽 성능을 최적화하고 네트웍 요구사항을 분석할 수 있도록 퍼포먼스 모니터를 제공한다. 디바이스와 에뮬레이터 상에서 앱을 실행시키고 Android Monitortool 을 열어서 Monitors 탭을 클릭한다.
퍼포먼스 모니터의 더 많은 설명은 Android Monitor를 보아라.
퍼포먼스 모니터의 더 많은 설명은 Android Monitor를 보아라.
Heap dump
당신이 안드로이드 스튜디오에서 메모리 사용을 모니터링 할 때 동시에 가비지 컬렉션을 시작시키고 Android-specific HPROF bianry format 파일로 heap snapshot에 대한 자바 힙 덤프를 할 수 있다. HPROF 뷰어는 메모리 사용을 추적하고 메모리 릭을 찾는 것을 돕기 위해 클래스, 각 클래스의 인스턴스 그리고 참조 트리를 보여준다.
힙 덤프를 가지고 하는 작업에 대한 더 많은 정보는 Dumping and Analyzing the Java Heap을 보아라.
힙 덤프를 가지고 하는 작업에 대한 더 많은 정보는 Dumping and Analyzing the Java Heap을 보아라.
Allocation tracker
안드로이드 스튜디오는 메모리 사용을 모니터하면서 메모리 할당을 추적할 수 있게 해준다. 메모리 할당 추적은 특정 액션을 수행할 때 어디에 메모리가 할당되는지 모니터할 수 있게 해준다 이러한 할당을 아는 것은 이들 액션과 관련된 메소드 호출을 조절함으로써 당신 앱 성능과 메모리를 최적화할 수 있게 한다.
할당의 추적과 분석에 대한 정보는 Allocation Tracker를 보아라.
할당의 추적과 분석에 대한 정보는 Allocation Tracker를 보아라.
Data file access
Systrace, logcat, 그리고 Traceview와 같은 안드로이드 SDK 툴은 자세한 앱 분석을 위한 퍼포먼스와 디버깅 데이터를 생성한다.
사용가능한 생성 데이터 파일을 보기 위해 Captures tool 윈도우를 연다. 생성된 파일 리스트에서 데이터를 보기 위해 더블 클릭한다.
사용가능한 생성 데이터 파일을 보기 위해 Captures tool 윈도우를 연다. 생성된 파일 리스트에서 데이터를 보기 위해 더블 클릭한다.
.hprof
파일에서 오른 버튼을 클릭해서 표준 .hprof
파일 포맷으로 변경할 수 있다.Code inspections
프로그램을 컴파일할 때마다, 안드로이드 스튜디오는 당신이 쉽게 코드의 구조적인 질과 함께 문제를 인식하고 수정할 수 있도록 자동으로 설정된 Lint 과 다른 IDE inspections를 실행한다.
Lint 툴은 잠재적인 버그와 correctness, security, performance, usability, accessibility, 그리고 internationalization을 위한 최적화 개선을 위해 안드로이드 프로젝트 소스 파일을 체크한다.
Lint 툴은 잠재적인 버그와 correctness, security, performance, usability, accessibility, 그리고 internationalization을 위한 최적화 개선을 위해 안드로이드 프로젝트 소스 파일을 체크한다.

Figure 7. The results of a Lint inspection in Android Studio.
Lint 체크와 더불어, 안드로이드 스튜디오는 IntelliJ 코드 검사를 수행하고 당신의 coding workflow 간소화하기 위한 annotation을 검증한다.
더 자세한 정보는 Improving Your Code with Lint와 lint tool 을 보아라.
더 자세한 정보는 Improving Your Code with Lint와 lint tool 을 보아라.
Annotations in Android Studio
안드로이드 스튜디오는 버그, null pointer exception 그리고 리소스 타입 충돌 등의 수정을 도와주는 변수, 파라미터 그리고 결과값을 위한 annotation을 포함한다. Android SDK Manager는 안드로이드 스튜디오에서 사용할 수 있도록 Android Support Repository에 Support-Annotation library를 패키징하고 있다. 안드로이드 스튜디오는 코드를 점검하는 동안 설정된 annotation의 유효성을 검증한다.
Android annotation에 대한 더 자세한 사항은 Improving Code Inspection with Annotations 을 보아라.
Android annotation에 대한 더 자세한 사항은 Improving Code Inspection with Annotations 을 보아라.
Log messages
안드로이드 스튜디오에서 앱을 실행할 때 adb 출력과 윈도우 하단에 있는 Android Monitor를 클릭하여 디바이스 로그메시지(logcat) 를 볼 수 있다.
만약 Android Device Monitor 에서 앱을디버깅하기 원한다면 Tools > Android > Android Device Monitor 를 클릭하여 Device Monitor를 띄울 수 있다. Device Monitor 에서 당신 앱을 프로파일링하고 device behavior를 제어하는 등의 작업을 하기 위한 DDMS툴 셋을 찾을 수 있다. 또한 레이아웃을 최적화하는데 도움을 주는 Hierarchy Viewer tool을 포함한다.
만약 Android Device Monitor 에서 앱을디버깅하기 원한다면 Tools > Android > Android Device Monitor 를 클릭하여 Device Monitor를 띄울 수 있다. Device Monitor 에서 당신 앱을 프로파일링하고 device behavior를 제어하는 등의 작업을 하기 위한 DDMS툴 셋을 찾을 수 있다. 또한 레이아웃을 최적화하는데 도움을 주는 Hierarchy Viewer tool을 포함한다.
댓글 없음:
댓글 쓰기