비정상 종료

처리되지 않은 예외나 신호로 인해 예상치 못한 종료가 발생할 때마다 Android 앱이 비정상 종료됩니다. 자바 또는 Kotlin을 사용하여 작성된 앱은 Throwable 클래스로 표현되는 처리되지 않은 예외가 발생하면 비정상 종료됩니다. 기계어 코드 또는 C++를 사용하여 작성된 앱은 실행 중에 SIGSEGV와 같은 처리되지 않은 신호가 있는 경우 비정상 종료됩니다.

Android vitals 측정항목 및 기준점

Android vitals를 사용하면 앱의 비정상 종료 발생률을 모니터링하고 개선할 수 있습니다. Android vitals는 다음과 같은 비정상 종료 발생률을 측정합니다.

  • 비정상 종료 발생률: 비정상 종료를 경험한 일일 활성 사용자의 비율입니다.
  • 사용자 인식 비정상 종료 발생률: 앱을 활발히 사용하는 동안 비정상 종료(사용자 인식 비정상 종료)를 한 번 이상 경험한 일일 활성 사용자의 비율입니다. 앱은 활동을 표시하거나 포그라운드 서비스를 실행하는 경우 활성 사용 상태로 간주됩니다.

  • 다중 비정상 종료 발생률: 비정상 종료를 두 번 이상 경험한 일일 활성 사용자의 비율입니다.

일일 활성 사용자는 한 기기에서 하루에 여러 세션에 걸쳐 앱을 사용하는 순 사용자입니다. 사용자가 하루에 두 대 이상의 기기에서 앱을 사용하는 경우 각 기기는 해당 날짜의 활성 사용자로 계산됩니다. 여러 사용자가 하루 동안 동일한 기기를 사용하는 경우 활성 사용자 한 명으로 계산됩니다.

사용자 인식 비정상 종료 발생률은 핵심 vitals에 속하는 요소로, Google Play에서 앱의 검색 가능 여부에 영향을 미칩니다. 사용자 인식 비정상 종료 발생률에 집계되는 비정상 종료는 항상 사용자가 앱을 사용할 때 발생하여 가장 큰 지장을 유발하므로 중요합니다.

Play에서는 이 측정항목에 대해 비정상적인 동작 기준 두 가지를 정의했습니다.

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

앱이 전반적 비정상적인 동작 기준을 초과하면 모든 기기에서 검색 가능성이 낮아질 수 있습니다. 앱이 일부 기기에서 기기별 비정상적인 동작 기준을 초과하면 해당 기기에서 검색 가능성이 낮아질 수 있으며 스토어 등록정보에 경고가 표시될 수도 있습니다.

앱에서 비정상 종료가 과도하게 발생하면 Android vitals에서 Play Console을 통해 알림을 보낼 수 있습니다. Android vitals에서 비정상 종료 스택 트레이스를 확인할 수도 있습니다.

Google Play에서 Android vitals 데이터를 수집하는 방법에 관한 자세한 내용은 Play Console 문서를 참고하세요.