Woher weiß ich, wann eine App in Android verwendet wurde?

8

Gibt es eine Möglichkeit zu erkennen, wann eine App in einem Android-Telefon verwendet wurde?

Ich interessiere mich speziell für die Kamera- und Galeriefunktionen. Ich glaube, mein Mitbewohner hat meine Fotos ohne zu fragen durchgesehen, und ich habe versucht, den Cache für die Galerie-App anzuzeigen, kann aber anscheinend nicht herausfinden, wie das geht.

Ist das überhaupt auf dem richtigen Weg? Er hatte es für ein Intervall von zwanzig Minuten, und ich möchte sehen, ob in dieser Zeit auf die Galerie zugegriffen wurde.

Youkoshi
quelle

Antworten:

17

Mit Android können Nutzungsstatistiken über die GUI angezeigt werden. So können Sie es sehen. ( Quelle , von Kevin Swartz)

  1. Geben Sie in Ihrem Standard-Dialer ein *#*#4636#*#*. Es würde ein Fenster mit dem Namen Testen öffnen, das eine Untereinstellung der Einstellungen- App ist.
  2. Gehen Sie zu Nutzungsstatistik .

    IMG:

    Für Lollipop :

    • Sortieren Sie die Zeit in Sortieren nach: basierend auf der Nutzungszeit oder der zuletzt verwendeten Zeit oder dem App-Namen .
    • Die Reihenfolge der Einträge ist App , Zuletzt verwendete Zeit und Nutzungszeit .

      (Klicken Sie auf das Bild, um es zu vergrößern)

      IMG: IMG: IMG:


      Für Jelly Bean 4.2.1 bis Kitkat 4.4.2 :

      • Sortieren Sie die Zeit in Sortieren nach: basierend auf der Nutzungszeit oder der Startanzahl oder dem App-Namen .
      • Die Reihenfolge der Einträge ist App , Anzahl und Nutzungszeit .

      (Klicken Sie auf das Bild, um es zu vergrößern)

      IMG: IMG: IMG:

      Die Nutzungsdauer in diesen Android-Versionen wird in Millisekunden (ms) angezeigt. Sie können die Berechnung auf eigene Faust tun, oder ein Konvertierungstool wie versuchen , dies sofort zu ihnen in Minuten zu konvertieren.

ADB nicht vergessen

Alternativ können Sie mit direkt in das Fenster Nutzungsstatistik springen . Geben Sie diesen Befehl ein:

Für Android Lollipop:

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

Für Android 4.2.1 bis 4.4.2:

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

Sehen Sie sich diese Antwort an, wenn Sie die Rolle von Parametern in diesen Befehlen kennen möchten.

Sie können auch adb shell dumpsys usagestats( Quelle , von Jinghao Shi) tun , was für Android 4.2.1 und 4.4.2 nichts Nützlicheres gab, als bereits in den oben für sie veröffentlichten Screenshots beschrieben.

Lollipop zeigt im Vergleich zu seinen Vorgängern eine verständlichere Ausgabe für Endbenutzer.

Tägliche Statistiken im Gedächtnis
  timeRange = "29.08.2015, 08:34 - 30.08.2015, 01:41" 
    Pakete
      package = com.android.documentsui totalTime = "00:07" lastTime = "30.08.2015, 01:35 Uhr" 
      package = com.android.browser totalTime = "00:02" lastTime = "30.08.2015, 01:35 Uhr" 
      package = com.android.camera2 totalTime = "00:05" lastTime = "30.08.2015, 01:37 Uhr" 
...
...
Veranstaltungen
      time = "30.08.2015, 01:34 Uhr" type = MOVE_TO_BACKGROUND package = com.android.deskclock class = com.android.deskclock.DeskClock 
      time = "30.08.2015, 01:34 Uhr" type = MOVE_TO_FOREGROUND package = com.android.dialer class = com.android.incallui.InCallActivity 
      time = "30.08.2015, 01:34 Uhr" type = MOVE_TO_FOREGROUND package = com.android.dialer class = com.android.dialer.DialtactsActivity 
...
...
Wöchentliche In-Memory-Statistiken
  timeRange = "27.08.2015, 5.30 Uhr - 30.08.2015, 01:41 Uhr" 
    Pakete
      package = com.android.documentsui totalTime = "00:07" lastTime = "30.08.2015, 01:35 Uhr" 
      package = com.android.browser totalTime = "00:02" lastTime = "30.08.2015, 01:35 Uhr" 
      package = com.android.camera2 totalTime = "00:05" lastTime = "30.08.2015, 01:37 Uhr"
...
...
Monatliche In-Memory-Statistiken
  timeRange = "09.08.2015, 08:34 - 30.08.2015, 01:41" 
    Pakete
      package = com.android.documentsui totalTime = "00:07" lastTime = "30.08.2015, 01:35 Uhr" 
      package = com.android.browser totalTime = "00:02" lastTime = "30.08.2015, 01:35 Uhr" 
      package = com.android.camera2 totalTime = "00:05" lastTime = "30.08.2015, 01:37 Uhr"
...
...
In-Memory-Jahresstatistiken
  timeRange = "21.12.2014, 5.30 Uhr - 30.08.2015, 01:41 Uhr" 
    Pakete
      package = com.android.documentsui totalTime = "00:07" lastTime = "30.08.2015, 01:35 Uhr" 
      package = com.android.browser totalTime = "00:02" lastTime = "30.08.2015, 01:35 Uhr" 
      package = com.android.camera2 totalTime = "00:05" lastTime = "30.08.2015, 01:37 Uhr"

