Android vitals로 앱의 기술 품질 모니터링하기

Android vitals를 사용하면 앱의 안정성, 성능, 배터리 사용량 등을 파악하고 개선할 수 있습니다.

앱 데이터에 액세스하는 방법 선택하기

Play Console과 Play Developer Reporting API, 두 가지 방법으로 Android vitals를 사용할 수 있습니다.

Android vitals 데이터를 다른 데이터 세트와 통합하거나 워크플로에 빌드하려는 개발자는 API를 사용하여 프로그래매틱 방식으로 Android vitals에 액세스할 수 있습니다. API를 사용하여 Android vitals에 액세스하는 방법을 자세히 알아보려면 Google Play Developer Reporting API 페이지를 방문하세요.

Play Console에서 앱의 Android vitals 데이터를 찾아 검토하려면 다음 단계를 따르세요.

  1. Play Console을 엽니다.
  2. 앱을 선택합니다.
  3. 왼쪽 메뉴에서 품질 > Android vitals > 개요를 선택합니다.
  4. 오른쪽 상단의 기간 선택기를 사용하여 확인하려는 데이터 범위를 선택합니다.

중요: 사용 가능한 데이터가 없는 경우, 문제를 파악하기에는 지정된 필터 내에 데이터 포인트가 충분하지 않은 것입니다.

앱의 핵심 vitals 모니터링

개요 페이지 상단에서 앱의 핵심 vitals 관련 데이터를 볼 수 있습니다. 이는 가장 중요한 기술 측정항목이며 Google Play에서 앱의 검색 가능 여부에 영향을 미칩니다. 핵심 vitals에는 다음이 포함됩니다.

Google Play에서는 이러한 측정항목에 대해 비정상적인 동작 기준점을 정의합니다. 앱이 기준점을 초과하면 Google Play에서 검색 가능성이 작아질 수 있습니다. 사용자 기대치를 설정하기 위해 앱의 스토어 등록정보에 경고가 표시되는 경우도 있습니다.

'심각한 문제' 섹션에서 앱을 개선할 수 있는 영역을 빠르게 식별할 수 있습니다. 심각한 문제에는 다음과 같은 두 가지 유형이 있습니다.

  • 비정상적인 동작: 비정상적인 동작 기준을 초과하는 측정항목
  • 비정상 이벤트: 데이터의 큰 변화(예: 사용자 인식 ANR 발생률의 급격한 증가)

이메일 알림을 받으려면 설정 > 알림으로 이동하거나 '핵심 vitals' 섹션(품질 > Android vitals > 개요) 모서리에 있는 알림 관리를 클릭하세요. 알림은 현재 비정상 이벤트에만 사용할 수 있습니다.

모든 vitals 탐색

개요 페이지 가운데에서 품질 측면의 모든 vitals 관련 데이터를 볼 수 있습니다.

표에서 현재 및 이전 기간의 측정항목을 검토할 수 있습니다. Google Play의 다른 앱과 내 앱을 비교할 수도 있습니다.

세부 측정항목 보기

측정항목에 관해 자세히 알아보려면 측정항목 옆의 세부정보 보기()를 선택하세요. 다음 화면에서 아래 항목을 확인할 수 있습니다.

  • 비정상적인 동작 기준점
  • 카테고리 벤치마크
  • 자세한 벤치마크 비교
    • 페이지 상단의 동종 앱 비교 카드에서 동종 앱 그룹 수정을 선택하여 맞춤 동종 앱 그룹을 수정합니다. 맞춤 동종 앱 그룹을 만들면 선택한 다른 Google Play 앱과 내 앱을 비교할 수 있습니다.
  • 시간 경과에 따른 측정항목 추세
측정기준으로 데이터 분석

데이터를 쉽게 정리, 분류, 분석할 수 있도록 측정항목은 여러 가지 측정기준으로 분류됩니다. 모든 측정항목은 다음과 같이 분류됩니다.

  • 아티팩트: 문제가 발생한 앱의 버전
  • Android 버전(SDK): 사용자의 기기에서 보고된 Android OS 버전
  • 폼 팩터: 앱이 실행된 기기의 유형(예: 스마트폰, 태블릿, TV, 웨어러블)
  • 기기 모델: 기기에 대한 대략적인 설명. 고유한 브랜드와 기기 식별자로 구성됩니다(예: 'Google oriole'). 단일 기기 모델에는 Android 버전, RAM, 저장용량 또는 단일 칩 시스템(SoC)이 서로 다른 변형이 있을 수 있습니다.
  • 국가/지역: 문제 발생 시 사용자의 기기에서 보고한 위치

