Aplicaciones que envían spam a mi registro

Estuve mirando mi registro recientemente para obtener más desarrollo de aplicaciones de Android, y noté que mi registro está lleno de todo tipo de información que no consideraría necesaria para registrar.

Con el tiempo, he notado que mi teléfono se vuelve más lento. Incluso me he dado cuenta en este punto, firmware completamente almacenado con una serie de aplicaciones de Play Store, ejecutando música en este momento, y Eclipse ni siquiera puede mantenerse al día con la salida del registro en el registro detallado.

Mi pregunta está relacionada con esto. ¿Se almacenan los registros durante un tiempo que podría causar que el espacio desaparezca gradualmente? ¿Hay alguna manera de desactivar algunas funciones de registro para no grabar en "disco" cosas como detalladas, cuando las aplicaciones ni siquiera las necesitan? Siempre he pensado que el registro debe realizarse si se trata de un error, no "solo porque sí". Si se trata de información de depuración, entonces la versión de lanzamiento no debería registrar tanta salida (se hace fácilmente con un simple cambio de variable). ¿Estoy equivocado en este pensamiento?

¡Gracias de antemano!

También estoy interesado en los recursos que podrían explicar algunas "mejores prácticas" cuando se trata de registro. No quiero registrar tantos datos que ralenticen la aplicación o el sistema, pero aún así quiero que sea útil si alguien experimenta un bloqueo.

Respuestas (2)

Los registros de Android se almacenan en un búfer de anillo interno . Como tal, no veo cómo incluso las aplicaciones demasiado detalladas podrían ralentizar el sistema simplemente a través del registro.

¿Quizás si pudieras ampliar eso? Lo he revisado, parece que solo obtiene datos aleatorios, los ensambla y los escupe de manera coherente. ¿Se genera un archivo de registro, como el syslog de las máquinas Linux?
Un búfer de anillo es una forma de almacenar datos para que no crezca más allá de un cierto tamaño. Una vez que tenga más de X bytes/líneas/lo que sea, sobrescribe los datos más antiguos con los más nuevos.

Si los registros realmente te están molestando, puedes manejarlos de dos maneras.

Las opciones uno es apagarlas. Puedes hacer esto con

adb shell setprop log.tag.BadTag ERROR

Eso solo los registrará si es un error o superior, pero tendrá que eliminar la aplicación antes de que escuche.

La segunda opción es usar logcat directamente y filtrar lo que no te importa. Tengo un script logcat que se parece a esto:

hounshell@hounshell:/home/hounshell/scripts$ cat logcat 
#!/bin/bash

for arg; do
    if [[ "$arg" == *:* ]]; then
        args="$args $arg "
    else
        args="$args $arg:* "
    fi
done

exec adb logcat \
  dalvikvm:W \
  ActivityManager:W \
  AndroidRuntime:W \
  ${args[@]} \
  *:S

Esto solo registrará cosas que generalmente me importan. Lo llamas así ./logcat MyTag0 MyTag1:W MyTag2 MyTag3:DEsto registrará todo para las etiquetas MyTag0 y MyTag2, las advertencias de MyTag1 y la depuración de MyTag3. La desventaja aquí es que no está directamente en Eclipse (personalmente lo considero una ventaja, pero estoy divagando).