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

sof*_*ang 22 android usage-statistics

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

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

and*_*ryo 13

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

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

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

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


Com*_*are 6

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

你没有.Android SDK中没有"启动应用程序的开始时间",也没有"应用程序暂停或停止时的结束时间".

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

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

  • "你没有"不是一个很好的答案.几乎任何事情都有合法的方法和用例,OP在问题本身中提供了一个. (17认同)
  • 我同意,但这并不意味着答案是"你没有".相反"Android团队没有为您提供易于使用的方法",但当然(非漏洞利用)方法几乎可以为任何事情做某事(在这种情况下,logcat扫描4.1之前的设备).你是对的,这给电池寿命和CPU使用带来了压力,但它可能更接近于OP寻找的答案而不是"不". (3认同)
  • 根据 [Android 市场的 AppUsage 说明](https://market.android.com/details?id=com.smartappers.appusage&feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5zbWFydGFwcGVycy5hcHB1c2FnZSJd 仅在几乎没有电量时记录您的电量)更改应用程序,不像其他应用程序每隔 x 秒检查一次!_ - 我不确定 AppUsage 是如何做到这一点的。这是针对向用户推荐应用程序的论文项目。要求之一是跟踪应用程序使用情况。 (2认同)
  • @Sofia:如果他们利用安全漏洞,我会看看他们的应用并向Google报告.感谢您引起我的注意! (2认同)
  • 在内部,Android还有一个使用统计系统,可以在备件应用程序中找到,或者在拨打`*#*#4636#*#*`时使用.测试 - >使用情况统计 (2认同)