¿Cuál es la diferencia entre ANR y crash en Android?

He buscado en internet lo que es una ANR. Y estudié esas referencias también. Pero no tengo detalles sobre un accidente en Android.

¿Puede alguien decirme la diferencia entre ANR (Android no responde) y un accidente en Android?

ANR significa Aplication N ot R esponding.

Un ANR se producirá si está ejecutando un proceso en el subproceso de interfaz de usuario que tarda mucho tiempo, generalmente alrededor de 5 segundos. Durante este tiempo se bloqueará la interfaz gráfica de usuario (Graphical User Interface), lo que resultará en cualquier acción que el usuario presione no se activará. Después de que hayan transcurrido los 5 segundos aproximadamente, si el hilo todavía no se ha recuperado, aparecerá un cuadro de diálogo ANR informando al usuario que la aplicación no responde y le dará al usuario la opción de esperar, con la esperanza de que la aplicación Eventualmente recuperar, o forzar cerrar la aplicación.

Un bloqueo es cuando se ha lanzado una excepción dentro de la aplicación que no se ha tratado. Por ejemplo, si intenta establecer el texto de un componente EditText, pero EditText es nulo y no hay ninguna sentencia try catch para detectar la excepción de que su aplicación se bloqueará y se cerrará forzosamente. El usuario no verá qué causó el accidente, se mostrará un diálogo diciendo que la aplicación se ha cerrado la fuerza de forma inesperada y les dará la opción de enviar un informe de error. En este ejemplo, si tuvieras que buscar en el informe de errores, verías el error causado por java.lang.NullPointerException.

Espero que esto ayude.

ANR (Aplication N ot R esponding) se debe a la long running task in Main Thread (hilo UI). Si el hilo principal se detiene durante más de 5 s se obtiene ANR.

Crash se deben a la exception and error como Nullpoint, classNotfound, typecast, analizar el error, etc ANR también causa bloqueo de la aplicación.

Nota: Nunca ejecute la tarea de ejecución larga en el hilo de la interfaz de usuario

Referencia ANR

ANR significa Application Not Responding, lo que significa que su aplicación no registra eventos en el subproceso de interfaz de usuario ya que se ejecuta una operación de ejecución larga allí

 ANR: It is called when anything your application is doing in the UI thread that takes a long time to complete (5 sec approx) 

Referencia: ANR

 Crash: It is called when your Application gets some Error or Exception raised by the DVM 

ANR significa aplicación no responde y su ocurre cuando la operación larga ocurre en el hilo principal ……

Las fallas se deben a excepciones y errores como Nullpoint,

ANR por ejemplo: si está descargando gran cantidad de datos en el hilo ui, meny otras posibilidades como la memoria insuficiente, etc que vendrá .. probablemente conduce a accidentes en android, no podemos decir que ambos son los mismos sigue uno

ANR también causó por-

  1. Ninguna respuesta a un evento de entrada (como presionar teclas o eventos de toque de pantalla) dentro de 5 segundos.
  2. Un BroadcastReceiver no ha terminado de ejecutarse en 10 segundos.

La aplicación no responde (ANR):

ANR se mostrará en las siguientes condiciones:

  • Respuesta al evento de entrada (como pulsar una tecla o tocar la pantalla incluso) dentro de 5 seg.

  • Un receptor de difusión no ha terminado de ejecutar dentro de 10 seg.

¿Cómo evitar los ANR?

  • Cree un hilo de trabajo diferente para operaciones largas como operaciones de base de datos, operaciones de red, etc.

Reforzar la capacidad de respuesta: En la aplicación android por lo general, de 100 a 200 ms es el umbral más allá del cual el usuario se sentirá que la aplicación es lenta. Los siguientes son los consejos a través de los cuales podemos mostrar la aplicación más sensible.

  • Mostrar diálogo de progreso siempre que esté haciendo cualquier trabajo de fondo y un usuario está esperando la respuesta.

  • Para juegos específicamente, hacer cálculos para movimientos en el hilo de trabajo.

  • Mostrar pantalla de bienvenida si la aplicación tiene una configuración inicial que requiere mucho tiempo.

Crash: El bloqueo es condición no controlada en la aplicación y cerrará con fuerza nuestra aplicación. Algunos de los ejemplos de accidentes son como la excepción de Nullpointer, la excepción de estado ilegal, etc.

ANR significa aplicación no responde .

Puede ocurrir debido a muchas razones como si una aplicación bloquea alguna operación de E / S en el subproceso de interfaz de usuario para que el sistema no pueda procesar los eventos entrantes de entrada del usuario. O tal vez la aplicación pasa demasiado tiempo construyendo una elaborada estructura en memoria o calculando el siguiente paso en el subproceso de la interfaz de usuario.

Si bloquea el hilo principal , no se producirá un bloqueo, pero se mostrará una ventana emergente para permitir que los usuarios eliminen la aplicación después de 5 segundos.

Pero para Crash , la razón principal es los errores humanos. La mayoría de las veces una aplicación se bloquea debido a un error de codificación / diseño hecho por humanos

Errores Humanos

Falta de pruebas

Excepción de puntero nulo

Sin memoria

Ejemplo:

Esto es común cuando un programador hace una referencia a un objeto o variable que no existe, básicamente creando un error de puntaje nulo.

Si tiene una conexión incorrecta, también puede hacer que sus aplicaciones se bloqueen. La aplicación también podría tener problemas de administración de memoria.

Consulte mi respuesta para el tipo de excepción específica de Android que puede causar el bloqueo.

Excepción específica de Android

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.