2012-01-26 26 views
17

Necesito hacer un seguimiento del uso de la aplicación en Android, como la forma en que lo hace AppUsage (es decir, el número de seguimiento del lanzamiento de la aplicación y el tiempo de uso de cada uno). Lo que planeo hacer es registrar la hora de inicio cuando se lanza una aplicación, y luego obtener la hora de finalización cuando una aplicación se detiene o se detiene. En LogCat, puedo ver los registros del inicio de la actividad. He visto las transmisiones disponibles del sistema, no estoy seguro de si hay algo que transmite cada vez que se inicia una actividad. . Básicamente, ¿cómo puedo detectar cuándo se lanza una actividad?Cómo rastrear el uso de la aplicación en Android? ¿Cómo detectar cuándo se lanza una actividad?

Editar: Por otra parte, Android también tiene un sistema de estadísticas de uso disponibles internamente que se puede encontrar en la aplicación de piezas de repuesto o cuando *#*#4636#*#* se marca (Pruebas -> Estadísticas de uso)

+0

de línea '# * # 4636 # * #' no funciona para mí: ' problema de conexión o no válido MMI-Code' –

Respuesta

12

Ahora podemos acceder al historial de uso de la aplicación en un dispositivo Android con la nueva API android.app.usage lanzada como parte de las API de Android 5.0. El sistema recopila los datos de uso por aplicación, agregando los datos a diario , intervalos semanales, mensuales y anuales

para cada aplicación, el sistema registra los siguientes datos:

la última vez que se utilizó la aplicación la longitud total de tiempo que la aplicación fue en primer plano para ese intervalo de tiempo (por día, semana, mes o año) Captura de marca de tiempo cuando un componente (identificado por un nombre de paquete y actividad) pasa al primer plano o al fondo du sonar una captura de marca de hora día cuando una configuración de dispositivo cambia (por ejemplo, cuando la orientación del dispositivo ha cambiado debido a la rotación)

Refr: http://developer.android.com/reference/android/app/usage/package-summary.html

+0

¿Puedo verificar cuántas veces se ha usado la aplicación usando UsageStats? –

+0

pero el campo 'Context.USAGE_STATS_SERVICE' fue agregado desde API 22 (Android 5.1), entonces ¿cómo obtener esas estadísticas antes de API 22? –

4

Básicamente, ¿cómo detectar cuando se lanza una actividad?

Usted no lo hace. No hay nada en el SDK de Android para "la hora de inicio cuando se inicia una aplicación" ni "la hora de finalización cuando una aplicación se detiene o detiene".

Lo que la aplicación que usted cita probablemente esté haciendo perder mucho tiempo de CPU, RAM y duración de la batería, sondeando ActivityManager continuamente.

Tenga en cuenta que lo que propone rastrear, si planea tener a alguien que no sea el usuario, bordea las violaciones de privacidad del tipo que generó una gran cantidad de problemas en CarrierIQ.

+1

Según [Descripción AppUsage del mercado androide] (https://market.android.com/details?id=com.smartappers.appusage&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5zbWFydGFwcGVycy5hcHB1c2FnZSJd): AppUsage _ no usa prácticamente la energía de la batería, ¡solo registra cuando cambia las aplicaciones, a diferencia de otras que verifican cada x segundos! _ - No estoy seguro de cómo AppUsage está haciendo esto. Esto es para un proyecto de tesis que recomienda aplicaciones a los usuarios. Uno de los requisitos es hacer un seguimiento del uso de la aplicación. – sofiaguyang

+2

@Sofia: echaré un vistazo a su aplicación e informaré a Google si están explotando una falla de seguridad. ¡Gracias por traer esto a mi atención! – CommonsWare

+2

Internamente, Android también tiene un sistema de estadísticas de uso disponible que se puede encontrar en la aplicación Repuestos o cuando se marca '* # * # 4636 # * # *'. Pruebas -> Estadísticas de uso – sofiaguyang

Cuestiones relacionadas