오늘(2019.8.21) Android Studio 3.5가 정식 릴리즈되었다. Stable Channel에서.
얼리어댑터로 왠만하면 최신것을 좋아하는 나이지만, Android Studio는 아직은 이것을 따라갈 정도로 내가 실력적으로 안정화 되어있지는 않아서, Stable로만 연명하고 있는데, 드디어 Android Studio가 3.5가 나왔다.
(나는 안드로이드 개발자이지만, 업무 특성상? 최신 feature를 도입하기엔 다소 어렵다. 환경이 변하기 전까지는 많이 아쉬운 부분이다.)
잡설은 가볍게.
제목처럼 Android Studio 3.5로 오면서 특징에 대한 이야기 이다. 깔끔한 정리가 아닌, 요약 영상에서 이야기한 주요 점에 대하여 간단히 나온 부분들을 적었다. 그냥 글로 나열하며 적었기 때문에 정리는 잘 안되겠지만, 가볍게 훑으면서 읽기 위한 목적이기 때문에 이런게 있구나 하고 느끼는 정도로 읽히면 좋겠다.(영어로만 안봐도 어딘가 싶..)
이것은 Youtube의 Android Developers 채널에서 제공하는 영상을 기반으로 정리한 내용이다.
- 프로젝트 마블에 도달(Project Marble comes to conclusion)
- 메모리 사용량 향상(Improvements on memory usage)
- 코틀린을 위한 어노테이션 처리 증가(Incremental annotation processing for Kotlin)
- 변경사항 적용(Apply Changes)
- 크롬OS 지원(Chrome OS support)
- 인텔리J 2019.1 기반(Intellij 2019.1)
지난 몇개월동안 수백가지 버그 및 메모리 누수를 수정했다.
인터페이스 프리징이 줄어들었다.
Lint 코드 분석 성능을 2배 빠르게 향상시켰다.
XML에 데이타바인딩 표현식을 편집할 때 지연시간에 대해 성능을 향상시켰다.
이번 Android Studio에서는 힙 메모리가 더 필요할 때 그것을 판단해서 기존 설정되어 있는 힙 메모리를 늘릴 수 있도록 추천해준다.
사용자 리포팅 덕분에 윈도우의 바이러스 백신 프로그램이 Android Studio의 빌드 디렉토리와 설치 디렉토리를 감시하면서 성능을 저하시켰다는 것을 알게 되었다. 이 곳의 디렉토리에서는 수많은 작은 파일을 만들고 지운다. 때문에 빌드하는 동안 I/O와 CPU에게 영향을 많이 주고 있었다. AS 3.5에서는 바이러스 스캔으로 인해 둔화현상을 야기시킬 수 있는 것을 찾아서 체킹하고 알림을 준다. 그래서 해당되는 디렉토리를 스캔에서 제외시킬 수 있도록 정확한 경로를 알려준다. 이것은 우리가 팝업을 통해 보거나 최적화 설정을 통해 도움을 받을 수 있다.
에뮬레이터 측면에서는 기본 전원 설정으로 인해 백그라운드에서 구글 플레이 서비스가 적극적으로 실행되고 있는 것을 찾아냈다. 그래서 배터리 모드로 기본적으로 변경하였고, 에뮬레이터가 idle상태일 때도 냉각 팬이 trigger되지 않도록 백그라운드 CPU 사용량을 3배 이상 감소시켰다.
안드로이드 개발자를 위해 치명적인 피쳐들을 다듬었다.
Gradle Sync는 디스크 용량을 절약하기 위해 주기적으로 종속성들을 삭제하기 때문에, 캐시 이슈로 인해 실패하곤 했었다.
특별히 ConstraintLayout을 돌리는 사이에 레이아웃 편집기는 이제 더 부드러워졌다. 또한 Android Studio의 이전버전에서 최신버전으로 import 할 때 더 쉽게 할 수 있도록 하였다.
C++ 향상 부분이다.
CMake는 큰 프로젝트를 위해 25퍼센트 정도 더 빠르게 빌드하게 되었다.
특정 ABI 타겟으로 할 때에는 UI 패널에서 분리되어 빌드 variants를 설정할 수도 있다.
이제 build.gradle에서 Android NDK의 멀티플 버전을 나란히 관리할 수 있다.
gradle.properties에서 android.databinding.incremental=true 로 설정이 가능하다. 데이터바인딩 관련해서 빌드 속도가 올라갈 것이다.
아직 Kotlin을 위한 annotation 처리 컴파일 향상은 가능하지는 않다. 새로운 Kotlin 플러그인 버전을 사용하기 위해서는 gradle.properties에 kapt.incremental.apt=true 로 설정하면 켤 수 있다.
인스턴트 런에 대해서도 피드백이 있었다. 그래서 처음보다 실용적인 방법으로 다시 접근하였다.
총 3가지 방법으로 실행이 가능한데,
- Run 'app'
- Apply Changes and Restart Activity
- Apply Code Changes
이다.
이것을 Apply Changes new tool 이라고 부른다.
Apply Changes는 우리의 APK를 modify하지 않는다. 자세한 내용은 하단의 블로그 포스팅을 참고하면 된다.
앱 사이즈는 항상 생각중에 있었는데, 우리의 번들을 위해 4가지 조건적인 딜리버리를 추가했다.
앱 설치 중에 동적 기능 모듈을 자동으로 다운로드하기위한 특정 장치 구성 요구 사항을 설정할 수 있다.
이제 OpenGL 버전과 같은 하드웨어 피쳐, AR지원, API Level, 사용자 국가를 기반으로 조건을 설정할 수 있다.
그리고 만약 크롬OS 기기에서 실행한다면, 75버전부터 Android Studio 3.5의 dev 파일 인스톨러를 지원한다.
이제 또, 배포와 USB 연결된 기기의 디버깅도 지원한다.
적고보니 상당히 정신없는 글 같다.ㅜㅜ
한글로 읽는다는 것으로 만족해보자
참고자료1. 프로젝트 마블에 관한 링크: https://medium.com/androiddevelopers/android-studio-project-marble-layout-editor-608b6704957a
전체 내용을 보기 위한 참고 링크는 아래와 같다.
참고자료2. Google Developers 릴리즈노트 관련 포스팅
https://developer.android.com/studio/releases/#3-5-0
'[Developer] > Android' 카테고리의 다른 글
[개발 팁] adb 디버깅 무선 연결하기 - Android 11 이상 (6) | 2021.04.26 |
---|---|
[번역] 단위테스트를 위한 안드로이드 모의 서버 (0) | 2020.07.27 |
[트러블슈팅] Default file proguard-android.txt should not be specified in this module (0) | 2018.11.29 |
설치된 앱이 어느 마켓에서 설치되었는지 알아내기 (0) | 2018.06.25 |
Android Jetpack에 대한 개요 (0) | 2018.05.15 |
댓글