도움말: 기기 하드웨어 또는 소프트웨어의 특정 측면(예: 기기 모델 또는 Android 버전)별로 분류하려면 표에서 항목 옆에 있는 기호()를 클릭합니다.

일부 측정항목은 다음과 같이 추가로 분류됩니다.

  • wake lock 이름: 앱에서 PowerManager API를 사용할 때 프로그래매틱 방식으로 설정된 태그
  • wakeup 이름: 앱에서 AlarmManager API를 사용할 때 프로그래매틱 방식으로 설정된 태그
  • ANR 활동 이름: ANR이 발생한 활동 클래스의 정규화된 이름(해당하는 경우)
  • ANR 유형: ANR이 발생한 상황(예: 서비스 실행 중)(해당하는 경우)

항목 옆에 있는 세부정보 보기()를 선택하면 가능한 경우 추가 세부정보(예: 해당 분석과 관련된 비정상 종료 또는 ANR 클러스터)를 볼 수 있습니다.

도움말: 화면 상단의 전환 버튼을 사용하여 단일 카테고리의 측정항목 간에 전환하고 페이지를 필터링할 수 있습니다.

데이터 유형 및 측정항목

Play Console에서 이전 90일 동안의 Android vitals 데이터를, Play Developer Reporting API에서 3년 동안의 Android vitals 데이터를 확인할 수 있습니다.

데이터는 일부 Android 기기 및 OS 버전에서 사용 및 진단 데이터를 자동으로 공유하도록 선택한 사용자에게서 수집됩니다. Android 사용자가 데이터를 공유하도록 설정하는 방법을 알아보려면 계정 고객센터를 참고하세요.

Android vitals는 매일 업데이트됩니다. Android 10 이상을 실행하는 기기의 데이터가 Android 10보다 낮은 기기의 데이터보다 먼저 도착할 수도 있습니다. 이 경우 Android 10 이상 데이터만 사용 가능한 기간에 해당 데이터가 표시됩니다.

참고: 인증되지 않은 기기 모델 또는 Google Play를 통해 설치되지 않은 앱 버전에서 발생하는 기술 문제는 Android vitals 측정항목에서 제외됩니다.

모두 접기 모두 펼치기

안정성

ANR 발생률 측정항목

ANR 발생률 측정항목은 앱 품질에 대한 개요를 제공합니다. 이 측정항목은 ANR이 발생한 사용자 수를 가져와 앱 사용에 따라 정규화하여 계산합니다. 일일 활성 사용자의 비율로 보고되며, 여기서 일일 활성 사용자는 단일 기기에서 하루 동안 앱을 사용하는 사용자로 정의됩니다. 사용자가 하루에 두 대 이상의 기기에서 앱을 사용하는 경우 각 기기는 해당 날짜의 활성 사용자로 계산됩니다. 여러 사용자가 하루 동안 동일한 기기를 사용하는 경우 활성 사용자 한 명으로 계산됩니다.

ANR 발생률 측정항목은 다음 세 가지입니다.

  • 사용자 인식 ANR 발생률: 한 번 이상 사용자 인식 ANR을 경험한 일일 활성 사용자의 비율입니다. 사용자 인식 ANR은 사용자가 인식했을 가능성이 있는 ANR입니다. 현재 '입력 전달 시간 초과' ANR만 계산됩니다. 이 측정항목은 일일 사용량을 기준으로 정규화되지만 모든 ANR을 반영하지는 않으므로, 전체 ANR 발생률보다 항상 낮습니다.
    사용자 인식 ANR 발생률은 핵심 vitals에 속하는 요소로, Google Play에서 앱의 검색 가능 여부에 영향을 미칩니다. 사용자 인식 ANR 발생률에 집계되는 ANR은 항상 사용자가 앱을 사용할 때 발생하여 가장 큰 지장을 유발하므로 중요합니다.
  • ANR 발생률: 한 번 이상 ANR을 경험한 일일 사용자의 비율입니다. ANR 발생률 측정항목에는 사용자 인식으로 분류되지 않은 ANR이 포함되지만 이러한 ANR이 사용자에게 영향을 미치지 않는다고 보장할 수는 없습니다.
  • 다중 ANR 발생률: ANR을 두 번 이상 경험한 일일 사용자의 비율입니다. 이 측정항목은 문제 루프를 강조표시하는 데 도움이 됩니다.

문제 해결

