Android 스튜디오 3.6(2020년 2월)

Android 스튜디오 3.6은 다양한 새 기능과 개선사항이 포함된 메이저 버전입니다.

또한 이번 버전을 출시하는 데 도움을 주신 모든 커뮤니티 참여자 여러분께 감사의 인사를 전합니다.

3.6.3(2020년 4월)

이번 소규모 업데이트는 다양한 버그 수정을 포함합니다. 중요한 버그 수정 목록을 보려면 업데이트 출시 블로그에서 관련 게시물을 읽어보세요.

3.6.2(2020년 3월)

이번 소규모 업데이트는 다양한 버그 수정을 포함합니다. 중요한 버그 수정 목록을 보려면 업데이트 출시 블로그에서 관련 게시물을 읽어보세요.

3.6.1(2020년 2월)

이번 소규모 업데이트는 다양한 버그 수정을 포함합니다. 중요한 버그 수정 목록을 보려면 업데이트 출시 블로그에서 관련 게시물을 읽어보세요.

디자인 도구

이 Android 스튜디오 버전에는 Layout Editor, Resource Manager 등 여러 디자인 도구의 업데이트가 포함되어 있습니다.

디자인 편집기의 분할 뷰 및 확대/축소

분할 뷰는 디자인 뷰와 텍스트 뷰를 동시에 표시합니다.

이 버전에는 시각적 디자인 편집기의 다음과 같은 업데이트가 포함되었습니다.

  • 이제 Layout Editor, Navigation Editor와 같은 디자인 편집기에서 UI의 DesignCode 뷰를 동시에 확인할 수 있는 Split 뷰를 제공합니다. 이제 편집기 창의 오른쪽 상단에 뷰 옵션 간 전환할 수 있는 다음 세 가지 버튼 뷰 아이콘이 표시됩니다.

    • 분할 뷰를 사용 설정하려면 Split 아이콘 분할 뷰 아이콘을 클릭합니다.
    • XML 소스 뷰를 사용 설정하려면 Source 아이콘 소스 뷰 아이콘을 클릭합니다.
    • 디자인 보기를 사용 설정하려면 Design 아이콘 디자인 보기 아이콘을 클릭합니다.
  • 디자인 편집기의 확대/축소 및 화면 이동 컨트롤이 편집기 창의 오른쪽 하단에 있는 플로팅 패널로 이동했습니다.

자세한 내용은 Layout Editor로 UI 빌드를 참고하세요.

색상 선택 도구 리소스 탭

이제 XML 또는 디자인 도구에서 색상 선택 도구를 사용할 때 앱의 색상 리소스 값을 빠르게 업데이트할 수 있도록 IDE에서 색상 리소스 값을 자동으로 채웁니다.

색상 값이 채워진 색상 선택 도구

Resource Manager

Resource Manager에는 다음과 같은 업데이트가 포함되어 있습니다.

  • Resource Manager에서 이제 대부분의 리소스 유형을 지원합니다.
  • 리소스를 검색할 때 이제 Resource Manager에서 모든 프로젝트 모듈의 결과를 표시합니다. 이전에는 선택된 모듈에서만 결과를 반환했습니다.
  • 필터 버튼을 사용하면 로컬 종속 모듈, 외부 라이브러리, Android 프레임워크의 리소스를 확인할 수 있습니다. 필터를 사용하여 테마 속성을 표시할 수도 있습니다.
  • 이제 가져오기 과정 동안 리소스 위의 텍스트 상자를 클릭하여 리소스의 이름을 바꿀 수 있습니다.

자세히 알아보려면 Resource Manager를 사용하여 앱의 UI 리소스 관리하기를 참고하세요.

Android Gradle 플러그인 업데이트

Android Gradle 플러그인의 최신 버전에는 빌드 속도에 최적화, Maven 게시 플러그인 지원, 뷰 결합 지원 등 여러 업데이트가 포함되어 있습니다. 자세한 내용은 전체 출시 노트를 참고하세요.

뷰 결합

뷰 결합을 사용하면 각 XML 레이아웃 파일의 결합 클래스를 생성하여 뷰와 상호작용하는 코드를 더 쉽게 작성할 수 있습니다. 이 클래스에는 관련 레이아웃에 ID가 있는 모든 뷰의 직접 참조가 포함됩니다.

