2015-02-24 27 views
3

我想知道是否有一些规则或提示如何在编码时直接防止电池消耗。我知道可能有一些编码方式可以最大限度地减少处理器的工作量或防止泄漏。然而,除了像位置服务和互联网连接这样的常见嫌疑犯之外,是否有人有像导游或类似“清单”的东西?电池安全编码

+0

我写了一些东西。我会把它挖出来并发布。 – 2015-02-24 18:34:42

+1

请澄清你想要的。你说,“编码时直接防止电池消耗”,似乎表示你想在编译或调试设备上的代码时尽量减少漏电。“编码方式”意味着你想知道如何最小化你编码/创建的应用程序的电量消耗。你问哪个? – 2015-02-24 18:44:24

+0

似乎很清楚,OP意味着后者。 – 2015-02-24 20:26:24

回答

4

我假设你是指你的应用程序。根据我的经验,能源的主要消费者,其中#1是最重要的:

  1. CPU使用率
  2. 4G
  3. 无线
  4. 蓝牙
  5. 内存

无论4G或WiFi更糟糕取决于您的使用情况,例如无论您是通过蜂窝网络与恶劣的信号通话还是通过WiFi传输视频。 GPS取决于您是否使用它。如果您正在逐个转向,它会将您的手机变成一个小型加热器,并很快耗尽您的电池。

最小化4G,WiFi和蓝牙的使用非常简单。我不确定有可能以任何实际的方式减少内存使用的能量。

CPU使用率是最大的潜在能源猪,因为它可以持续吸收电子。值得庆幸的是,现代处理器在无所事事时即关闭,即空转。这称为放入空闲/ C状态。你可以猜到,手机在大部分时间里都没有做任何事情。

有几种方法可以编写程序以最大限度地减少CPU能耗。实际上,更好的说法是,您可以通过编写错误的程序来挫败这些节能功能。如果CPU进入休眠状态以降低功耗,那么唤醒CPU会增加能耗。另一个要考虑的因素是CPU睡了多久。处理器闲置的时间越长,它可以进入的睡眠状态越深,睡眠状态越深,功耗越低。

那么你需要做什么来最大限度地减少CPU使用率?你想少用CPU,或者换一种说法,让你的程序完成任何更快的操作。此外,增加程序闲置的时间长度。

现在让我们来看看一些具体的事情可以做:

  1. 让你的程序做任何它做尽可能快。通过找到最快的算法并以最有效的方式实现它。换句话说,就是优化。

  2. 最小化检查事件。您检查事件是否发生的次数越多,唤醒处理器的次数就越多,可以进入深度睡眠状态的可能性就越小。通过确定在保持性能的同时必须检查某个事件的最大时间间隔来做到这一点。

+0

谢谢你有这个时间。其实我已经知道4G/WiFi或循环。而CPU使用率正是我在“编码”时的意思。在使用循环或开关/案例(例如)的决定中,我还想考虑我的决定的能耗。此外,在改善内存使用情况下“代码重新设计”的情况下,我也想关心电池。但你的提示是一个很好的开始。非常感谢 :) – Corona 2015-02-27 11:20:30