ANR 발생률 측정항목에 포함되는 ANR은 비정상 종료 및 ANR 페이지에 보고됩니다. 이 페이지에서 사용자 인식 ANR을 필터링할 수 있습니다.

Android 개발자 사이트에서는 ANR을 진단하고 해결하는 방법에 관한 안내를 제공합니다.

비정상 종료 발생률 측정항목

비정상 종료 발생률 측정항목은 앱 품질에 대한 개요를 제공합니다. 이 측정항목은 비정상 종료가 발생한 사용자 수를 가져와 앱 사용에 따라 정규화하여 계산합니다. 일일 사용자의 백분율로 보고되며, 여기서 일일 사용자는 단일 기기에서 하루 동안 앱을 사용하는 사용자로 정의됩니다. 한 사용자가 두 대 이상의 기기를 가지고 있는 경우 해당 사용자는 두 번 이상 집계됩니다. 예를 들어 기기 1대에서 사용자 2명이 2일 동안 앱을 사용하면 일일 세션 4개가 생성됩니다.

비정상 종료 발생률 측정항목에는 세 가지가 있습니다.

  • 사용자 인식 비정상 종료 발생률: 사용자 인식 비정상 종료를 한 번 이상 경험한 일일 사용자의 비율입니다. 사용자 인식 비정상 종료는 사용자가 인식했을 가능성이 높은 비정상 종료입니다. 예를 들어 앱이 활동을 표시하거나 포그라운드 서비스로 실행될 때 발생하는 비정상 종료입니다. 이 측정항목은 일일 사용량을 기준으로 정규화되지만 모든 비정상 종료를 집계하지는 않으므로, 전체 비정상 종료 발생률보다 항상 낮습니다.
    사용자 인식 비정상 종료 발생률은 핵심 vitals에 속하는 요소로, Google Play에서 앱의 검색 가능 여부에 영향을 미칩니다. 사용자 인식 비정상 종료 발생률에 집계되는 비정상 종료는 항상 사용자가 앱을 사용할 때 발생하여 가장 큰 지장을 유발하므로 중요합니다. 따라서 앱이 이 측정항목에 대한 비정상적인 동작 기준점을 초과하지 않도록 해야 합니다.
  • 비정상 종료 발생률: 비정상 종료를 한 번 이상 경험한 일일 사용자의 비율입니다. 이 측정항목에는 사용자가 인지한 것으로 분류되지 않은 비정상 종료가 포함되지만 이러한 비정상 종료가 사용자에게 영향을 미치지 않는다고 보장할 수는 없습니다.

  • 다중 비정상 종료 발생률: 비정상 종료를 두 번 이상 경험한 일일 사용자의 비율입니다. 이 측정항목은 문제 루프를 강조표시하는 데 도움이 됩니다.

문제 해결

Android 개발자 사이트에서는 비정상 종료를 진단하고 해결하는 방법에 관한 안내를 제공합니다.

시작 및 로드 시간

시작 시간(처음 표시하는 데 걸린 시간)

시작 시간 페이지에서는 앱이 콜드, , 시스템 상태에서 천천히 시작될 때에 관한 세부정보를 볼 수 있습니다. 시작 시간은 사용자가 앱을 실행한 시점부터 화면에 첫 번째 프레임이 나타나는 시점까지 걸린 시간을 측정합니다. '처음 표시하는 데 걸린 시간'이라고도 합니다.

예를 들어 앱에 로드 중인 추가 화면이 있는 경우에는 이 시간 이후에도 앱에서 사용자가 상호작용을 시작할 준비가 되지 않을 수 있습니다.

데이터 수집 세부정보

  • 시작 시간은 사용자가 활동을 시작할 때만 기록됩니다.
    • : 키보드 앱의 경우 시작 시간은 호환 앱의 시작 시간과 같습니다.
  • 앱이 같은 날 동일한 시스템 상태에서 여러 번 시작될 경우 해당 일의 최대 시작 시간이 기록됩니다.
  • 사용자가 상호작용하는 대상이 화면이 아닌 경우에도 앱의 첫 프레임이 완전히 로드되면 시작 시간이 추적됩니다.
    • : 앱이 스플래시 화면으로 시작될 경우 시작 시간은 스플래시 화면을 표시하는 데 필요한 시간과 동일합니다.

