获取当前前台应用的名称

时间:2013-02-22 19:50:46

标签: ios

我需要研究一组参与实验的测试用户实际使用的应用程序。我想知道每个随机第三方应用程序用于对其进行统计的时间。如果可能,我计划通过TestFlight分发iOS应用程序。我的应用程序将收集应用程序使用情况统计信息并将其发送到我的服务器。

总体目标是从参与实验的每个用户每天获得每个已安装应用的总使用时间。

我拥有的: 我的一个想法是开发一个应用程序,它将使用VoIP后台配置文件(或类似的)在后台运行,并定期(如每10秒)记录当前前台应用程序的名称或包标识符(如果有的话)。 / p>

我找到了一种方法来获取当前正在运行的进程:Can we retrieve the applications currently running in iPhone and iPad 上面的帖子中描述的方法给出了一个结构kinfo_proc,其中包含其他结构,其中包含进程名称,优先级和运行时间(包括在后台花费的时间)等信息。我无法确定一个标志,揭示前景中的进程。优先事项似乎也不是一个可靠的指标。我在这里想念的东西?

上述方法可用于获取进程的当前运行时间,但由于每个应用程序可能在后台睡眠数天(或数周),因此这是应用程序实际使用量的一个不佳指标。如果我可以每小时左右杀死所有正在运行的用户安装的应用程序,我可以获得应用程序使用频率的指标。最常用的应用程序将由用户更频繁地冷启动。但随着应用程序被随机杀死,这会给测试人员带来不愉快的体验。但无论如何,有没有办法可以杀死另一个进程?

另一个想法是遍历视图层次结构以探测任务栏中最左边的应用程序的标签。关于如何可能破解的任何想法?

我还想到了分析设备日志并以这种方式收集应用使用统计信息的想法。但是,似乎应用程序后台前台切换活动未记录到系统控制台。是否有其他日志包含此信息,或者我可以通过启用能源诊断日志记录来获取它吗?

如果我的测试用户设置为使用Apple移动设备管理(MDM),我是否可以收集我感兴趣的信息?

非常感谢任何想法。

一些注意事项: 我的测试用户没有越狱设备,但我可以使用私有API,因为我没有通过App Store分发。

1 个答案:

答案 0 :(得分:-2)

我会使用Flurry Analytics之类的分析工具来获取有关使用情况统计信息的数据,然后您可以使用their API将其下载到您的应用中。他们可以为您提供有关用户如何使用您的应用程序,频率等的详细信息。这是一个很棒的工具,而且它是免费的!