Úgy tűnik, hogy a böngészőjét nem támogatja az alkalmazásunk.

Gyakori bűnösök

Az ANR-eket általában azért váltja ki, mert az alkalmazás a következőket végzi:

  1. Lassú műveleteket hajt végre I/O-val a főszálon.
  2. Hosszú számításokat végez a főszálon.
  3. Szinkron köteghívást hajt végre a főszálon, és a másik folyamatnak időbe telik a válaszadás.
  4. Várakozik a főszálon egy másik szálra, amely hosszú műveletet hajt végre.
  5. Elakad egy holtponti helyzetben. Holtpontok akkor fordulhatnak elő a főszálban, ha olyan erőforrásokra vár, amelyeket egy másik folyamat nem szabadított fel, így nem tudja megszerezni a szükséges erőforrásokat. Ezek a más folyamatok lehetnek egy másik szálban, a te folyamatodban vagy egy köteghívásban.

Diagnosztikai technikák

Strict mód használata

A StrictMode segítségével megtalálhatjuk a véletlen I/O műveleteket.

Az StrictMode-ról bővebben a hivatalos dokumentációban olvashat.

Háttérben futó ANR-dialógusok engedélyezése a fejlesztői beállításokban

Nem minden ANR látható a felhasználó számára, ezért előfordulhat, hogy az alkalmazás teljesítményproblémákkal küzd anélkül, hogy a felhasználó észrevenné. Engedélyezze a háttérben megjelenő ANR párbeszédpaneleket a fejlesztői beállításokban.

A nyomkövetési fájlok megtekintése az adb használatával

A nyomkövetési fájlok egy ANR esemény során keletkeznek. Ezeket a fájlokat az Android Debug Bridge (adb) segítségével húzhatja ki root felhasználóként a következő parancsokkal:

adb rootadb shell ls /data/anradb pull /data/anr/<filename>

Szólj hozzá!