뷰 결합이 findViewById()를 대체하므로 잘못된 뷰 ID로 인해 null 포인터 예외가 발생할 위험이 없습니다.

뷰 결합을 사용 설정하려면 Android Gradle 플러그인 3.6.0 이상을 사용하고 각 모듈의 build.gradle 파일에 다음을 포함해야 합니다.

Groovy

  android {
      buildFeatures.viewBinding = true
  }
  

Kotlin

  android {
      buildFeatures.viewBinding = true
  }
  

Apply Changes

이제 Apply Code Changes 또는 Apply Changes and Restart Activity를 클릭하여 실행 중인 앱에 클래스를 추가한 후 코드 변경사항을 배포할 수 있습니다.

이 두 작업의 차이점에 관해 자세히 알아보려면 Apply Changes를 참고하세요.

인스턴트 앱 지원을 사용 설정하는 메뉴 옵션 리팩터링

이제 다음과 같이 앱 프로젝트를 생성한 후 언제든지 기본 모듈에 인스턴트 지원을 적용할 수 있습니다.

  1. 메뉴 바에서 View > Tool Windows > Project를 선택하여 Project 패널을 엽니다.
  2. 보통 '앱'이라고 하는 기본 모듈을 마우스 오른쪽 버튼으로 클릭한 후 Refactor > Enable Instant Apps Support를 선택합니다.
  3. 대화상자가 표시되면 드롭다운 메뉴에서 기본 모듈을 선택합니다.
  4. OK를 클릭합니다.

참고: Create New Project 마법사에서 기본 앱 모듈에 인스턴트 지원을 적용하는 옵션은 삭제되었습니다.

자세한 내용은 Google Play 인스턴트 개요를 참고하세요.

APK Analyzer에서 클래스 및 메서드 바이트 코드 가독화

APK Analyzer를 사용하여 DEX 파일을 검사할 때 다음과 같이 클래스 및 메서드 바이트 코드를 가독화할 수 있습니다.

  1. 메뉴 바에서 Build > Analyze APK를 선택합니다.
  2. 대화상자가 나타나면 검사하려는 APK로 이동하여 선택합니다.
  3. Open을 클릭합니다.
  4. APK Analyzer에서 검사하려는 DEX 파일을 선택합니다.
  5. DEX 파일 뷰어에서 분석 중인 APK의 ProGuard 매핑 파일을 로드합니다.
  6. 검사하려는 클래스나 메서드를 마우스 오른쪽 버튼으로 클릭하고 Show bytecode를 선택합니다.

네이티브 도구

다음 업데이트는 Android 스튜디오에서 네이티브(C/C++) 개발을 지원합니다.

Kotlin 지원

이전에 Java로 지원되었던 Android 스튜디오의 다음과 같은 NDK 기능이 이제 Kotlin으로도 지원됩니다.

  • JNI 선언에서 상응하는 C/C++ 구현 함수로 이동합니다. 관리되는 소스 코드 파일의 줄 번호 근처에 있는 C 또는 C++ 항목 마커 위로 마우스를 가져가 이 매핑을 확인하세요.

  • JNI 선언의 스텁 구현 함수를 자동으로 생성합니다. 먼저 JNI 선언을 정의한 다음 C/C++ 파일에 'jni' 또는 메서드 이름을 입력하여 활성화하세요.

  • 사용되지 않은 네이티브 구현 함수는 소스 코드에 경고로 강조 표시됩니다. 구현이 누락된 JNI 선언도 오류로 강조 표시됩니다.

  • 네이티브 구현 함수의 이름을 바꾸면(리팩터링하면) 상응하는 모든 JNI 선언이 업데이트됩니다. 네이티브 구현 함수를 업데이트하려면 JNI 선언의 이름을 바꾸세요.

  • 암시적으로 바인드된 JNI 구현의 서명 확인

다른 JNI 개선사항

Android 스튜디오의 코드 편집기는 이제 개선된 유형 힌트, 자동 완성, 검사, 코드 리팩터링 등 더 원활한 JNI 개발 워크플로를 지원합니다.