주요 세부정보

  • 영향을 받은 세션: 사용자가 각 시스템 상태에서 시작 시간을 길게 경험한 세션 비율입니다.
    • 콜드 스타트 지연: 5초 이상
    • 웜 스타트 지연: 2초 이상
    • 핫 스타트 지연: 1초 이상
  • 세션 수: 기록된 세션의 대략적인 숫자입니다.
  • 90번째/99번째 백분위수: 사용자가 앱과 관련해 느린 앱 시작 시간을 경험한 일일 세션의 10%/1%입니다.

문제 해결

앱의 시작 시간이 느린 경우가 많다면 Android 개발자 사이트에서 권장되는 해결책을 확인하세요.

렌더링

모든 렌더링

느린 세션 속도(30FPS 또는 20FPS)[게임만 해당]

중요한 이유

느린 세션을 사용하면 게임의 프레임 속도 성능을 파악할 수 있습니다. 이는 게임이 사용자에게 얼마나 매끄럽고 원활하게 진행되는지를 결정하는 데 영향을 미칩니다.

앱 데이터 이해

느린 세션 페이지에는 선택한 벤치마크에 따라 사용자가 느끼기에 30FPS 또는 20FPS보다 느린 속도로 실행되는 프레임이 25%를 초과하는 일일 세션의 비율에 관한 세부정보가 표시됩니다. 게임의 프레임 속도별 세션 분포도 확인할 수 있습니다. 세션 수준의 프레임 속도는 75번째 백분위 수에서 측정되며, 이는 전체 프레임 중 75%가 해당 프레임 속도를 달성하는 것을 의미합니다.

Google Play에 있는 대부분의 게임은 30FPS 이상을 목표로 해야 합니다. 이렇게 하면 플레이하는 게임 유형과 관계없이 사용자에게 합리적인 환경을 제공할 수 있습니다(일부 사용자는 특히 고급형 기기에서 60FPS 이상을 선호함). 느린 세션 비율(30FPS) 측정항목을 모니터링하여 이 기준을 달성하세요. 이 측정항목에는 30FPS가 누락된 프레임이 25%를 넘는 세션만 포함되므로 프레임 속도의 변동성이 어느 정도 용인됩니다.

30FPS가 합리적인 사용 환경을 제공하긴 하지만, 게임의 유형이나 경우에 따라 이보다 낮은 프레임 속도를 제공하는 것이 적절할 수 있으며, 사용자가 30FPS를 지원하지 않는 휴대전화에서 게임을 플레이하고자 할 수 있습니다. 이 시나리오에서는 한 세션에서 최소 75%의 프레임이 20FPS 이상을 달성해야 합니다. 느린 세션 비율(20FPS) 측정항목을 모니터링하여 이 기준을 충족하는지 확인하세요.

Android vitals는 기기 및 세션별로 모든 기기에서 느린 세션(30FPS)과 느린 세션(20FPS)을 보고합니다. 전반적인 측정항목을 사용하여 전반적인 사용자 환경을 이해하되 기기당 실적에도 주의를 기울이세요. 앞으로 Play는 사용자가 휴대전화에서 20FPS를 달성하지 못하는 게임은 피하도록 할 것입니다.

Vitals는 게임이 1분 동안 실행된 후에만 프레임 속도 모니터링을 시작합니다.

데이터 수집 세부정보

느린 세션 측정항목은 SurfaceFlinger에서 수집된 데이터로 계산됩니다. 더 구체적으로 세션의 프레임 속도는 앱이 소유한 표시 경로에서 그려진 프레임 간의 시간을 기준으로 추정되며 OpenGL, Vulkan, Android UI 툴킷에서 렌더링된 프레임이 포함됩니다. 이 측정항목은 현재 게임에만 사용할 수 있습니다.

느린 세션의 프레임 속도 데이터는 Android 9 이상을 실행하는 기기에서 수집됩니다.

대시보드 표시

  • 대표 프레임 속도: Android 9 이상 버전을 실행하는 기기에서의 게임의 프레임 속도 성능으로, 75번째 백분위수로 계산됩니다. 즉, 세션의 75%가 75%의 시간 동안 이 프레임 속도이거나 더 빨랐다는 의미입니다.
  • 시간 경과에 따른 느린 세션 비율: 느린 세션으로 판단된 세션의 비율을 보여주는 시계열입니다.
  • 프레임 속도 분포: 여러 세션의 75번째 백분위수 프레임 속도를 보여주는 히스토그램입니다. 즉, 세션의 프레임 중 75%가 세션을 버킷하는 데 사용된 프레임 속도보다 빨랐다는 의미입니다.

문제 해결

앱의 느린 세션 수가 많을 경우 Android 개발자 사이트에서 권장되는 해결책을 확인하세요.

