App Usage Monitoring

Hi!
I am searching for suggestions for an app that shows the app statistics of the device. Currently I am running Usage Direct from F-Droid, but sometimes the data seems questionable. And I am sure there are other great options out there.
In the future I might even want the options to block specific apps or set time limits for my kides, but for now we are still fine looking at the usage statistics together.
Any suggestions in this direction are very welcome too, as well as explanations how the Android app statistics work (maybe I understand the numbers better then).

AppManager has usage statistics but no visualization as usagedirect if you want to compare and verify stats.

For blocking: there are “time limit” apps in f-droid, but they have no visualisation.

People have included the Googles “wellbeing” apk into roms, but you need to either root it or includeit at build time - GitHub - suwakowww/digital_wellbeing_port: Port Digital Wellbeing for AOSP-like ROMs

Thanks @tcecyk, thats interesting!
Though app Manager clearly isnt made for dummy users like me (it seems quite powerful!) it helped me to see that the problem with my usage data might have nothing to do with the Usage Direct app, as the data isnt right in App Manager as well!?
Any suggestions how to investigate that anybody?

Time Limit seems powerful too, will look into that!

Maybe if you activate the option for developers you can access what you want!

By tapping multiple times on the build number in Settings - Phone summary (that’s in French for me, I don’t know the English equivalent), the option is activated.

Then go to Settings - System - Advanced Parameters - Developer option - Executed services (also cache with the three dots).

Maybe that’s the statistics you’re looking for?

Thanks @MaMaTT88, thats definitly interesting but doesnt show me the statisitc of the “history” but just the activly running processes if I understand it right…

… the data isnt right in App Manager as well!?

usagedirect documents how it queries usage time at https://codeberg.org/fynngodau/usageDirect/wiki/Event-log-wrapper-scenarios

The usageDirect event log wrapper receives data from UsageStatsManager’s event log API. The data format is a “list” of events which are worked through in order. The process is tricky and requires assumptions and workarounds, which are documented here.

Without knowing anything (uh) I wildly guess it’s difficult to count screen and usage time of apps when both are “foregrounded”. A user can make a voice call with whatsapp while going through tiktok etc. Same for music players etc. Can you give an example of when the “timings don’t add up”, or directly to the authors issue tracker on codeberg?

Edit: having it installed myself… the pie charts per day looked accurate for “screen time” from personal memory

Thanks for your follow up @tcecyk, but as I said I am really a dummy user, maybe at least a motivated one :slight_smile:
Guess I’d mess it up to report the issue how it should be done.
I just can tell you that I saw my son playing a game for about 15 min. and usageDirect shows me it was used 57 sec. and App Manager says less than a minute…

Edit: I guess the time limit app would use the same statistics data as basic for operation, right?

maybe the game employs evasive tactics, if it’s free to play and runs on my potatophone I’ll check

No, I dont think so (the app is Toggo) as other times are not plausible either.
But thanks a lot, and whats a potatophone please? :slight_smile:

I was able to reproduce this and filed a bug at the issue tracker - #73 - time mismatch for `de.toggo` app - usageDirect - Codeberg.org

the raw readout of adb shell dumpsys usagestats was proper (for paw patrol). There is a chance other stat apps don’t run into this.

Cool, thanks for taking care @tcecyk!
Though I dont really understand whats going on…

usageDirect parses each line and tries to deduce when an app is in use and when it stopped.

The log lines clearly show events for start (ACTIVITY_RESUMED) and end (ACTIVITY_PAUSED) of de.toggo, but the App goes into the elseif logic with guardian.test(), something I would only expect if it can’t find the starting event in the if-section prior - usageDirect/EventLogWrapper.java at 9f253d8bee94cf5cb2eb9a99bef8f9572b23399e - usageDirect - Codeberg.org

I wonder if it is a bug that is only seen on first-use of an App and subsequent timings are correct.

Edit: gave this idea a try, subsequent measurements are off too

@MaxO - the usageDirect bugreport https://codeberg.org/fynngodau/usageDirect/issues/73 received a fix this week.

No new f-droid release yet - but when it happens and you reset the tracking, subsequent tracking should be proper

Thankk a lot @tcecyk, thats great!
Also for letting me know :wink: