10 votos

¿Cómo puedo saber cuándo se usó una aplicación en Android?

¿Existe alguna manera de saber cuándo se utilizó una aplicación en un teléfono Android?

Específicamente me interesa las funciones de cámara y galería. Creo que mi compañero de cuarto revisó mis fotos sin permiso, y he intentado ver la caché de la aplicación Galería pero no logro encontrar cómo hacerlo.

¿Estoy siguiendo el camino correcto? Él lo tuvo por un intervalo de veinte minutos, y quiero ver si la Galería fue accedida durante ese período de tiempo.

19voto

Firelord Puntos 161

Android permite ver las estadísticas de uso desde la interfaz gráfica de usuario. Así es como puedes verlo. ( Fuente por Kevin Swartz)

  1. En su marcador predeterminado, escriba *#*#4636#*#* . Abriría una ventana llamada Prueba que es un subconjunto de Ajustes app.
  2. Ve a Estadísticas de uso .

    IMG:

    Para Lollipop :

    • Ordena el tiempo en Ordenar por: basado en Tiempo de uso o La última vez que se usó o Nombre de la aplicación .
    • El orden de las entradas es App , La última vez que se usó y Tiempo de uso .

      (Haga clic en la imagen para ampliarla)

      IMG: IMG: IMG:

      Para Jelly Bean 4.2.1 a Kitkat 4.4.2 :

      • Ordena el tiempo en Ordenar por: basado en Tiempo de uso o Recuento de lanzamientos o Nombre de la aplicación .
      • El orden de las entradas es App , Cuenta y Tiempo de uso .

      (Haga clic en la imagen para ampliarla)

      IMG: IMG: IMG:

      El tiempo de uso en estas versiones de Android se muestra en milisegundos (ms). Puedes hacer cálculos por tu cuenta, o probar una herramienta de conversión como este para convertirlos instantáneamente en minutos.

No te olvides del BDA

Alternativamente, puedes saltar directamente a la Estadísticas de uso ventana usando adb . Introduzca este comando:

Para Android Lollipop:

   adb shell am start -n com.android.settings/.UsageStatsActivity

Para el Android 4.2.1 a 4.4.2:

   adb shell am start -n com.android.settings/.UsageStats

Ver esta respuesta si te interesa saber el papel de los parámetros en esos comandos.

También puedes hacer adb shell dumpsys usagestats ( Fuente por Jinghao Shi) que para Android 4.2.1 y 4.4.2 no dio nada más útil que lo ya cubierto en las capturas de pantalla publicadas anteriormente para ellos.

Lollipop muestra una salida más comprensible para el usuario final en comparación con sus predecesores,

In-memory daily stats
  timeRange="8/29/2015, 8:34 AM â 8/30/2015, 1:41 AM" 
    packages
      package=com.android.documentsui totalTime="00:07" lastTime="8/30/2015, 1:35 AM" 
      package=com.android.browser totalTime="00:02" lastTime="8/30/2015, 1:35 AM" 
      package=com.android.camera2 totalTime="00:05" lastTime="8/30/2015, 1:37 AM" 
...
...
events
      time="8/30/2015, 1:34 AM" type=MOVE\_TO\_BACKGROUND package=com.android.deskclock class=com.android.deskclock.DeskClock 
      time="8/30/2015, 1:34 AM" type=MOVE\_TO\_FOREGROUND package=com.android.dialer class=com.android.incallui.InCallActivity 
      time="8/30/2015, 1:34 AM" type=MOVE\_TO\_FOREGROUND package=com.android.dialer class=com.android.dialer.DialtactsActivity 
...
...
In-memory weekly stats
  timeRange="8/27/2015, 5:30 AM â 8/30/2015, 1:41 AM" 
    packages
      package=com.android.documentsui totalTime="00:07" lastTime="8/30/2015, 1:35 AM" 
      package=com.android.browser totalTime="00:02" lastTime="8/30/2015, 1:35 AM" 
      package=com.android.camera2 totalTime="00:05" lastTime="8/30/2015, 1:37 AM"
...
...
In-memory monthly stats
  timeRange="8/9/2015, 8:34 AM â 8/30/2015, 1:41 AM" 
    packages
      package=com.android.documentsui totalTime="00:07" lastTime="8/30/2015, 1:35 AM" 
      package=com.android.browser totalTime="00:02" lastTime="8/30/2015, 1:35 AM" 
      package=com.android.camera2 totalTime="00:05" lastTime="8/30/2015, 1:37 AM"
...
...
In-memory yearly stats
  timeRange="12/21/2014, 5:30 AM â 8/30/2015, 1:41 AM" 
    packages
      package=com.android.documentsui totalTime="00:07" lastTime="8/30/2015, 1:35 AM" 
      package=com.android.browser totalTime="00:02" lastTime="8/30/2015, 1:35 AM" 
      package=com.android.camera2 totalTime="00:05" lastTime="8/30/2015, 1:37 AM"

Ahora puedes navegar por la lista para encontrar la aplicación de Cámara y Galería, y ver su valor de "última vez que se usó", para Lollipop, es decir. Desafortunadamente, la información en esta sección no ayudaría a los dispositivos que funcionan con el predecesor de Lollipop, a menos que el dispositivo esté rooteado, o que encuentres una aplicación que pueda darte estadísticas de paquetes.