Android UI 도구 키트 렌더링

과도하게 느린 프레임[앱만 해당]

앱 데이터 이해

과도하게 느린 프레임 페이지에는 기기의 드로잉 기한을 맞추지 못한 프레임이 50%를 초과하는 일일 세션의 비율에 관한 세부정보가 표시됩니다. 앱과 사용자의 상호작용은 초당 60프레임으로 실행되어야 하며, 프레임 누락이나 지연이 발생하지 않아야 합니다.

데이터 수집 세부정보

Google에서는 UI 도구 프레임워크가 사용되었을 때 앱에서 렌더링된 각 프레임의 렌더링 시간을 수집합니다. OpenGL 또는 Vulkan을 사용하여 직접 렌더링된 프레임은 수집되지 않습니다.

대시보드 표시

행을 선택하면 데이터가 백분위수로 나뉘어 표시됩니다.

  • 영향을 받은 세션: 렌더링 시간이 16ms를 초과한 프레임이 50% 이상인 일일 세션의 비율입니다. 일일 세션이란 앱이 사용된 1일을 의미합니다. 예를 들어, 사용자 2명이 2일 동안 앱을 사용하면 일일 세션 4개가 생성됩니다.
  • 세션 수: 기록된 세션의 대략적인 숫자입니다.
  • 90번째/99번째 백분위수: 총 프레임 중 90%/99%의 렌더링 시간이 표시된 숫자보다 짧았습니다. 이 숫자는 수집된 모든 프레임을 기반으로 합니다.

표의 항목을 클릭하면 'UI 렌더링 시간 분포' 차트가 표시됩니다. 차트를 검토할 때 앱 프레임의 대부분이 16ms 이하인지 확인하세요.

차트 아래에 있는 데이터에서는 앱의 렌더링 성능을 파악할 수 있으며, 렌더링 시간과 관련된 모든 문제의 근본 원인을 찾는 데 도움이 될 수 있습니다. 예를 들어 '긴 입력 지연 시간' 비율이 높다면 사용자 입력을 처리하는 앱 코드를 살펴볼 수 있습니다. 이러한 측정항목을 자세히 알아보려면 UI 성능 테스트를 확인하세요.

  • 누락된 Vsync: 16ms를 초과하여 렌더링된 모든 프레임에서 누락된 Vsync 이벤트 수를 프레임 수로 나눈 값입니다.
  • 긴 입력 지연 시간: 16ms를 초과하여 렌더링된 모든 프레임에서 24ms를 초과한 입력 이벤트 수를 프레임 수로 나눈 값입니다.
  • 느린 UI 스레드: 16ms를 초과하여 렌더링된 모든 프레임에서 UI 스레드가 완료되는 데 8ms를 초과한 횟수를 프레임 수로 나눈 값입니다.
  • 느린 그리기 명령: 16ms를 초과하여 렌더링된 모든 프레임에서 GPU로 그리기 명령어를 전송하는 데 12ms를 초과한 횟수를 프레임 수로 나눈 값입니다.
  • 느린 비트맵 업로드: 16ms를 초과하여 렌더링된 모든 프레임에서 비트맵이 GPU로 업로드되는 데 3.2ms를 초과한 횟수를 프레임 수로 나눈 값입니다.

문제 해결

앱에서 렌더링 시간이 16ms를 초과하는 프레임 수가 많은 경우 Android 개발자 사이트에서 권장되는 해결책을 확인하세요.

과도하게 정지된 프레임[앱만 해당]

앱 데이터 이해

과도하게 느린 프레임 페이지에는 기기의 드로잉 기한을 맞추지 못한 프레임이 50%를 초과하는 일일 세션의 비율에 관한 세부정보가 표시됩니다. 앱과 사용자의 상호작용은 초당 60프레임으로 실행되어야 하며, 프레임 누락이나 지연이 발생하지 않아야 합니다.

데이터 수집 세부정보

Google에서는 UI 도구 프레임워크가 사용되었을 때 앱에서 렌더링된 각 프레임의 렌더링 시간을 수집합니다. OpenGL 또는 Vulkan을 사용하여 직접 렌더링된 프레임은 수집되지 않습니다.

대시보드 표시

