ANR
Skrót od „Application Not Responding” (aplikacja nie odpowiada). ANR to skrót opisujący nieodpowiadającą aplikację Android. Gdy aplikacja działa na urządzeniu z systemem Android i przestaje odpowiadać, wywoływane jest zdarzenie „ANR”. Dwa warunki mogą spowodować błąd ANR na urządzeniu z systemem Android:
- Aktywna aplikacja nie odpowiada na zdarzenie wejściowe w ciągu 5 sekund.
- Klasa BroadcastReceiver nie kończy wykonywania przez długi czas.
Jeśli na urządzeniu z systemem Android wystąpi błąd ANR, na ekranie pojawi się okno dialogowe. Komunikat poinformuje, że aplikacja nie odpowiada, i zapyta, czy chcesz ją zamknąć. Dostępne są dwie opcje: lub . Wybranie opcji „Czekaj” pozwoli nadal czekać, jeśli chcesz dać aplikacji więcej czasu. Wybranie opcji „OK” zamknie aplikację, a niezapisane działania mogą zostać utracone.
Błędy ANR występują z wielu różnych powodów. Niektóre są związane z programistą, na przykład źle napisana funkcja, która wykonuje pętlę więcej razy, niż jest to konieczne. Inne są związane z urządzeniem — oznacza to, że sprzęt nie może sprostać wymaganiom aplikacji. Na przykład jeśli aplikacja renderuje duży dokument, wczytanie danych i wyrenderowanie obrazu na ekranie może potrwać kilka sekund. Może to spowodować wyświetlenie komunikatu ANR, choć proces może zakończyć się kilka sekund później.
Programiści
Ponieważ ANR pogarszają komfort korzystania z aplikacji, programiści starają się ich unikać lub przynajmniej w jak największym stopniu ograniczać liczbę takich przypadków. System operacyjny Android rejestruje ANR i powiązane z nimi działania, aby pomóc programistom debugować aplikacje. Jeśli aplikacja jest rozpowszechniana za pośrednictwem Google Play, dane ANR są automatycznie wysyłane do Google. Programiści mogą przeglądać dane ANR w sekcji Android Vitals w konsoli deweloperskiej.
NOTE: Dane osobowe nie są przesyłane wraz z danymi ANR. Rejestrowane są tylko wersja aplikacji, wersja systemu Android, typ urządzenia oraz dane dotyczące działania, takie jak bieżący proces.
Sprawdź swoją wiedzę
