Battery effects of web apps?

2019-01-25 22:19发布

问题:

I am learning about mobile web apps, and they look interesting. Among other things, I am wondering whether there is a significant difference in battery consumption between the native apps and web apps? (Phonegap, intel xdk, etc)?

回答1:

There can be a significant difference due to use of transceivers (i.e. the receiver and transmitter on your phone/tablet). On any mobile device, whether notebook, tablet or phone, the processor and peripherals drop into power conserving sleep states. Processor sleep states are called C-states. Peripheral sleep states are called D-states. Thus the greater battery life when your phone is idle. The longer the period of idle, whether processor or peripheral, the better the battery life.

What does this mean for web apps versus native apps? Native apps will use more of the processor but less of expensive peripherals (read that as transceiver include GPS). Both the processor and transceiver are power hogs. So here's the bottom line:

  • If your web app does a lot of cloud access, it's going to pull down the battery. This is why using the GPS to give you turn by turn instructions kills your battery life (and makes your phone a little heater).
  • If your native app never goes to sleep or gets any rest (e.g. it does polling instead of using interrupts, or if the interrupt period is too small), you'll pull down your battery.

So the ideal app balances native and web computation to

  • minimize processor usage (more specifically, maximizes periods where the processor is idle)
  • minimize peripheral usage (read that as minimize the number of web accesses)

As you can see, these goals are a little contradictory. From a designer perspective, you want to move as much computation onto the cloud while keeping data as local as possible.