행을 선택하면 데이터가 백분위수로 나뉘어 표시됩니다.

  • 영향을 받은 세션: 렌더링 시간이 16ms를 초과한 프레임이 50% 이상인 일일 세션의 비율입니다. 일일 세션이란 앱이 사용된 1일을 의미합니다. 예를 들어, 사용자 2명이 2일 동안 앱을 사용하면 일일 세션 4개가 생성됩니다.
  • 세션 수: 기록된 세션의 대략적인 숫자입니다.
  • 90번째/99번째 백분위수: 총 프레임 중 90%/99%의 렌더링 시간이 표시된 숫자보다 짧았습니다. 이 숫자는 수집된 모든 프레임을 기반으로 합니다.

표의 항목을 클릭하면 'UI 렌더링 시간 분포' 차트가 표시됩니다. 차트를 검토할 때 앱 프레임의 대부분이 16ms 이하인지 확인하세요.

차트 아래에 있는 데이터에서는 앱의 렌더링 성능을 파악할 수 있으며, 렌더링 시간과 관련된 모든 문제의 근본 원인을 찾는 데 도움이 될 수 있습니다. 예를 들어 '긴 입력 지연 시간' 비율이 높다면 사용자 입력을 처리하는 앱 코드를 살펴볼 수 있습니다. 이러한 측정항목을 자세히 알아보려면 UI 성능 테스트를 확인하세요.

  • 누락된 Vsync: 16ms를 초과하여 렌더링된 모든 프레임에서 누락된 Vsync 이벤트 수를 프레임 수로 나눈 값입니다.
  • 긴 입력 지연 시간: 16ms를 초과하여 렌더링된 모든 프레임에서 24ms를 초과한 입력 이벤트 수를 프레임 수로 나눈 값입니다.
  • 느린 UI 스레드: 16ms를 초과하여 렌더링된 모든 프레임에서 UI 스레드가 완료되는 데 8ms를 초과한 횟수를 프레임 수로 나눈 값입니다.
  • 느린 그리기 명령: 16ms를 초과하여 렌더링된 모든 프레임에서 GPU로 그리기 명령어를 전송하는 데 12ms를 초과한 횟수를 프레임 수로 나눈 값입니다.
  • 느린 비트맵 업로드: 16ms를 초과하여 렌더링된 모든 프레임에서 비트맵이 GPU로 업로드되는 데 3.2ms를 초과한 횟수를 프레임 수로 나눈 값입니다.

문제 해결

앱에서 렌더링 시간이 16ms를 초과하는 프레임 수가 많은 경우 Android 개발자 사이트에서 권장되는 해결책을 확인하세요.

배터리 사용량

장기간 wake lock 및 부분적인 장기간 wake lock(백그라운드)

부분적인 장기간 wake lock부분적인 장기간 wake lock(백그라운드) 페이지에는 PowerManager 클래스를 통해 앱에서 발생한 부분적인 wake lock이 표시됩니다. 부분적인 wake lock을 사용하면 CPU는 작동하지만 화면 및 키보드 백라이트는 꺼지도록 설정할 수 있습니다.

데이터 수집 세부정보

  • 개인 정보 보호를 위해 부분적인 wake lock 식별 태그는 익명으로 처리됩니다.
  • 부분적인 wake lock 데이터는 기기가 충전 중이 아니며 화면이 꺼져 있을 때 수집됩니다.
  • 부분적인 장기간 wake lock 데이터(백그라운드)는 백그라운드에서 앱이 실행 중일 때만 수집됩니다.
  • Google에서는 부분적인 wake lock 시간의 최댓값을 배터리 세션별로 계산하여 장기간 wake lock의 영향을 받는 세션 수를 표시합니다. 예를 들어, 사용자가 1시간 길이의 wake lock을 2번 실행하면 Google에서는 1시간을 최대 wake lock 값으로 사용합니다.
  • 매니페스트 파일sharedUserId가 설정된 앱: sharedUserId가 동일한 앱이 최대 1개 설치되어 있을 경우에만 데이터가 표시됩니다.

주요 세부정보

  • 영향을 받은 세션: 사용자가 1시간을 초과하는 wake lock을 한 번 이상 경험한 배터리 세션의 비율입니다.
  • 세션 수: 기록된 세션의 대략적인 숫자입니다.
  • 90번째/99번째 백분위수: 사용자가 부분적인 wake lock을 표시된 숫자보다 길게 경험한 일일 세션의 10%/1%입니다.
  • 비정상적인 동작 임곗값: 앱이 표시된 임곗값보다 높은 발생률을 보이는 경우, Google Play의 상위 1,000개 앱 중 하위 25%에 속하게 됩니다(설치 수 기준).

문제 해결

