업데이트 발견
오늘도(?) 안드로이드를 공부해보기 위해 Android Studio를 켜서 진행하려고 하던 차에, Android Studio의 업데이트 건이 있다는 알림을 오른쪽 하단에서 발견했다.
그래서 눌러보니, 아래처럼 Arctic Fox의 업데이트였다.
이 Arctic Fox에 관련해서는 아래에서 다시 정리를 하겠지만, 이 업데이트부터 Android Studio에 영문이름이 붙여지게 된다.
아래를 보면 현재는 4.2.2였지만, 이제는 Arctic Fox | 2020.3.1 이라는 버전을 볼 수 있다.
그리고 덩달아 연계된 플러그인들의 업데이트를 같이 해야한다고 적혀있다.
대상은 아래와 같다.
몇분이 흐르면서 이렇게 업데이트를 진행했으며
업데이트를 완료한 이후에는 옵셔널하게 Android Gradle Plugin도 7.0.0으로 업데이트가 가능하다는 안내가 나왔다.
이것이 어떠한 변화를 가져올지는 아직 파악되지는 않았으나, 개인 프로젝트이기 때문에 반영하였다.
업데이트 완료 후 왼쪽 패널에 다음과 같이 업데이트된 사항이 보인다.
그리고 이 Arctic Fox 업데이트는 다음과 같은 내용을 담고 있다.
해당 링크로 들어가면 볼 수 있으나, 이 사이트의 오른쪽 상단에 한국어로 되어있다면, 반드시 English로 바꾸어야만 보인다.(물론 지금은 그렇지만, 향후에는 한국어에도 제대로 보일 수 있다.) 이러한 내용들은 최신을 보고싶다면 반드시 English로 보는 습관이 필요하다.
이 내용은 Android Developers 사이트에 적힌 릴리즈 노트의 내용이며, 상세 내용은 모두 담지 않았으므로 릴리즈 노트에 가서 참고하면 더 자세한 내용을 볼 수 있다.
릴리즈노트
1. 새로운 버전 넘버링
업데이트된 Android Studio 버전 넘버링
Android Studio의 기반이 되는 IDE인 IntelliJ IDEA와 긴밀하게 일치하도록 Anroid Studio의 넘버링 시스템을 변경했다.
이전의 넘버링 시스템에서, 이 릴리즈는 Android Studio 4.3 또는 4.3.0.1로 지정되었다. 이제 새로운 넘버링 시스템에 의하면 Android Studio - Arctic Fox | 2020.3.1 또는 2020.3.1로 지정된다.
IntelliJ 버전 | 과거 이름 | 과거 - 버전 시스템 | 새로운 - 연도 시스템 | 새로운 버전 이름 |
2020.3 | 4.3 | 4.3.0 | 2020.3.1 | Arctic Fox | 2020.3.1 |
앞으로 Android Studio 버전 넘버링은 다음과 같이 될 예정이다.
<IntelliJ 버전 연도>.<IntelliJ 메이저 버전>.<Studio 메이저 버전>.<Studio 마이너/패치 버전>
- 처음 두 개의 숫자 그룹은 특정 Android Studio 릴리즈의 기반이 되는 IntelliJ 플랫폼의 버전을 나타낸디ㅏ. 이 릴리즈의 경우 2020.3 버전이다.
- 세 번째 숫자 그룹은 1에서 시작하여 모든 메이저 릴리즈에 대해 1씩 증가하는 Studio 메이저 버전을 나타낸다.
- 네 번째 숫자 그룹은 1에서 시작하여 모든 마이너 릴리즈에 대해 1씩 증가되는 Studio 마이너/패치 버전을 나타낸다.
- 또한 각 메이저 릴리즈에 동물 이름을 기준으로 A부터 Z까지 증가하는 버전 이름을 제공한다. 이 릴리즈의 이름은 Arctic Fox(북극 여우)이다.
업데이트된 Android Gradle Plugin의 버전 넘버링
기본 Gradle build tool과 더 가깝게 일치하도록 Android Gradle Plugin(AGP)의 버전 번호를 변경하였다. 따라서 AGP 7.0은 AGP 4.2 이후 바로 이어지는 릴리즈가 된다.
자세한 내용은 AGP 릴리즈 노트의 버전 변경점을 찾아보면 된다.
2. Android Gradle Plugin 7.0.0
자세한 내용은 링크를 참조하면 된다.
3. Gradle 테스트 러너를 이용한 단위 테스트
테스트 실행의 전반적인 일관성을 개선하기 위해 Android Studio는 이제 Gradle을 사용하여 기본적으로 모든 단위테스트를 실행한다. 대부분의 경우 이 변경사항은 IDE의 테스트 워크플로우에 영향을 주지 않는다.
예를 들어 컨텍스트 메뉴에서 Run 또는 해당 Gutter 작업을 클릭하면 Android Studio는 기본적으로 Gradle 실행 구성을 사용하여 단위 테스트를 실행한다.
그러나 Android Studio는 더이상 기존 Android JUnit 실행 구성을 인식하지 않으므로 프로젝트 파일로 저장할 수 있는 Android JUnit Run Configuration을 Gradle Run Configuration으로 마이그레이션해야 한다.
Gradle test Configuration을 만드려면 new/debug configuration 만드는 지침에 따라 Gradle template를 선택한다. 새 configuration을 만들면 Gradle 섹션의 Edit Configuration 다이얼로그에 나타난다.
자세한 내용은 릴리즈 노트를 참고하면 된다.
4. 새로운 Background Task Inspector
새로운 Background Task Inspector를 사용해 앱의 백그라운드 태스크를 시각화, 모니터링 및 디버그 할 수 있다. 시작하려면 WorkManager 라이브러리 2.5.0 이상을 실행하는 장치에 앱을 배포하고 메뉴 바에서 [View] - [Tool Windows] - [App Inspection]을 선택한다.
위의 캡처를 참고하면 되며, 다음과 같은 항목을 포함하고 있다.
- Background Task Inspector의 Active Worker들 보기
- Worker Details 탭
- Background Task Inspector 워커 체인
5. Database Inspector에서 데이터 내보내기 기능
Database Inspector에서 데이터베이스, 테이블 및 쿼리 결과를 쉽게 export해서 로컬에서 저장, 공유 및 다시 생성할 수 있다. Android Studio에서 앱 프로젝트를 열고 Database Inspector에서 해당 프로젝트에 대한 앱을 검사하면 다음 방법 중 하나로 데이터 내보내기를 시작할 수 있다.
- 데이터베이스 패널에서 데이터베이스 또는 테이블을 선택하고 패널 상단에서 Export to file을 클릭
- 데이터베이스 패널에서 데이터베이스 또는 테이블을 마우스 오른쪽 버튼으로 클릭하고 상황에 맞는 메뉴에서 Export to file을 선택
- 탭에서 테이블 또는 쿼리 결과를 검사할 때 테이블 또는 쿼리 결과 위에 있는 Export to File을 클릭
6. Memory Profiler에서 레코딩되기 위한 UI 업데이트
힙 덤프 캡처 및 Java, Kotlin 및 Native 메모리 할당 레코딩과 같은 다양한 레코딩 활동을 위해 메모리 프로파일러 UI를 통합했다.
메모리 프로파일러는 다음 옵션을 제공한다.
- 힙 덤프 캡처
- Native 할당 레코딩
- Java/Kotlin 할당 레코딩
이것을 사용하는 환경에는 버전별 차이는 있다. Android 10 이상에서는 전부 사용 가능하며, Android 9 이하에서는 Native 할당 레코딩은 사용 불가능 하고, Android 7.1 이하에서는 레거시 할당 레코딩을 사용한다.
자세한 방법은 릴리즈노트를 참고하면 된다.
7. Refresh Linked C++ Project 업데이트
.cxx/ 폴더에서 구성과 관련없는 파일을 build/ 폴더로 옮겼다. CMake C++ 빌드에는 컴파일 및 링크 단계를 실행하는 데 사용되는 Ninja 프로젝트를 생성하는 configuration phase가 필요하다. CMake로 생성된 프로젝트는 생성하는 데 비용이 많이 들고 gradle clean 전반에 걸쳐 생존할 것으로 예상되기 때문에, build/ 폴더 옆의 .cxx/라는 폴더에 저장이 된다. 일반적으로 AGP는 configuration 변경을 감지하고 Ninja 프로젝트를 자동으로 재생성한다. 그러나 모든 경우를 감지할 수 있는 것은 아니다. 이 경우 "Refresh Linked C++ Project" 옵션을 사용하여 Ninja 프로젝트를 수동으로 다시 생성할 수 있다.
8. 멀티 디바이스 테스트를 위한 새로운 테스트 매트릭스
이제 Instrumentation(계측) 테스트를 여러 장치에서 병렬로 실행할 수 있으며, 특수 Instrumentation 테스트 패널을 사용하여 조사할 수 있다. 이 패널을 사용하여 API 레벨 또는 하드웨어 프로퍼티로 인해 테스트가 실패하는지 확인할 수 있다.
Instrumentation test panel은 다음과 같다.
9. 데이터 바인딩에서 StateFlow 지원
코루틴을 사용하는 Kotlin앱의 경우 이제 StateFlow 객체를 데이터바인딩 소스로 사용하여 데이터 변경 사항을 UI에 자동으로 알릴 수 있다. 데이터바인딩은 라이프사이클을 인식하며 UI가 화면에 표시될 때만 트리거된다.
바인딩 클래스와 함께 StateFlow 객체를 사용하려면 StateFlow 객체의 범위를 정의하는 라이프사이클 오너를 지정해야 하며 레이아웃에서 ViewModel 구성요소의 프로퍼티와 메소드를 바인딩 표현식을 사용하여 해당 뷰에 할당해야 한다.
class ViewModel() {
val username: StateFlow<String>
}
<TextView
android:id="@+id/name"
android:text="@{viewmodel.username}" />
AndroidX를 사용하는 Kotlin 앱인 경우 코루틴 종속성을 포함하여 데이터바인딩 기능에 StateFlow 지원이 자동으로 포함된다. 자세한 내용은 링크를 참조하면 된다.
10. 개선된 import 제안
개선된 import 제안 기능에서 지원하는 라이브러리의 수를 개선하고, 색인을 더 자주 업데이트 한다. 추천 import를 사용하면 특정 Google Maven 아티팩트를 클래스와 Gradle 프로젝트로 빠르고 쉽게 가져올 수 있다. Android Studio가 특정 Google 라이브러리에서 확인되지 않은 symbol을 감지하면 IDE는 라이브러리를 클래스와 프로젝트로 모두 가져올 것을 제안한다.
11. Build Analyzer의 Configuration Cache 지원
이제 Build Analyzer는 프로젝트에 Configuration Cache가 활성화되지 않은 경우를 식별하고 이를 최적화로 제공한다. Build Analyzer는 호환성 평가를 실행해서 활성화되기 전에 프로젝트의 Configuration Cache에 문제가 있는지 알려준다.
12. 개선된 AGP용 업그레이드 어시스턴트
Android Gradle Plugin용 업그레이드 도우미에는 이제 완료될 단계 목록이 포함된 persistent tool window가 있다. 추가 정보는 tool window의 오른쪽에도 표시된다. 필요한 경우 업그레이드할 다른 버전의 AGP를 선택할 수도 있다. 새로 고침 버튼을 클릭하면 해당 업데이트 단계가 갱신된다.
13. non-transitive(비 전이적) R 클래스를 위한 리팩토링
AGP와 함께 non-transitive R 클래스를 사용하여 여러 모듈이 있는 애플리케이션을 위한 더 빠른 빌드를 할 수 있다. 이렇게 되면 각 모듈의 R 클래스가 종속성에서 참조를 가져오지 않고 자체 리소스에 대한 참조만 포함되도록 리소스 중복을 방지하는 데 도움이 된다. 이것은 최신 빌드와 이에 상응하는 컴파일 회피라는 장점으로 이어지게 된다.
[Refactor] - [Migrate to Non-transitive R Classes]로 이동하면 이 기능에 접근할 수 있다.
14. Jetpack Compose(컴포즈) 도구 지원
이제 Jetpack Compose를 사용하는 앱 미리보기 및 테스트에 대한 추가 지원을 제공한다. Jetpack Compose로 개발하는 최상의 경험을 위해서는 최신 버전의 Android Studio Arctic Fox를 사용해야 한다. 그러면 다음과 같은 이점을 누릴 수 있다.
- Compose 미리보기: 미리보기의 배경을 켜고 끄거나, 미리보기에만 사용하는 색상을 설정하거나, 테마의 반응을 확인 가능
- 대화형 미리보기: 구성요소와 상호작용하고 클릭하여 상태가 어떻게 변경되는지 확인 가능
- 장치에 배포: 전체가 아닌 UI 스니펫을 기기에 배포하는 것이 가능
- 리터럴의 Live Edit 기능: 리터럴(문자열, 숫자, 부울)을 빠르게 편집하고 컴파일을 기다릴 필요없이 즉시 결과를 볼 수 있도록 하는 실시간 편집 기능
15. Layout Inspector에서 Compose 지원
Layout Inspector를 사용하면 연결된 장치에서 실행중인 앱 레이아웃에 대한 세부정보를 풍부하게 볼 수 있다. 앱과 상호작용하고 도구에서 실시간 업데이트를 확인하여 발생할 수 있는 문제를 빠르게 디버깅할 수 있다.
Layout Inspector는 앱 레이아웃에 구성요소를 emit하는 호출 스택의 모든 Compose함수를 표시한다. 대부분의 경우 여기에는 Compose 라이브러리에서 내부적으로 호출하는 Compose 함수가 포함된다.
16. 향상된 배포 드록다운
장치 드롭다운은 이제 선택한 Device Configuration 내에서 다양한 종류의 오류를 구분한다. 아이콘 및 스타일 변경사항은 이제 오류와 경고를 구분한다. 여기서 오류는 구성이 깨진 장치 선택이며, 경고는 예기치 않은 동작을 초래할 수 있지만 여전히 실행할 수 있는 상태이다.
또, Android Studio는 오류 또는 경고가 있는 장치에서 프로젝트를 시작하려고 하면 경고를 표시한다.
17. 새로운 Wear OS 페어링 어시스턴트
새로운 Wear OS 페어링 어시스턴트는 Wear OS 에뮬레이터를 Android Studio에서 직접적으로 물리적인 또는 가상 전화와 페어링하는 과정을 단계별로 안내한다. 어시스턴트는 휴대전화에 올바른 Wear OS Companion 앱을 설치하고 두 기기간의 연결을 설정하는 데 도움을 줄 수 있다. [Device Dropdown] - [Wear OS Emulator Paring Assistant]로 이동하여 시작할 수 있다.
18. 반응형 레이아웃 템플릿
Android Studio Arctic Fox에는 이제 휴대폰, 폴더블, 태블릿 및 분활화면 모드와 같은 다양한 디스플레이 크기 및 앱 크기 조정에 적응하는 새로운 레이아웃 템플릿이 포함된다. 새 프로젝트 또는 모듈을 만들 때 반응형 활동 템플릿을 선택하여 만든다.
[File] - [New] - [New Project] or [New Module] - [Responsive Activity] 템플릿을 선택하면 된다.
마무리
정리를 시작할 때에는 이렇게 많을 줄 몰랐는데, 정말 많은 부분이 반영된 것 같다.
다만, 이것을 잘 모르면 역시 설치하나마나 하던것만 할지도 모른다는 생각에 이러한 점들을 잘 파악하고 있어야 겠다는 생각이 들었으며, 관련된 사람들이 이 포스팅을 보고 개발에 조금이라도 도움이 되었으면 좋겠다.
참고자료
https://developer.android.com/studio/releases?utm_source=android-studio#arctic-fox
'[Developer] > Android' 카테고리의 다른 글
Wear OS 시계모드 구현 기본 (2) | 2021.08.08 |
---|---|
[트러블슈팅] anim/fragment_fade_exit not found 에러 발생 (0) | 2021.08.02 |
Android Dumpstate 로그 추출 및 분석(2/2) (0) | 2021.07.13 |
Android Dumpstate 로그 추출 및 분석(1/2) (2) | 2021.07.12 |
[개발 팁] adb 디버깅 무선 연결하기 - Android 11 이상 (6) | 2021.04.26 |
댓글