24

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

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

4

2 回答 2

16

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

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

  • 上次使用该应用程序的时间
  • 应用程序在该时间间隔内处于前台的总时长(按天、周、月或年)
  • 当组件(由包和活动名称标识)在一天中移动到前台或后台时捕获时间戳

  • 设备配置更改时的时间戳捕获(例如设备方向因旋转而更改时)

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

于 2015-01-15T09:50:54.117 回答
6

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

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

您引用的应用程序可能正在浪费大量 CPU 时间、RAM 和电池寿命,ActivityManager不断地轮询。

请记住,如果您打算让除用户以外的任何人访问它,那么您建议跟踪的内容就近乎侵犯了 CarrierIQ 陷入相当麻烦的类型的隐私。

于 2012-01-26T00:35:43.023 回答