앱에 부분적인 장기간 wake lock이 많다면 Android 개발자 사이트에서 권장되는 해결책을 확인하세요.

불필요한 wakeup

불필요한 wakeup 페이지에는 앱에서 실행된 Alarm Manager wakeup이 표시됩니다. ELAPSED_REALTIME_WAKEUP 또는 RTC_WAKEUP 클래스에 관한 wakeup 데이터를 볼 수 있습니다.

데이터 수집 세부정보

  • 개인 정보 보호를 위해 wakeup 식별 태그는 익명으로 처리됩니다.
  • wakeup은 기기가 충전 중이 아닐 때 수집됩니다.
  • 정규화된 측정항목을 제공하기 위해 wakeup 수는 기기가 배터리를 사용한 시간과 비교됩니다. Google에서는 사용자당 및 시간당 wakeup 수를 계산하여 높은 wakeup 비율의 영향을 받는 사용자 수를 표시합니다.
  • 매니페스트 파일sharedUserId가 설정된 앱: sharedUserId가 동일한 앱이 최대 1개 설치되어 있을 경우에만 데이터가 표시됩니다.

주요 세부정보

  • 영향을 받은 세션: 사용자가 wakeup을 시간당 11회 이상 경험한 배터리 세션의 비율입니다. 배터리 세션은 특정 24시간 기간 동안 수신된 모든 배터리 보고서의 집계입니다. Android 10에서 배터리 보고서는 두 번의 배터리 충전(20%에서 80% 이상으로의 충전 또는 아무 수준에서 100%로의 충전) 사이의 간격을 의미합니다. Android 11 이상에서 배터리 보고서는 고정된 24시간 기간을 나타냅니다. Google에서는 기기가 충전기에서 분리된 경우에만 데이터를 수집합니다.
  • 세션 수: 기록된 세션의 대략적인 숫자입니다.
  • 90번째/99번째 백분위수: 사용자가 시간당 wakeup을 표시된 값보다 더 많이 경험한 일일 세션의 10%/1%입니다.
  • 비정상적인 동작 임곗값: 앱이 표시된 임곗값보다 높은 발생률을 보이는 경우, Google Play의 상위 1,000개 앱 중 하위 25%에 속하게 됩니다(설치 수 기준).

문제 해결

앱에서 wakeup이 자주 발생하는 경우 Android 개발자 사이트에서 권장되는 해결책을 확인하세요.

불필요한 Wi-Fi 검색(백그라운드)

불필요한 Wi-Fi 검색(백그라운드) 페이지는 Wi-Fi 검색으로 인해 배터리 소모가 많을 경우 표시됩니다.

데이터 수집 세부정보

Wi-Fi 검색 관련 데이터는 기기가 충전 중이 아니며 앱이 백그라운드에 있을 때 수집됩니다.

주요 세부정보

  • 영향을 받은 세션: 사용자가 시간당 4회 이상의 Wi-Fi 검색을 경험한 배터리 세션의 비율입니다.
  • 세션 수: 기록된 세션의 대략적인 숫자입니다.
  • 90번째/99번째 백분위수: 사용자가 시간당 백그라운드 Wi-Fi 검색을 표시된 값보다 더 많이 경험한 일일 세션의 10%/1%입니다.

문제 해결

앱에 백그라운드 Wi-Fi 검색 횟수가 많을 경우 Android 개발자 사이트에서 권장되는 해결책을 확인하세요.

불필요한 네트워크 사용(백그라운드)

불필요한 네트워크 사용 페이지는 백그라운드 서비스와 관련된 네트워크 데이터가 많을 경우 표시됩니다. 백그라운드에서 모바일 네트워크가 사용될 경우 사용자는 데이터 전송을 중지하기 위한 컨트롤에 쉽게 액세스할 수 없습니다.

데이터 수집 세부정보

모바일 네트워크 사용량 관련 데이터는 기기가 충전 중이 아니며 앱이 백그라운드에 있을 때 수집됩니다.

주요 세부정보

  • 영향을 받은 세션: 하루에 50MB가 넘는 백그라운드 네트워크 사용이 발생한 배터리 세션의 비율입니다.
  • 세션 수: 기록된 세션의 대략적인 숫자입니다.
  • 90번째/99번째 백분위수: 하루에 백그라운드 네트워크 사용량이 표시된 숫자보다 많았던 일일 세션의 10%/1%입니다.

문제 해결

앱의 백그라운드 네트워크 사용량이 많은 경우 Android 개발자 사이트에서 권장되는 해결책을 확인하세요.

권한

