如何在Android中跟踪应用程序使用情况?如何检测活动何时启动?

问题描述 投票:22回答:2

我需要跟踪Android中的应用程序使用情况,例如AppUsage的工作方式(即跟踪应用程序启动的数量,以及使用每个应用程序所花费的时间)。我打算做的是记录应用程序启动时的开始时间,然后获取应用程序暂停或停止时的结束时间。在LogCat中,我能够看到Activity的起始日志。我查看了可用的系统广播,我不确定在活动开始时是否有任何广播。 。基本上,我如何检测活动何时启动?

编辑:此外,Android还有一个内部可用的使用情况统计系统,可以在备件应用程序中找到或在拨打*#*#4636#*#*时(测试 - >使用情况统计)

android usage-statistics
2个回答
13
投票

我们现在可以在Android设备上访问应用程序使用历史记录,其中新的android.app.usage API作为Android 5.0 API的一部分发布。系统按应用程序收集使用情况数据,每天,每周,每月汇总数据和每年的间隔

对于每个应用程序,系统记录以下数据:

上次使用应用程序应用程序在该时间间隔内的前景总时间长度(按日,周,月或年)时间戳记捕获组件(由包和活动名称标识)移动到一天中的前景或背景设备配置更改时的时间戳捕获(例如,由于旋转而导致设备方向发生变化)

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


6
投票

基本上,我如何检测活动何时启动?

你没有。 Android SDK中没有“启动应用程序的开始时间”或“应用程序暂停或停止时的结束时间”。

你引用的应用程序可能正在做的是浪费大量的CPU时间,内存和电池寿命,不断轮询ActivityManager

请记住,如果您打算让除了用户之外的任何人访问它,您建议跟踪的内容与违反CarrierIQ类型的隐私违规行为有很大关系。

© www.soinside.com 2019 - 2024. All rights reserved.