네이티브 라이브러리용 APK 다시 로드 {:#3.6-reload-apk}

프로젝트의 APK가 IDE 외부에서 업데이트될 경우에는 더 이상 새 프로젝트를 만들 필요가 없습니다. Android 스튜디오에서는 APK의 변경사항을 감지하고 다시 가져올 수 있는 옵션을 제공합니다.

Kotlin 전용 APK 소스 연결

이제 사전 빌드 APK를 프로파일링하고 디버그할 때 Kotlin 전용 외부 APK 소스를 연결할 수 있습니다. 자세한 내용은 Kotlin/Java 소스 연결을 참고하세요.

메모리 프로파일러에서 누수 감지

이제 메모리 프로파일러의 힙 덤프를 분석할 때 Android 스튜디오에서 앱의 ActivityFragment 인스턴스에서 메모리 누수가 의심되는 프로파일링 데이터를 필터링할 수 있습니다.

필터에 표시되는 데이터 유형은 다음과 같습니다.

  • 삭제되었지만 아직 참조되고 있는 Activity 인스턴스
  • 유효한 FragmentManager가 없지만 아직 참조되고 있는 Fragment 인스턴스

Kotlin 전용 APK 소스 연결

이제 사전 빌드 APK를 프로파일링하고 디버그할 때 Kotlin 전용 외부 APK 소스를 연결할 수 있습니다. 자세한 내용은 Kotlin/Java 소스 연결을 참고하세요.

메모리 프로파일러에서 누수 감지

이제 메모리 프로파일러의 힙 덤프를 분석할 때 Android 스튜디오에서 앱의 ActivityFragment 인스턴스에서 메모리 누수가 의심되는 프로파일링 데이터를 필터링할 수 있습니다.

필터에 표시되는 데이터 유형은 다음과 같습니다.

  • 삭제되었지만 아직 참조되고 있는 Activity 인스턴스
  • 유효한 FragmentManager가 없지만 아직 참조되고 있는 Fragment 인스턴스

다음과 같은 특정 상황에서는 필터에 거짓양성이 표시됩니다.

  • Fragment를 생성하였지만 아직 사용하지 않은 경우
  • Fragment가 캐시되고 있지만 FragmentTransaction의 일부가 아닌 경우

이 기능을 사용하려면 먼저 힙 덤프를 캡처하거나 Android 스튜디오로 힙 덤프 파일을 가져옵니다. 메모리 누수가 발생할 수 있는 프래그먼트와 활동을 표시하려면 메모리 프로파일러의 힙 덤프 창에서 Activity/Fragment Leaks 체크박스를 선택합니다.

프로파일러: 메모리 누수 감지

메모리 누수를 일으키는 힙 덤프 필터링

에뮬레이터

Android 스튜디오 3.6을 사용하면 아래에 설명된 대로 Android Emulator 29.2.7 이상에 포함된 여러 업데이트를 활용할 수 있습니다.

위치 지원 기능 개선

Android Emulator 29.2.7 이상에서는 GPS 좌표와 경로 정보를 에뮬레이션할 수 있는 기능을 추가로 지원합니다. 에뮬레이터의 Extended controls를 열면 이제 Location 탭의 옵션이 Single pointsRoutes의 두 탭 아래에 구성됩니다.

Single points

Single points 탭에서 Google 지도 WebView를 사용하여 스마트폰이나 브라우저에서 Google 지도를 사용할 때처럼 관심 장소를 검색할 수 있습니다. 지도에서 위치를 검색하거나 클릭할 때 지도 하단에서 Save point를 선택하여 위치를 저장할 수 있습니다. 저장된 모든 위치는 Extended controls 창 오른쪽에 표시됩니다.

에뮬레이터 위치를 지도에서 선택한 위치로 설정하려면 Extended controls 창의 오른쪽 하단에 있는 Set location 버튼을 클릭하세요.

에뮬레이터 Extended Controls의 Single Points 탭

Routes

Single points 탭과 마찬가지로 Routes 탭에서는 두 개 이상의 위치 간에 경로를 만드는 데 사용할 수 있는 Google 지도 WebView를 제공합니다. 경로를 만들고 저장하려면 다음 단계를 따르세요.

  1. 지도뷰에서 텍스트 입력란을 사용하여 경로의 첫 번째 목적지를 검색합니다.
  2. 검색결과에서 위치를 선택합니다.
  3. Navigate 버튼을 선택합니다.
  4. 지도에서 경로의 출발지를 선택합니다.
  5. (선택사항) 경로에 경유지를 추가하려면 Add destination을 클릭합니다.
  6. 지도뷰에서 Save route를 클릭하여 경로를 저장합니다.
  7. 경로 이름을 지정하고 Save를 클릭합니다.

저장한 경로를 따라 에뮬레이터를 시뮬레이션하려면 Saved routes 목록에서 경로를 선택하고 Extended controls 창의 오른쪽 하단에 있는 Play route를 클릭합니다. 시뮬레이션을 중지하려면 Stop route를 클릭하세요.

에뮬레이터 Extended Controls의 Routes 탭

지정된 경로에 따라 에뮬레이터를 계속 시뮬레이션하려면 Repeat playback 옆에 있는 스위치를 사용 설정합니다. 에뮬레이터가 지정된 경로를 따라가는 속도를 변경하려면 Playback speed 드롭다운에서 옵션을 선택합니다.

다중 디스플레이 지원

Android Emulator를 사용하면 이제 맞춤설정이 가능한 측정기준을 지원하는 여러 디스플레이에 앱을 배포하고 멀티 윈도우다중 디스플레이를 지원하는 앱을 테스트할 수 있습니다. 가상 기기가 실행되는 동안 다음과 같이 최대 두 개의 디스플레이를 추가할 수 있습니다.

  1. Extended controls를 열고 Displays 탭으로 이동합니다.

  2. Add secondary display를 클릭하여 다른 디스플레이를 추가합니다.

  3. Secondary displays 아래 드롭다운 메뉴에서 다음 작업을 실행합니다.

  4. 미리 설정된 가로세로 비율 중 하나를 선택합니다.

  5. custom을 선택하고 맞춤 디스플레이의 height, width, dpi를 설정합니다.

  6. (선택사항) Add secondary display를 클릭하여 세 번째 디스플레이를 추가합니다.

  7. Apply changes를 클릭하여 지정된 디스플레이를 실행 중인 가상 기기에 추가합니다.

에뮬레이터 Extended Controls Display 탭에 여러 디스플레이 추가

Android Automotive OS용 새 가상 기기 및 프로젝트 템플릿

Android 스튜디오를 사용하여 새 프로젝트를 만들 때 이제 Create New Project 마법사의 Automotive 탭에서 No Activity, Media service, Messaging service, 이렇게 세 가지 템플릿 중에서 선택할 수 있습니다. 기존 프로젝트의 경우 Android Automotive 기기용 지원 기능을 추가하려면 메뉴 바에서 File > New > New Module을 선택하고 Automotive Module을 선택하면 됩니다. 그러면 Create New Module 마법사에서 Android Automotive 프로젝트 템플릿 중 하나를 사용하여 새 모듈을 만드는 과정을 안내합니다.

Android Automotive 프로젝트 템플릿 선택

또한 이제 Virtual Device Configuration 마법사의 Automotive 탭에서 다음 옵션 중 하나를 선택하여 Android Automotive OS 기기용 Android Virtual Device(AVD)를 만들 수 있습니다.

  1. Polestar 2: Polestar 2 헤드 단위를 에뮬레이션하는 AVD를 만듭니다.
  2. Automotive (1024p landscape): 일반 1024x768px Android Automotive 헤드 유닛용 AVD를 만듭니다.

Android Automotive 가상 기기 선택

재개 가능한 SDK 다운로드

이제 Android 스튜디오에서 SDK Manager를 사용하여 SDK 구성요소와 도구를 다운로드할 때 네트워크 문제 등으로 다운로드가 중단되는 경우 다운로드를 처음부터 다시 시작하는 대신 중단된 부분부터 계속할 수 있습니다. 이 개선사항은 인터넷 연결이 불안정한 상태에서 Android Emulator나 시스템 이미지와 같은 대용량 파일을 다운로드하는 경우에 특히 유용합니다.

또한 백그라운드에서 SDK 다운로드 작업을 실행 중인 경우 상태 표시줄의 컨트롤을 사용하여 다운로드를 일시중지하거나 다시 시작할 수 있습니다.

다운로드를 일시중지하거나 이어서 할 수 있는 새로운 컨트롤이 있는 상태 표시줄의 백그라운드 다운로드 작업

다운로드를 일시중지하거나 이어서 할 수 있는 새로운 컨트롤이 있는 상태 표시줄의 백그라운드 다운로드 작업

Win32 지원 중단됨

Windows 32비트 버전의 Android 스튜디오는 2019년 12월 이후 더 이상 업데이트를 받을 수 없으며 2020년 12월 이후에는 더 이상 지원을 받을 수 없습니다. Android 스튜디오를 계속 사용할 수는 있습니다. 하지만 추가 업데이트를 받으려면 워크스테이션을 Windows 64비트 버전으로 업그레이드하세요.

자세한 내용은 Windows 32비트 지원 중단 블로그를 참고하세요.

Gradle 동기화 시간 최적화를 위한 새로운 옵션

이전 출시의 Android 스튜디오에서는 Gradle 동기화 중에 모든 Gradle 작업 목록을 가져왔습니다. 대규모 프로젝트의 경우 작업 목록을 가져오면 동기화 시간이 느려질 수 있습니다.

Gradle 동기화 성능을 향상하려면 File > Settings > Experimental로 이동하여 Do not build Gradle task list during Gradle sync를 선택합니다.

이 옵션을 사용 설정하면 동기화 중에 Android 스튜디오에서 작업 목록 빌드를 건너뛰어 Gradle 동기화를 더 빨리 완료하고 UI 응답성을 개선할 수 있습니다. IDE에서 작업 목록 빌드를 건너뛰면 Gradle 패널의 작업 목록이 비게 되고 빌드 파일의 작업 이름 자동 완성이 작동하지 않습니다.

Gradle의 오프라인 모드를 전환할 새 위치

Gradle의 오프라인 모드를 사용 설정하거나 사용 중지하려면 먼저 메뉴 바에서 View > Tool Windows > Gradle을 선택합니다. 그런 다음 Gradle 창의 상단 근처에서 Toggle Offline Mode Gradle 패널의 Gradle 오프라인 버튼를 클릭합니다.

IntelliJ IDEA 2019.2

핵심 Android 스튜디오 IDE가 2019.2 출시를 통해 IntelliJ IDEA 개선사항과 함께 업데이트되었습니다.

버전 2019.2와 함께 누적되어 포함된 다른 IntelliJ 버전의 개선사항에 관한 자세한 내용은 다음 페이지를 참고하세요.

커뮤니티 참여자

버그를 발견하고 Android 스튜디오 3.6 개선을 위한 다른 방법을 찾도록 도와주신 모든 커뮤니티 참여자 여러분께 감사의 말씀을 전합니다. 특히 버그를 신고해 주신 다음 분들께 감사드립니다.

  • 앨버트 로
  • 알렉세이 로트
  • 안드레아 레간자
  • 베네닉트 콜브
  • 세자르 푸에르타
  • 커티스 크로치
  • 데미언 비초레크
  • 댄 류
  • 데이비드 버스트롬
  • 디판슈
  • 에고르 안드레비치
  • 엘리 그래버
  • 에민 코칼라리
  • 에반 타타르카
  • 프란티섹 나기
  • 그레그 모엔스
  • 한네스 아클라이트너
  • 한스 페터 아이데
  • 헤닝 벙크
  • 휴고 비세르
  • 이고르 에스코도르
  • 이냐키 빌라르
  • 자벤티라 리에나타
  • 조 로저스
  • 크리스토퍼 대니얼슨
  • 리란 바르시사
  • 루이스 캐드
  • 로란트 핀터
  • 루카스 바실코프스키
  • 루크 필케
  • 말빈 수탄토
  • 마사토시 쿠보데
  • 매튜 윈터스
  • 마이클 베일리
  • 미할 고르니
  • 미하이 네악수
  • 마이크 스카멜
  • 몬테 크레아소르
  • 넬슨 오사키
  • 넬슨 오사키
  • 닉 피르마니
  • 니클라스 안스만 기어츠
  • 니클라스 크론
  • 니콜라스 리히트마이어
  • 니에크 하아르만
  • 닐스 반 호브
  • 니클라스 바우디
  • 레나토 곤칼베스
  • 로어 그뢴모
  • 루슬란 바라토프
  • 시난 코작
  • 슬라보미르 체르빈스키
  • 스테판 울프
  • 스테판 드이미코
  • 타오 왕
  • 토마스 클라덱
  • 토마스 프로차즈카
  • 토니 로발릭
  • 토르뵈른 쇠를리
  • 워렌 허
  • 옌치 린
  • 잭 스위어스