0

背景

我正在开发一个在 Android 手机上运行的研究应用程序。简而言之,只要手机处于开机状态,应用程序就会运行,并定期从手机上的许多组件和传感器获取信息。该应用程序是尽可能少地打扰用户。话虽如此,它消耗的电池太快了,迫使用户每天都充电。这根本行不通。

为了弄清楚如何改善这种情况,一位也在开发该应用程序的同事让该应用程序运行了很长时间,并注意到最大的电池消耗是 WiFi。我目前的想法是在不使用 WiFi 时手动关闭它以节省电量。AFAIK,Android 使用 PSM for WiFi 来实现这一点,但这似乎还不够。

问题

有没有办法“提升”Android 的 PSM?或者,如果没有这个问题所暗示的那样,有什么方法可以安全地打开和关闭 WiFi 而不会对用户产生不利影响?即,有没有办法判断哪些应用程序正在使用 WiFi,并在没有应用程序时将其关闭?标准应用程序(例如 Web 浏览器和电子邮件客户端)是否使用WiFi 锁来防止 WiFi 在工作时被关闭?

非常感谢任何关于从哪里开始解决这个问题的建议。非常欢迎您提供有关 Android 的 PSM 工作原理、其生效需要多长时间或与问题相关的任何信息的信息。

谢谢你的时间!

4

1 回答 1

0

有没有办法“提升”Android 的 PSM?

不是通过 Android SDK。

即,有没有办法判断哪些应用程序正在使用 WiFi,并在没有应用程序时将其关闭?

操作系统已经这样做了。

标准应用程序(例如 Web 浏览器和电子邮件客户端)是否使用 WiFi 锁来防止 WiFi 在工作时被关闭?

有些人可能会。欢迎大家搜索Android源码一探究竟。当然,请记住没有“标准应用程序”——我假设您正在考虑属于 Android 开源项目一部分的应用程序。

非常感谢任何关于从哪里开始解决这个问题的建议。

找出您自己的代码中效率低下的地方,特别是在这里:

只要手机处于开机状态,应用程序就会运行,并定期从手机上的许多组件和传感器获取信息。

如果设备在您的代码未运行时表现良好,而在您的代码运行时设备表现不佳,则问题出在您的代码上。相反,如果即使您的代码没有运行,设备也不能正常运行,那么其他事情正在发生(设备缺陷、固件缺陷、恶意应用程序等),但它可能与 StackOverflow 无关。

于 2011-07-06T21:59:09.957 回答