지난주에는 Android 앱을 더 빠르고 작고 안정적으로 만드는 데 도움이 되는 권장사항과 가이드를 공유하는 데 집중했습니다. R8 최적화 도구 및 프로필 기반 최적화의 기본 기능부터 Jetpack Compose를 사용한 성능 개선, 앱 성능 향상에 관한 새로운 가이드에 이르기까지 성능이 우수한 앱을 빌드하는 데 필요한 노력은 적게, 효과는 크게 나타나는 도구를 다루었습니다.
이 게시물은 최적화가 필요할 때마다 이러한 리소스를 다시 방문할 수 있는 색인 및 로드맵 역할을 합니다. 함께한 여정에서 얻은 다섯 가지 주요 내용은 다음과 같습니다.
R8 최적화 도구를 사용하여 앱 속도 높이기
가장 큰 영향을 미치면서도 노력이 적게 드는 변경사항은 R8 최적화 도구 를 완전히 사용 설정하는 것입니다. 앱 크기를 줄이는 것뿐만 아니라 효율성을 위해 코드를 근본적으로 다시 작성하는 심층적인 전체 프로그램 최적화를 실행합니다. Keep 규칙을 다시 검토하고 R8을 엔지니어링 작업에 다시 적용하세요.
새롭게 업데이트되고 확장된 R8 최적화 도구에 관한 문서를 참고하세요.
Reddit 은 R8 전체 모드를 사용 설정한 후 콜드 스타트가 40% 더 빨라지고 ANR 오류가 30% 감소 했습니다.
블로그에서 전체 사례 연구를 읽어보세요.
Disney+ 의 엔지니어는 앱 성능에 투자하고 앱의 사용자 환경을 최적화하고 있습니다. 때로는 작아 보이는 변경사항도 큰 영향을 미칠 수 있습니다. 팀은 R8 구성을 검사하는 동안 -dontoptimize 플래그가 사용되고 있음을 발견했습니다. 이 플래그를 삭제하여 최적화를 사용 설정한 후 Disney+팀은 앱 성능이 크게 개선되었습니다.
따라서 다음에 앱 성능을 개선하기 위해 무엇을 할 수 있는지 묻는 사람이 있으면 이 게시물로 연결해 주세요.
1일차 블로그에서 자세히 알아보기: R8을 사용하여 앱 축소, 최적화, 신속 처리
더 나은 성능을 위한 안내
기준 프로필은 Just in Time 컴파일의 필요성을 효과적으로 없애고 시작 속도, 스크롤, 애니메이션, 전반적인 렌더링 성능을 개선합니다.시작 프로필은 앱의 classes.dex 파일에 지능적인 순서를 적용하여 앱 시작을 더욱 가볍게 만듭니다.
앱 성능에 기준 프로필이 얼마나 중요한지 자세히 알아보려면 Meta의 엔지니어링 블로그를 읽어보세요. 여기에서 Meta는 기준 프로필이 앱 전반에서 다양한 중요한 성능 측정항목을 최대 40% 개선한 방법을 공유했습니다.
Jetpack Compose 1.10 일시중지 가능한 컴포지션 및 맞춤설정 가능한 캐시 창과 같은 기능은 복잡한 목록 항목을 처리할 때 스크롤 끊김을 0으로 유지하는 데 매우 중요합니다. #TheAndroidShow의 최신 에피소드에서 자세히 설명해 드립니다.
수요일 블로그에서 자세히 알아보기: 심층적인 성능 고려사항
성능 측정은 1, 2, 3만큼 쉬울 수 있습니다
측정하지 않으면 관리할 수 없습니다. 성능 레벨링 가이드는 쉽게 사용할 수 있는 데이터로 시작하여 고급 로컬 도구로 빌드하는 측정 여정을 5단계로 세분화합니다.
레벨 1부터 ANR, 비정상 종료, 과도한 배터리 사용량에 관한 현장 데이터를 제공하는 Android vitals의 즉시 사용 가능한 데이터를 사용하는 방법을 알려드립니다.
레벨을 올리는 방법도 알려드립니다. 예를 들어 Jetpack Macrobenchmark 및 새로운 UiAutomator 2.4 API 를 사용하여 앱 성능의 변경사항을 정확하게 측정하고 확인하는 로컬 성능 테스트 로 레벨 3 에 도달하는 방법을 보여드리겠습니다.
목요일 블로그에서 자세히 알아보기: [목요일 블로그 링크: 성능 여정을 위한 레벨링 가이드]
성능 디버깅이 업그레이드되었습니다
고급 최적화가 읽을 수 없는 비정상 종료 보고서를 의미해서는 안 됩니다. 새로운 기능은 R8 및 백그라운드 작업을 자신 있게 디버그하는 데 도움이 되도록 설계되었습니다.
자동 Logcat 재추적
Android 스튜디오 Narwhal부터 스택 트레이스를 Logcat 창에서 자동으로 난독화 해제할 수 있습니다. 이렇게 하면 프로덕션 준비가 완료된 빌드에서 비정상 종료를 즉시 확인하고 디버그할 수 있습니다.
좁은 Keep 규칙
화요일에는 런타임 비정상 종료를 수정하는 데 필요한 Keep 규칙을 설명하고 지나치게 광범위한 와일드카드보다 구체적인 멤버 수준 규칙을 작성하는 것을 강조했습니다. 또한 중요한 주제이므로 동영상도 제작했습니다.
광범위한 Keep 규칙을 위한 새로운 린트 검사를 사용하면 Android 스튜디오 Otter 3 기능 드롭도 여기서 다루어집니다.
또한 R8 구성을 테스트하고 문제를 해결하는 데 도움이 되는 새로운 가이드를 출시하여 구성을 자신 있게 올바르게 설정할 수 있도록 했습니다.
화요일 블로그에서 자세히 알아보기: R8 Keep 규칙 구성 및 문제 해결
백그라운드 작업
WorkManager를 사용하여 작업을 예약할 때 발생할 수 있는 일반적인 시나리오를 디버그하는 방법에 관한 가이드를 공유했습니다.
Background Task Inspector는 WorkManager 작업의 시각적 표현과 그래프 뷰를 제공하여 예약된 작업이 지연되거나 실패하는 이유를 디버그하는 데 도움이 됩니다. 새로고침된 백그라운드 작업 문서 방문 페이지는 특정 사용 사례에 최적화된 작업별 API를 강조 표시하여 더 안정적인 실행을 달성하는 데 도움이 됩니다.
수요일 블로그에서 자세히 알아보기: 백그라운드 작업 성능 고려사항
성능 최적화는 지속적인 여정입니다
이번 주에 R8 전체 모드를 사용 설정하는 챌린지를 성공적으로 완료했다면 다음 단계는 앱 성능 점수를 사용하여 성능을 제품 로드맵에 통합하는 것입니다. 이 표준화된 프레임워크는 지속적인 개선을 위한 가장 높은 활용도 작업 항목을 찾는 데 도움이 됩니다.
엔지니어가 R8, 프로필 기반 최적화 등에 관한 가장 어려운 질문에 답변하는 #AskAndroid Live Q&A 세션으로 한 주를 마무리했습니다. 놓치셨다면 다시보기를 찾아보세요.
참여해 주셔서 감사합니다. 이제 빌드를 시작하고 이 모멘텀을 유지하세요.
계속 읽기
-
이벤트 및 프로그램
앱 성능을 개선하기 위해 가장 큰 영향을 미치면서도 노력이 적게 드는 변경사항인 전체 모드에서 R8 최적화 도구를 사용 설정하는 것으로 시작합니다.
Ben Weiss • 5분 읽기
-
이벤트 및 프로그램
Google I/O 일정이 공개되었습니다.
1분 읽기
-
이벤트 및 프로그램
지난 9월에는 Google Play 게임즈의 미래에 관한 비전을 공유했습니다. 이 비전은 게임의 성공을 이끄는 가장 좋은 방법은 세계적 수준의 플레이 환경을 제공하는 것이라는 핵심 신념에 기반을 두고 있습니다.
Maru Ahues Bouza • 3분 읽기
소식 받아 보기
Android 개발 관련 최신 정보를 이메일로 받아 보세요. 매주