我创建了一个应用程序,它在某些设备中消耗 48% 的电池,这是电源管理任务最高的,但在某些设备中它是 5-6%,我一直在后台运行一个服务,它获取纬度和经度并发送如果用户登录,它在服务器上。但我也检查过从应用程序注销它仍然消耗 48%。
使用融合位置 api 获取纬度和经度。
所以请告诉我如何解决某些手机中的电池消耗问题以及如何检查哪个进程和服务正在耗尽电池。
我创建了一个应用程序,它在某些设备中消耗 48% 的电池,这是电源管理任务最高的,但在某些设备中它是 5-6%,我一直在后台运行一个服务,它获取纬度和经度并发送如果用户登录,它在服务器上。但我也检查过从应用程序注销它仍然消耗 48%。
使用融合位置 api 获取纬度和经度。
所以请告诉我如何解决某些手机中的电池消耗问题以及如何检查哪个进程和服务正在耗尽电池。
我同意 Lonni 的观点,即问题在于纬度/经度。考虑到 48% 的功耗规模,它不太可能是 GPS 电路本身。我猜是CPU。移动处理器非常节能,除非它们保持活动状态。让我解释。主动处理器是移动设备上最耗电的设备。那么,处理器如何在“节能”的同时成为最大的耗电者呢?处理器“节能”是指当处理器不做任何事情时,它会进入一个非常高效的低功耗状态,其功耗可能比处于活动状态时低一个数量级。
我的猜测是您将处理器保持在活动状态。您想要的是使处理器尽可能空闲。
以下是我的建议:
以下是更多信息:电池安全编码
旁白:我已经看到了这样的想法:“为什么有些设备比其他设备耗电少?” 一些库非常聪明,可以预见不良的编程实践并采取变通方法。其他人是哑巴。操作系统、系统库和线程调度也是如此。
我最好的猜测是,不断获取 long 和 lat 正在耗尽电池。如果我没记错的话,几年前我在定位方面做了什么。
我会说您应该尝试查看您想要的坐标刷新率。也许它不需要每分钟刷新超过 5 次。在这种情况下,您将节省大量获取坐标的调用,并且肯定会节省您的电池。
至于为什么在某些设备上会有所不同,恐怕我不知道。也许使用的android版本?
编辑:我不知道 Eclipse 是否可以做到这一点,我认为它不能。但是,您可能需要查看这篇论文:http ://www.usenix.org/event/usenix10/tech/full_papers/Carroll.pdf