Jetzt können Sie die Liste durchsuchen, um die Kamera- und Galerie-App zu finden und den Wert für "zuletzt verwendet" für Lollipop anzuzeigen. Leider würden die Informationen in diesem Abschnitt den Geräten, auf denen der Vorgänger von Lollipop ausgeführt wird, nicht helfen, es sei denn, das Gerät ist gerootet oder Sie finden eine App, mit der Sie Paketstatistiken erhalten.

In Ihrem speziellen Fall wären all diese Informationen nur dann hilfreich, wenn Sie die Kamera, die Galerie oder eine bestimmte App Ihres Interesses nicht gestartet haben, nachdem Ihr Freund das Telefon benutzt hat, seit dem Zeitstempel dafür Die App wird für alle genannten Android-Versionen auf das neue "Zuletzt verwendet" aktualisiert.


Der folgende Abschnitt würde funktionieren, wenn das Gerät gerootet ist.


Für Jelly Bean (4.2.1) bis Kitkat (4.4.2)

Android führt ein Protokoll darüber, wann eine App (ihre Komponente) zuletzt verwendet wurde. Sie können /data/system/usagestats/einen Datei-Explorer mit Root-Zugriff oder .

Es würde eine Datei mit dem Namen usage-history.xmlund einige andere Dateien mit der folgenden Namenskonvention geben usage-YYMMDD:

  • JJJJ - Jahr
  • MM - Monat
  • DD - Datum

Beispiel usage-20150729: Die Datei wurde am 29. Juli 2015 erstellt.

Das .xmlist eine einfache XML-Datei, daher sollten Sie sie in einem Texteditor anzeigen können. Das usage-YYMMDDsind dataDateien ( charset=binary) und meine Texteditorin Kate konnte sie nicht in lesbarer Form öffnen. Allerdings cat <FILE>Befehl macht den Job, um den Android - App QuickEdit , nicht vollständig soll ich hinzufügen.

Die grundlegende Vorlage für Einträge in dieser .xmlDatei lautet:

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

ZB Dies sind die folgenden Einträge für die 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>

Das lrtgegen jede Komponente ( comp) ist die Unix-Zeit . Verwenden Sie Epoch Converter oder etwas anderes, das Unix-Zeit in lesbare Zeit umwandeln kann, damit es für Menschen lesbar ist .

ZB 1438134244890ist die Unix-Zeit, zu der ich auf die Hauptaktivität von AFWall + zugegriffen habe (Standardansicht), und die konvertierte Zeit Wed, 29 Jul 2015 01:44:04 GMTist korrekt.

In Bezug auf den Inhalt in sehen usage-YYMMDDSie Aktivitäten der Apps, die Sie an diesem Tag besucht haben. Dort gibt es keinen Zeitstempel.

Für Lutscher

Lollipop hat erhebliche Änderungen in Bezug auf die Erfassung von Nutzungsstatistiken einer App. Siehe den offiziellen Hinweis von Google hier .

Das Konzept von usage-history.xmlund usage-YYMMDDgilt hier nicht. Stattdessen Sie Verzeichnisse mit dem Namen bekommen daily, monthly, weekly, yearly. Alle von ihnen haben Dateien, die Sie richtig erraten haben, mit Ziffernnamen, nichts als Unix Time wie 1440374400000.

Eine typische Datei unter dailyhat den Inhalt:

<?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" />

Dies ist eigentlich das gleiche, was wir in usagestatder Ausgabe gesehen haben, aber das Timing ist in seiner Rohform. Ich habe keine Ahnung, wie ich die Zeit hier verstehen soll, geschweige denn in eine für Menschen lesbare Form umwandeln soll. Entwickler sollten dazu in der Lage sein .

Wenn Sie wissen, was es ist und wie Sie es konvertieren ( als Endbenutzer ), lassen Sie es mich bitte wissen oder geben Sie hier eine Antwort.


Feuerlord
quelle
Haben Sie versucht, die Konfigurationsdatei mit Notepad ++ zu öffnen? Ich habe keine Wurzel, daher kann ich mich nicht selbst überprüfen.
Glücklicher
@Lucky Windows nicht ausprobiert; mit Slackware Linux hier. Sie können versuchen, es in Ihrem System zu öffnen. Hier ist die Datei . Es scheint keine Konfiguration zu enthalten, daher würde ich es möglicherweise nicht als Konfigurationsdatei bezeichnen. :)
Feuerlord
Könnte in Notepadd ++ und Sublime Text-Editoren geöffnet werden. Sublime öffnet es als HEX-Daten.
Glücklicher
Könnten Sie bitte einen Screenshot für Notepad ++ teilen?
Feuerlord
1
So sieht es in Notepad ++ und Sublime Text aus
Lucky
1

Wenn Ihr Telefon zuletzt verwendet wurde oder wenn Sie Apps herausfinden möchten, die im Internet ausgeführt / verbunden werden, z. B. (Browser, Clash of Clans usw.), wird die zuletzt verwendete Aktivität unter "Meine Aktivität" in Ihrem Google-Konto aufgezeichnet. Sie können dies herausfinden, indem Sie https://myactivity.google.com besuchen und auf Android klicken.

Glücklich
quelle