我写了一个简单的应用程序,在屏幕上显示一些文字和一些图形。我使用的是Nexus 7,这是用于安装的,因此需要每天连续工作12小时。然而,尽管插入并充电,我的应用程序在大约8小时内(10-15%/小时)完全耗尽电池。
除了不经常更改的文本和图形之外,我的应用程序还做了两件事:
以全亮度保持屏幕开启(通过WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
);和
它会打开两个DatagramSockets
,一个用作UDP客户端,另一个用作UDP服务器。这些套接字都是自动打开的,并由我正在使用的库OSCP5管理。它是开源的,所以我可以根据需要进行破解,尽管越少越好。 (KISS。)
我测试了Nexus 7电池的使用寿命,没有应用程序运行,屏幕全亮,每隔29分钟发痒,以防止睡眠,持续几个小时,完全没有电池耗尽。所以,迹象似乎指向插座。我没有经常与这些套接字进行通信,它们每分钟接收大约几KB(基于用户与安装的另一部分的交互)。
我能做些什么,特别是插座或任何其他一般测试,以尽量减少或消除电池消耗?我只需要经过12个小时,但插上电源时保持充满电状态似乎不应该是如此高的订单......
答案 0 :(得分:1)
然而,尽管插入并充电,我的应用程序在大约8小时(10-15%/小时)内完全耗尽电池。
你有什么Nexus 7插入?我认为它可以利用高速充电USB端口,这是大多数平板电脑(Android + iPad)所需要的。如果你把它插入花园种类的USB端口,我可以看到你的结果更有可能。
所以,迹象似乎指向插座。
他们肯定是候选人,但是因为无论如何,当设备充电时,WiFi无线电可能会说,我会有点惊讶。对我来说,这感觉就像一个CPU问题,你在忙着等待或者不是阻塞。
我能做些什么,特别是插座或任何其他一般测试,以尽量减少或消除电池消耗?
我会看看Traceview是否指出了你消耗大量CPU时间的地方。我将调查充电端口问题。我修改你的应用程序来模拟套接字工作,并试着看看你的问题是否仍然存在 - 如果确实如此,那么问题不在于套接字。
答案 1 :(得分:1)
嗯,保持屏幕全亮度将真正降低功率。 GPS也会这样做;我认为这是两个最大的功率接收器。
保持网络无线电繁忙并保持CPU忙碌也会降低功耗。我希望你不要在任何软件中忙着等待。
除此之外,我可以建议您使用平板电脑附带的高功率充电器。 USB数据端口的电流限制为500mA,而且我使用过多个设备,这些设备可能需要更多电量来保持电池存活。
答案 2 :(得分:0)
三个月后,无聊的头桌响起,事实证明罪魁祸首是我的USB跑。总长度约为20'-25',长度减弱了整个线路的功率。解决方案:powered USB hub。
所以,答案最终与Android或编程无关。对不起,SO。