권한 거부율

권한 거부율 페이지에서 사용자가 권한을 거부한 일일 권한 세션의 비율을 확인할 수 있습니다. 일일 권한 세션이란 앱에서 사용자에게 1번 이상 권한을 요청한 1일을 의미합니다.

데이터 수집 세부정보

권한 거부 관련 데이터는 사용자가 앱 내에서 권한 요청에 동의한 경우 수집됩니다.

주요 세부정보

  • 거부: 사용자가 권한을 거부한 일일 권한 세션의 비율입니다.
  • 다시 묻지 않음: 사용자가 권한을 거부하고 다시 묻지 않음을 선택한 일일 권한 세션의 비율입니다.
  • 총 세션 수: 기록된 세션의 대략적인 숫자입니다.

문제 해결

앱에 권한 거부 횟수가 많은 경우 Android 개발자 사이트에서 권장되는 해결책을 확인하세요.

핵심 vitals에 대한 비정상적인 동작 기준점

Google Play는 앱의 핵심 vitals에 대해 비정상적인 동작 기준점을 정의했습니다.

앱이 비정상적인 동작 기준점을 초과하면 Google Play에서 검색 가능성이 작아질 수 있습니다. 앱이 특정 기기 모델에서 비정상적인 동작을 보이는 경우 Google Play는 해당 기기의 사용자가 이러한 앱에서 벗어나 더 적합한 앱을 이용하도록 유도합니다. 경우에 따라 앱의 스토어 등록정보에 경고가 표시되어 사용자의 기대치를 설정하고 더 높은 기술 품질을 가진 대안을 찾을 수 있는 옵션을 제공할 수 있습니다.

Google Play에서는 일반적으로 앱 품질을 평가할 때 지난 28일간의 데이터를 고려하지만 급증 시 더 짧은 기간의 데이터로 조치를 취할 수 있습니다.

모두 접기 모두 펼치기

안정성

사용자 인식 ANR 발생률 기준점

Google Play는 사용자 인지 ANR 발생률에 대해 비정상적인 동작 기준점을 정의했습니다.

  • 전체 비정상적인 동작: 일일 활성 사용자의 0.47% 이상이 모든 기기 모델에서 사용자 인식 ANR을 경험합니다.

  • 기기별 비정상적인 동작: 일일 활성 사용자의 8% 이상이 단일 기기 모델에서 사용자 인식 ANR을 경험합니다.

ANR 발생률을 개선하려면 비정상 종료 및 ANR 페이지에 보고된 기본 ANR 클러스터를 해결하세요. 영향을 받는 사용자 수가 많을수록 해당 클러스터가 ANR 발생률에 더 많은 영향을 미칩니다.

기기 하드웨어 또는 소프트웨어의 특정 측면이 ANR 발생률에 영향을 주는 경우 Android vitals에서 알려 줍니다. 도달범위 및 기기 개요 페이지(출시 > 도달범위 및 기기 > 개요)에서 직접 연결을 살펴볼 수도 있습니다.

사용자 인식 비정상 종료 발생률 기준점

Google Play는 사용자 인식 비정상 종료 발생률에 대해 비정상적인 동작 기준점을 정의했습니다.

  • 전체 비정상적인 동작: 일일 사용자의 1.09% 이상이 모든 기기 모델에서 사용자 인식 비정상 종료를 경험합니다.

  • 기기별 비정상적인 동작: 일일 사용자의 8% 이상이 단일 기기 모델에서 사용자 인식 비정상 종료를 경험합니다.

비정상 종료 발생률을 개선하려면 비정상 종료 및 ANR 페이지에 보고된 기본 비정상 종료 클러스터를 해결하세요. 영향을 받는 사용자 수가 많을수록 해당 클러스터가 비정상 종료 발생률에 더 많은 영향을 미칩니다.

기기 하드웨어 또는 소프트웨어의 특정 측면이 비정상 종료 발생률에 영향을 주는 경우 Android vitals에서 알려 줍니다. 도달범위 및 기기 개요 페이지(출시 > 도달범위 및 기기 > 개요)에서 직접 연결을 살펴볼 수도 있습니다.

관련 콘텐츠

Android vitals를 사용하여 앱의 성능 및 안정성을 개선하기 위한 권장사항을 알아보세요.

도움이 되었나요?

어떻게 하면 개선할 수 있을까요?

도움이 더 필요하신가요?

다음 단계를 시도해 보세요.

검색
검색어 지우기
검색 닫기
Google 앱
기본 메뉴