4

我最近在应用商店中发现了一款​​名为Dataman Pro的应用。它具有一项功能,可让您查看每个应用程序的数据使用情况(请参阅随附的屏幕截图在此处输入图像描述)。我一直想知道它在做什么来获取此类信息。

4

1 回答 1

3

请参阅这篇关于获取已安装应用程序列表的文章,以及这个 git 项目

然后关于使用跟踪:

如果您想知道任何可以开箱即用地为您提供网络统计信息的公共 API - 那里什么都没有。

DataMan it self 是一款一直在后台工作的应用程序,并绑定到网络接口以跟踪网络使用情况。这是其数据永远不会 100% 准确的原因之一,因为它不能保证始终在后台工作。这也是Apple在几个版本后将其从AppStore踢出的原因......

现在,如果我理解正确,在进行了一些更改之后,该应用程序已经返回:主要是避免“黑客”留在后台,并在用户四处走动时使用定位服务重新上线。我想这是另一种黑客攻击,但苹果还没有反对。

编辑:

在网上浏览了一下之后,Apple 似乎也发现了这个技巧,并从 AppStore 中删除了许多应用程序,因为它们使用位置信息停留在后台。我想现在它在后台工作的时间不超过 10 分钟,所以当你想测量当前的活动时打开它,它会在 10 分钟后停止测量。

关于跟踪代码本身,主要是C代码,使用CFNetwork框架,你可以在stackoverflow上找到一些关于这个主题的答案。

更多,回应评论:

好吧,正如您提到的,关于查看已安装应用程序列表和前台应用程序的部分并不完全是私有 API,而是私有 plist。访问私人文件的应用程序确实会不时通过。当 Apple 发现某些“私人”文件被访问并需要保持安全时 - 他们会在 iOS 更新中对其进行更改,就像他们对敏感的通话记录文件所做的那样。旧的应用程序倾向于使用(iOS <= 3.3 左右)调用历史数据库来做一些统计,而在 iOS4 上,它们被文件移动到安全位置而过时了。

读取不受保护的“私人”文件非常容易,不会被自动分析器捕获。当您知道哪个是前台应用程序,并且您可以统计当前的网络使用情况时,您可以将其与应用程序相关联......并获得估计。所以他们很可能就是这样做的。

但是,由于 Apple 重新审查应用程序和他们自己的政策,以及由于 API 更改,以及如果您跟踪此类应用程序甚至此特定应用程序的历史记录,这些技术会不时发生变化 - 您会不时看到当他们被踢出 AppStore 并以一种扭曲的方式返回时。他们调整......所以没有一种技术是可靠的,这是维护的一个主要问题,这可能是开发人员为此收取 9.99 美元的原因。我会。

于 2013-10-10T05:58:26.760 回答