耗电惊人的移动广告

公司

2012-03-21 12:35

为研究智能手机应用究竟把电力花在什么地方,美国普渡大学与微软研究院的研究人员最近开发了一个名为 Eprof 的应用以监视每个应用启动的线程以及相应耗电情况。Eprof 可以用于 Android 和 Windows Mobile 智能手机应用的耗电情况。Windows Mobile 已经被微软判了死刑,他们对 Android 的分析才是重点。

测试结果可能会让不少人吃惊,一些免费游戏应用耗电的 65%-75% 被用于第三方广告模块以及 Flurry 等为开发者收集用户信息的服务。不过别紧张,广告模块耗电比例如此之高并不是因为它们下载了多少垃圾——大部分时间只是白白浪费电力而已。

以愤怒的小鸟免费版为例,游戏过程中先后开启 35 个进程。其中 GLThread 线程是游戏的核心,处理游戏画面和触控操作。尽管 GLThread 线程调用了大量 CPU 资源,但它只占游戏耗电的 18% 而已,其中还有 1% 被用于广告条渲染(为便于理解,本文所有百分比均为占应用总耗电量的比例)。

为开发者搜集数据的 Flurry 线程才是耗电大头,占愤怒的小鸟免费版总耗电量的 45%。其中 GPS 模块收集位置信息耗去 15%,GPS 模块工作完毕后没有及时转入低功耗状态又耗电 4%。Flurry 收集手机相关信息耗电不足 1%、通过 3G 上传这些信息(2KB)耗电 1%,但 3G 模块工作完毕后继续维持高功耗状态耗电 24%。游戏关闭后 HeapWorker 进程进行收尾,中止游戏期间开启的各种接口,但它再一次让 3G 模块保持高功耗状态浪费 28% 电力。

也就是说根据 Eprof 的检测,玩一关愤怒的小鸟免费版,有近四分之三的电力被用于第三方广告以及用户信息收集。其中广告和 Flurry 收集用户信息一共耗电 18%、被 Flurry 和广告激活的 GPS 模块和通信模块在工作完毕后浪费了 56% 的电力。

研究人员还测试了另一个非常流行的免费游戏 Chress Free,33 秒的游戏过程中仅 AdWhirl 广告相关线程耗电就超过 50%,绝大部分浪费在工作完毕后继续维持高功耗状态的 3G 模块上。其它测试的流行应用还包括《纽约时报》应用和自带浏览器等等。这些应用浪费的电力没前两个游戏那么多,但基本也将至少两成电力用于广告和信息搜集(浏览器进行 Google 搜索或访问 CNN 等网站都会搜集位置信息)。

需要注意,Eprof 只监视了处理器以及无线、GPS 等模块,并未覆盖耗电巨大的屏幕。所以广告和 Flurry 耗电实际比例没有四分之三那么高。而且 Flurry 也不会每分钟都活动,游戏时间越长这些模块耗电所占比例就越低。不过考虑到手机游戏主要被用于消磨闲散时间,多数人不会每天连续玩几小时,现在的耗电比例还是有点高。开发者有必要花点时间优化。

研究人员在相关论文里详细解释了耗电原因和可行的优化方法,完整的 PDF 文档可以在微软研究院网站下载。Eprof 未来也会采用开源协议供外界使用,不过由于系统的限制,可能永远也无法推出 iOS 和 Windows Phone 版本。

登录,参与讨论前请先登录

评论在审核通过后将对所有人可见

正在加载中

关注电子阅读、任何有趣的设备、IC 以及“历史的草稿”,相信移动设备与互联网的结合正促成近百年来最重要的一次变革。

本篇来自栏目

解锁订阅模式,获得更多专属优质内容