Laufzeit der App?

  • Antworten:6
Ben Becker
  • Forum-Beiträge: 209

18.11.2011, 10:35:41 via Website

Hiho!
Ich habe hier schon öfter gelesen das Ihr raus findet wie lange die App schon aktiv ist. leider komme ich mit den Such begriffen App Laufzeit oder App time nicht weiter.
Wie kann ich denn rausfinden wie lange die App beim User schon geöffnet war? Gibt es da eine Systemvariable?

Antworten
L3322
  • Forum-Beiträge: 467

18.11.2011, 10:55:48 via App

long last = System.currentMillis;

.......

long now = System.currentMillis - last;

liebe grüße Leon

"Hard work beats talent, when talent fails to work hard"

Antworten
Rafael K.
  • Forum-Beiträge: 2.359

18.11.2011, 11:04:05 via Website

Wobei man halt aufpassen muss in welchem Scope man die Variable für den Startzeitpunt definiert.
Macht man es als Member der Activity, kann das auch mal im Nirvana landen, wenn z.B. die Activity neu instanziert wird beim Drehen des Geräts o.ä.

Antworten
Ben Becker
  • Forum-Beiträge: 209

18.11.2011, 11:16:16 via Website

Das heißt man muss es selbst berechnen, es gibt also keinen Zähler wie lange die App schon läuft. Ich finde auch kein System.currentMillis in der Developer Doku, nur System.currentTimeMillis

— geändert am 18.11.2011, 11:18:27

Antworten
Tobias Eckert
  • Forum-Beiträge: 155

18.11.2011, 16:34:23 via Website

Nein, das musst Du schon händisch machen. Und wie Rafael unten schreibt, musst Du auch aufpassen wie Du "Laufzeit der App" definierst. Wenn Du z.B. das Gerät drehst wird Deine App beendet und neu gestartet. Fängst Du dann beim messen der Zeit wieder bei null an oder nicht?

Schau Dir dazu mal den Activity Life Cycle an. Da siehst Du recht genau in welchen Methoden Du mit Zeitmessung starten und stoppen kannst.

Antworten
Ben Becker
  • Forum-Beiträge: 209

18.11.2011, 16:46:27 via App

habe nur nochmal fragen wollen. da ja der Befehl so wie er geschrieben wurde nicht in der Doku steht. Ja das mit dem Lifecycle muss man irgendwie beachten. Bin eh noch am planen. danke euch schonmal.

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

18.11.2011, 17:30:18 via Website

Hall Ben,

ein ganz exakte Zählung, zum Beispiel der effektiv CPU verbrauchenden Zeiten, erledigt das Handy schon für Dich ..

Du musst nur einen Shell aufruf starten: "dumpsys batteryinfo >/sdcard/mybatinfo.txt

In diesem File findest Du dann exakte Informationen wie oft deine App aufgerufen wurde, bspw. seit dem letzten abziehen vom Ladegerät.
Beispielhaft könnte dann dort stehen:


#10062:
Proc de.androidpit.appcenter:
CPU: 6m 13s 230ms usr + 26s 340ms krn
2 proc starts

Dem kannst Du entnehmen, dass ich das Appcenter insgesamt zweimal gestartet habe und es insgesamt mit 6m 13,2 Sek Usr Times und 26,3 Sek. Kernel CPU Time aktiv war. Das muss jetzt allerdings NICHT der realen Laufzeit entsprechen. Dies sind lediglich die Zeiten, in welchen deine APP aktiv CPU Zeit verbraucht hat.

Die angezeigte Zeit, in der keine CPU verbraucht wurde musst Du nun noch selbst ermitteln .. dort wurde Durch Deine App ja Screen Strom verbraucht.
Das wurde aber von Tobias schon beschrieben wie es funktionieren könnte.

Oben genannte Zeiten sind im übrigen auch jene, die in der Akkuinfo verwendet und visualisiert werden.

lg Voss

Antworten