我编写了一个简单的应用程序,它在屏幕上显示一些文本和一些图形。我使用的是 Nexus 7,这是用于安装的,因此需要每天连续运行 12 小时。然而,尽管插入并充电,我的应用程序在大约 8 小时(10-15% / 小时)内将电池完全耗尽。
除了不经常更改的文本和图形之外,我的应用程序还做了两件事:
它使屏幕保持全亮状态(通过WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
);和
它打开了两个DatagramSockets
,一个充当 UDP 客户端,一个充当 UDP 服务器。这些套接字都是由我正在使用的库OSCP5自动打开和管理的。它是开源的,所以我可以根据需要破解它,尽管越少越好。(亲吻。)
我测试了 Nexus 7 的电池续航时间,没有运行任何应用程序,屏幕全亮,每 29 分钟发痒一次以防止它进入睡眠状态,几个小时完全没有电池消耗。所以,迹象似乎指向插座。我在这些套接字上没有频繁的通信,它们每分钟接收大约几 KB(基于用户与安装的另一部分的交互)。
有什么我可以做的,特别是插座,或任何其他一般测试,以尽量减少或消除电池消耗?我只需要打完 12 个小时,但在插上电源的同时保持充满电似乎并不是一个艰巨的任务......