안드로이드 스튜디오
안드로이드 스튜디오(Android Studio)는 안드로이드 및 안드로이드 전용 앱 제작을 위한 공식 통합개발환경(IDE)이다.
개요
안드로이드 스튜디오(Android Studio)는 구글이 안드로이드 앱 개발을 위해 젯브레인스사의 인텔리제이 아이디어(IntelliJ IDEA)를 기반으로 만든 통합개발환경으로, 2014년 10월부터 이클립스를 대체해 안드로이드의 공식 통합개발환경이 되면서 무료로 제공되고 있으며, 윈도우즈, 맥 OS X, 리눅스를 지원한다. 안드로이드의 공식 프로그래밍 언어로 채택된 코틀린(Kotlin)도 사용 가능하다. 안드로이드 스튜디오는 빌드 자동화, 종속성 관리 및 맞춤형 빌드 구성을 제공한다. 로컬 라이브러리와 호스팅된 라이브러리를 포함하도록 프로젝트를 구성하고 다양한 코드와 리소스를 포함하는 빌드 변형을 정의하며 여러 코드 축소 및 앱 서명 구성을 적용할 수 있다.[1]
특징
안드로이드 스튜디오는 안드로이드 애플리케이션 개발을 위한 공식적인 통합개발환경이다. 소프트웨어 자바 통합개발환경인 인텔리제이 아이디어를 기반으로 하며 코드 편집 및 개발 도구를 통합한다. 안드로이드 운영체제 내에서 애플리케이션 개발을 지원하기 위해 안드로이드 스튜디오는 그레이들(Gradle) 기반 빌드 시스템, 에뮬레이터, 코드 템플릿 및 깃허브를 통합하여 사용한다. 안드로이드 스튜디오의 모든 프로젝트에는 소스 코드와 리소스 파일이 포함된 모듈이 하나 이상 있다. 이러한 양식은 안드로이드 앱 모듈, 라이브러리 모듈 및 구글 앱 엔진 모듈을 포함한다. 안드로이드 스튜디오는 인스턴트 푸시(Instant Push) 기능을 사용하여 실행 중인 응용 프로그램에 코드 및 리소스 변경 사항을 푸시한다. 코드 편집기는 코드를 작성하고 코드 완료, 분석을 지원한다. 안드로이드 스튜디오로 구축된 애플리케이션은 구글 플레이 스토어에 제출하기 위해 APK 형식으로 컴파일된다. 이 소프트웨어는 2013년 5월 구글 I/O에서 처음 발표됐고, 2014년 12월 안정적인 빌드 버전이 출시되었다. 안드로이드 스튜디오는 맥, 윈도우즈 및 리눅스 데스크톱 플랫폼에서 사용할 수 있다. 안드로이드 애플리케이션 개발을 위한 기본 통합개발환경으로 이클립스 안드로이드 개발 툴을 대체했다. 안드로이드 스튜디오 및 소프트웨어 개발 키트는 구글에서 직접 다운로드할 수 있다.[1]
구조
안드로이드 스튜디오의 각 프로젝트에는 소스 코드 파일 및 리소스 파일과 함께 모듈이 하나 이상 포함된다. 모듈의 유형은 다음과 같다.
- 안드로이드 앱 모듈
- 라이브러리 모듈
- 구글 앱 엔진 모듈
안드로이드 스튜디오는 기본적으로 안드로이드 프로젝트 뷰에 프로젝트 파일을 표시한다. 프로젝트의 주요 소스 파일에 신속하게 액세스할 수 있도록 이 뷰는 모듈별로 구성된다. 모든 빌드 파일은 그레이들 스크립트의 최상단에 표시되며 각 앱 모듈에는 다음 폴더가 포함된다.
- manifests: AndroidManifest.xml 파일을 포함한다.
- java: JUnit 테스트 코드를 비롯한 자바 소스 코드 파일을 포함한다.
- res: 코드가 아닌 모든 리소스를 포함한다(XML 레이아웃, UI 문자열, 비트맵 이미지 등)
디스크의 안드로이드 프로젝트 구조는 이 축약 표현과 다르다. 프로젝트의 실제 파일 구조를 보려면, Project 드롭다운에서 Project를 선택한다. 프로젝트 파일의 뷰가 앱 개발의 특정 측면에 중점을 두도록 개발자가 맞춤설정할 수도 있다. 예를 들어, 프로젝트의 Problems 뷰를 선택하면 레이아웃 파일에서 인식된 코딩 및 구문 오류(예: XML 요소 닫기 태그의 누락)가 있는 소스 파일에 관한 링크가 표시된다.[1]
기능
안드로이드 스튜디오는 유연한 그레이들 기반 빌드 시스템과 빠르고 기능이 풍부한 에뮬레이터로 구성이 되어 있다. 그리고, 모든 안드로이드 기기를 개발할 수 있는 통합 환경을 제공하며, 변경사항을 적용하여 앱을 다시 시작하지 않고 실행 중인 앱에 코드 및 리소스 변경사항을 푸시할 수 있다. 일반적인 앱 기능을 빌드하고 샘플 코드를 가져오는 데에 도움이 되는 코드 템플릿을 제공하고 깃허브 통합을 지원한다. 또한, 광범위한 테스트 도구 및 프레임워크와 성능, 유용성, 버전 호환성 및 기타 문제를 파악하는 린트 도구, C++ 및 NDK를 지원하고, 구글 클라우드 메시징과 앱 엔진의 통합을 도와주는 구글 클라우드 플랫폼을 기본적으로 지원한다.[1]
사용자 인터페이스
- 툴바
- 앱을 실행하거나 안드로이드 도구를 시작하는 등 다양한 작업을 처리할 수 있다.
- 탐색 메뉴
- 프로젝트를 탐색하고 수정할 파일을 열 수 있다. 탐색 메뉴는 프로젝트 창에 나타나는 구조를 좀 더 간략하게 표시한다.
- 편집기 창
- 코드를 작성하고 수정할 수 있다. 현재의 파일 형식에 따라 편집기가 바뀔 수 있다. 예를 들어, 레이아웃 파일을 볼 때 편집기는 레이아웃 에디터를 표시한다.
- 도구 창 모음
- 통합개발환경 창 외부 주변에 있으며 개별 도구 창을 펼치거나 접을 수 있는 버튼을 포함한다.
- 도구 창
- 안드로이드 스튜디오는 미리 설정된 구성을 사용하는 대신 상황에 따라 작업 시에 관련 도구 창을 자동으로 불러온다. 기본적으로 가장 자주 사용하는 도구 창이 애플리케이션 창 가장자리의 도구 창 모음에 고정된다. 도구 창을 펼치거나 접으려면 도구 창 모음에서 도구 이름을 클릭한다. 또한, 도구 창을 드래그하거나, 고정하거나, 고정 해제하거나, 연결하거나 분리할 수도 있다. 현재의 기본 도구 창 레이아웃으로 돌아가려면 Window > Restore Default Layout을 클릭하거나 Window > Store Current Layout as Default를 클릭하여 기본 레이아웃을 맞춤설정한다. 전체 도구 창 모음을 표시하거나 숨기려면 안드로이드 스튜디오 창의 왼쪽 하단 모서리에 창 아이콘을 클릭한다. 특정 도구 창을 찾으려면 창 아이콘 위로 마우스를 가져간 후 메뉴에서 도구 창을 선택한다. 모든 툴바, 도구 창 및 편집기 탭을 숨기려면 View > Enter Distraction Free Mode를 클릭한다. 그러면 디스트랙션 프리 모드(Distraction Free Mode)가 활성화된다. 디스트랙션 프리 모드를 종료하려면 View > Exit Distraction Free Mode를 클릭한다. Speed Search를 사용하면 안드로이드 스튜디오의 대부분의 도구 창 내에서 검색하고 필터링할 수 있다. 스피드 서치(Speed Search)를 사용하려면 도구 창을 선택한 다음 원하는 검색어를 입력한다.
- 상태 표시줄
- 프로젝트와 통합개발환경의 상태를 표시하며 경고나 메시지도 표시한다. 툴바와 도구 창을 숨기거나 이동하여 더 많은 화면 공간을 확보하도록 기본 창을 구성할 수 있다. 또한, 단축기를 사용하여 대부분의 통합개발환경 기능에 액세스할 수도 있다. 언제든지 쉬프트 키를 두 번 누르거나 안드로이드 스튜디오 창의 오른쪽 상단 모서리에 있는 돋보기를 클릭하여 소스 코드, 데이터베이스, 작업, 사용자 인터페이스 요소 등에서 검색할 수 있다. 예를 들어, 이 검색 기능은 트리거 방법을 잊은 특정 통합개발환경 작업을 찾으려는 경우 매우 유용할 수 있다.
- 코드 작성
- 안드로이드 스튜디오에는 단축키를 사용하여 액세스할 수 있는 기본 완성, 스마트 완성, 명령문 완성의 세 가지 코드 작성 유형이 있다. 기본완성은 변수, 유형, 메소드, 표현식 등에 관한 기본 제안을 표시한다. 한 행에서 기본 완성을 두 번 호출하는 경우, 비공개 멤버 및 가져오지 않은 정적 멤버를 비롯하여 더 많은 결과가 나타난다. 스마트 완성은 상황에 따라 관련 옵션을 표시한다. 스마트 완성은 예상되는 유형과 데이터 흐름을 인식한다. 한 행에서 스마트 완성을 두 번 호출하는 경우, 체인을 비롯하여 더 많은 결과가 나타난다. 명령문 완성은 현재 명령문을 자동으로 완성하고, 누락된 소괄호, 대괄호, 서식 등을 추가한다.[1]
그레이들 빌드 시스템
안드로이드 스튜디오는 빌드 시스템의 기반으로 그레이들을 사용하며, 더 많은 안드로이드 전용 기능이 그레이들용 안드로이드 플러그인을 통해 제공된다. 이 빌드 시스템은 안드로이드 스튜디오 메뉴에서는 통합 도구로 실행되고, 명령줄에서는 독립적으로 실행된다. 이 빌드 시스템의 기능을 사용하여 다음 작업을 실행할 수 있다.
- 빌드 프로세스 맞춤설정, 구성 및 확장
- 동일한 프로젝트 및 모듈을 사용하여 다양한 기능을 갖춘 앱을 위한 여러 APK 생성
- 전체 소스 세트에 걸쳐 코드 및 리소스 재사용
그레이들의 유연성을 활용하면 앱의 주요 소스 파일을 수정하지 않고도 이 모든 작업을 처리할 수 있다. 안드로이드 스튜디오 빌드 파일은 build.gradle로 명명된다. 이 빌드 파일은 그루비 구문을 사용하는 일반 텍스트 파일이며, 그레이들용 안드로이드 플러그인이 제공하는 요소들로 빌드를 구성한다. 전체 프로젝트에서 각 프로젝트에는 하나의 최상위 빌드 파일이 있으며 모듈별로 별도의 모듈 수준 빌드 파일이 있다. 개발자가 기존 프로젝트를 가져오면 안드로이드 스튜디오는 필요한 빌드 파일을 자동으로 생성한다.
- 빌드 변형
빌드 시스템을 사용하여 단일 프로젝트에서 동일한 애플리케이션의 다양한 버전을 만들 수 있다. 이 기능은 무료 버전 앱과 유료 버전 앱이 둘 다 있거나 구글 플레이에서 다른 기기 설정에 관해 여러 APK를 배포하려는 경우에 유용하다.[1]
- 다중 APK 지원
다중 APK 지원을 사용하면 화면 밀도 또는 ABI를 기반으로 여러 APK를 효율적으로 만들 수 있다. 예를 들어, hdpi 및 mdpi 화면 밀도에 맞게 앱의 개별 APK를 만드는 동시에 이들을 단일 변형으로 간주하여 테스트 APK, javac, dx 및 ProGuard 설정을 공유하도록 허용할 수 있다.[1]
- 리소스 축소
안드로이드 스튜디오의 리소스 축소는 패키지 앱과 라이브러리 종속 항목으로부터 미사용 리소스를 자동으로 삭제한다. 예를 들어, 애플리케이션에서 구글 플레이 서비스를 사용하여 구글 드라이브 기능에 액세스하고 현재 구글 로그인을 사용하고 있지 않은 경우 리소스 축소를 사용하면 싱글인버튼(SingleInButton)의 다양한 드로어블 애셋을 삭제할 수 있다.[1]
- 종속 항목 관리
프로젝트의 종속 항목은 build.gradle 파일에 이름으로 지정된다. 그레이들은 종속 항목을 찾고 빌드에서 사용할 수 있게 만든다. 모듈 종속 항목, 원격 바이너리 종속 항목, 로컬 바이너리 종속 항목을 build.gradle 파일에서 선언할 수 있다. 기본적으로 안드로이드 스튜디오는 메이븐 센트럴 레파지토리(Maven Central Repository)를 사용하도록 프로젝트를 구성한다. (이 구성은 프로젝트의 최상위 빌드 파일에 포함된다.)[1]
디버그 및 프로파일링 도구
안드로이드 스튜디오는 코드를 디버깅하고 코드 성능을 개선하도록 도와주며 여기에는 인라인 디버깅 및 성능 분석 도구가 포함된다.
- 인라인 디버깅
참조, 표현식 및 변수 값의 인라인 확인 기능이 있는 디버거 뷰에서 인라인 디버깅을 사용하여 코드 검토 능률을 높인다. 인라인 디버그 정보에는 다음과 같은 항목이 포함된다.
- 인라인 변수 값
- 선택한 객체를 참조하는 참조 객체
- 메소드 반환 값
- 람다 및 연산자 표현식
- 도움말 값[1]
- 성능 프로파일러
안드로이드 스튜디오는 성능 프로파일러를 제공하며 이를 통해 앱의 메모리 및 CPU 사용량을 보다 쉽게 추적하고, 할당 해제된 객체를 확인하고, 메모리 누수를 찾아내고, 그래픽 성능을 최적화하고, 네트워크 요청을 분석할 수 있다. 앱이 기기 또는 에뮬레이터에서 실행 중일 때 안드로이드 프로파일러 탭을 연다.[1]
- 힙 덤프
안드로이드 스튜디오에서 메모리 사용량을 프로파일링 중인 경우, 동시에 가비지 컬렉션을 시작하고 자바 힙을 안드로이드 전용 HPROF 바이너리 형식 파일로 힙 스냅샷에 덤프할 수 있다. HPROF 뷰어는 클래스, 각 클래스의 인스턴스, 참조 트리를 표시하므로 메모리 사용량을 추적하고 메모리 누수를 찾는 데 도움이 된다.[1]
- 메모리 프로파일러
메모리 프로파일러를 사용하면 메모리 할당을 추적하고 특정 작업을 실행할 때 객체가 어디에서 할당되는지를 살펴볼 수 있다. 이러한 할당을 알고 있으면 작업과 관련된 메소드 호출을 조정하여 앱의 성능과 메모리 사용을 최적화할 수 있다.[1]
- 데이터 파일 액세스
시스트레이스(Systrace) 및 로그캣(logcat)과 같은 안드로이드 SDK 도구는 자세한 앱 분석을 위해 성능 및 디버깅 데이터를 생성한다. 사용 가능한 생성된 데이터 파일을 보려면 캡처 도구 창을 연다. 생성된 파일 목록에서 파일을 더블클릭하여 데이터를 본다. 임의의 .hprof 파일을 마우스 오른쪽 버튼으로 클릭하여 표준 램 사용량 조사 파일 형식으로 변환한다.[1]
- 코드 검사
개발자가 프로그램을 컴파일할 때마다 안드로이드 스튜디오는 구성된 린트 및 기타 통합개발환경 검사를 자동으로 실행하여 코드의 구조적 품질 문제를 쉽게 식별하고 수정하도록 도와준다. 린트 도구는 안드로이드 프로젝트 소스 파일을 검사하여 잠재적 버그를 찾아내고 정확성, 보안, 성능, 사용성, 접근성, 국제화를 개선하여 최적화한다. 린트 검사 외에도, 안드로이드 스튜디오는 인텔리제이 코드 검사를 실행하고 주석의 유효성을 검사하여 코딩 워크플로를 능률화한다.[1]
- 안드로이드 스튜디오의 주석
안드로이드 스튜디오는 변수, 매개변수 및 반환 값에 관한 주석을 지원하므로, 개발자는 널 포인터 예외 및 리소스 유형 충돌 등의 버그를 포착할 수 있다. 안드로이드 SDK 매니저는 안드로이드 스튜디오에서 사용할 수 있도록 서포트 어노테이션 라이브러리를 안드로이드 지원 저장소에서 패키징한다. 안드로이드 스튜디오는 코드를 검사하는 동안 구성된 주석의 유효성을 검사한다.[1]
- 로그 메시지
안드로이드 스튜디오로 앱을 빌드 및 실행할 때 로그캣 창에서 adb 출력 및 기기 로그 메시지를 볼 수 있다.[1]
- 성능 프로파일링
앱의 CPU, 메모리 및 네트워크 성능을 프로파일링하려면 View > Tool Windows > Android Profiler를 클릭하여 안드로이드 프로파일러를 연다.[1]
요구 사항
- 운영체제 : 마이크로소프트 윈도우즈 7/8/10 (64비트) (안드로이드 에뮬레이터는 64비트 윈도우즈만 지원한다.)
- 램 : 최소 4GB 램, 8GB 램 권장
- 하드디스크 : 최소 2GB의 사용 가능한 디스크 공간, 4GB 권장(통합개발환경의 경우 500MB+안드로이드 SDK 및 에뮬레이터 시스템 이미지의 경우 1.5GB)
- 해상도 : 1280x800 최소 화면 해상도[1]
각주
참고자료
- 안드로이드 스튜디오 개발자 공식 홈페이지 - https://developer.android.com/?hl=ko
같이 보기