Además, en tu caso particular, toda esta información sería útil sólo si no hubieras lanzado la cámara, la galería o una aplicación en particular de tu interés después de que tu amigo terminara de usar el teléfono, ya que la marca de tiempo de esa aplicación se actualiza a la nueva "Última vez que se usó", para todas las versiones de Android que mencioné.


La siguiente sección funcionaría si el dispositivo está rooteado.


Para Jelly Bean (4.2.1) a Kitkat (4.4.2)

Android mantiene un registro de cuando una aplicación (su componente) fue usada por última vez. Puede dirigirse a /data/system/usagestats/ usando un explorador de archivos con acceso Root o usando adb .

Habría un archivo llamado usage-history.xml y algunos otros archivos con la convención de nombres como usage-YYMMDD donde:

  • YYYY - Año
  • MM - Mes
  • DD - Fecha

Por ejemplo. usage-20150729 es el archivo creado el 29 de julio de 2015.

Que .xml es un archivo XML plano, así que deberías poder verlo en un editor de texto. Esos usage-YYMMDD son data archivos ( charset=binary ) y mi editor de texto Kate no podía abrirlos en forma legible para los humanos. Sin embargo, cat <FILE> hace el trabajo, así que como la aplicación Android QuickEdit no completamente, debo añadir.

La plantilla básica de las entradas en ese .xml El archivo es:

<pkg name="">
  <comp name="" />
  <comp name="" />
  ...
  <comp name="" />
</pkg>

Por ejemplo, estas son las siguientes entradas para el AFWall+ app:

<pkg name="dev.ukanth.ufirewall">
  <comp name="dev.ukanth.ufirewall.MainActivity" lrt="1438134244890" />
  <comp name="dev.ukanth.ufirewall.widget.ToggleWidgetOldActivity" lrt="1435337932669" />
  <comp name="dev.ukanth.ufirewall.HelpActivity" lrt="1416601650972" />
  ...
</pkg>

El lrt contra cada componente ( comp ) es el Tiempo de Unix . Para que sea legible para los humanos, use Conversor de época o cualquier cosa que pueda convertir el tiempo de Unix en tiempo legible para los humanos.

Por ejemplo. 1438134244890 es la hora de Unix en la que accedí a la actividad principal de AFWall+ (es la vista por defecto) y la hora convertida es Wed, 29 Jul 2015 01:44:04 GMT lo cual es correcto.

En cuanto al contenido de usage-YYMMDD verás las actividades de las aplicaciones que visitaste ese día. No hay ningún sello de tiempo allí.

Para Lollipop

El pirulí tiene cambios considerables en lo que respecta a la recopilación de estadísticas de uso de una aplicación. Ver nota oficial de Google aquí .

El concepto de usage-history.xml y usage-YYMMDD no se aplica aquí. En su lugar, tienes directorios llamados daily , monthly , weekly , yearly . Todos tienen archivos que adivinó bien, con nombres numéricos, nada más que el tiempo de Unix como 1440374400000 .

Un archivo típico bajo daily tiene el contenido:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<usagestats version="1" endTime="66355190">
    <packages>
        <package lastTimeActive="66153798" package="com.android.providers.media" timeActive="2974" lastEvent="2" />
        <package lastTimeActive="66329769" package="net.dinglisch.android.taskerm" timeActive="64172" lastEvent="2" />
        <package lastTimeActive="66150806" package="android" timeActive="1942" lastEvent="2" />
...
...
    <event-log>
        <event time="43080692" package="android" type="5" fs="1065353216" mcc="404" mnc="97" />
        <event time="43087204" package="com.android.launcher3" class="com.android.launcher3.Launcher" type="2" />
        <event time="43087329" package="com.android.settings" class="com.android.settings.Settings" type="1" />

Ahora bien, esto es en realidad lo mismo que vimos en usagestat pero el tiempo está en su forma pura. No tengo ni idea de cómo entender el tiempo aquí y mucho menos convertirlo en una forma legible para los humanos. Los desarrolladores deben ser capaces de hacerlo .

Si usted lo que es y cómo convertir ( como un usuario final ) entonces por favor hágamelo saber o publique una respuesta aquí.


0 votos

¿Has intentado abrir el archivo de configuración con Notepad++? No tengo permisos de root así que no puedo verificarlo yo mismo.

0 votos

@Suerte No probé Windows; estoy usando Slackware Linux aquí. Puedes intentar abrirlo en tu sistema. Aquí está el archivo. No parece contener ninguna configuración, así que posiblemente no lo llamaría un archivo de configuración. :)

0 votos

Podría abrirse en los editores Notepad++ y Sublime Text. Sublime lo abre como datos en formato HEX.

2voto

Lucky Puntos 122

Si tu teléfono fue el último en usarse o si deseas averiguar qué aplicaciones se están ejecutando/conectadas a Internet (como navegadores, Clash of Clans, etc.), la última actividad utilizada se registra en mi actividad en tu cuenta de Google. Puedes averiguarlo visitando https://myactivity.google.com y haciendo clic en Android.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X