5

I'm creating an Android Wear app that tries to detect some of the hand movements, to do it, I need to continuously monitor the accelerometer output. I'm wondering how it will affect the battery life.

For phones, I know that there are methods like "disable accelerometer while screen is turned off" to save battery, but what's the battery cost in case of watches? Since Android watch can count your steps and it turns on the screen when you face it towards your face, I believe the accelerometer is turned-on all the time anyway.

in this case, will my app drain the battery?

(Calculations after receiving the accelerometer values will be pretty simple.)

Peter O.
  • 32,158
  • 14
  • 82
  • 96
Umair
  • 1,206
  • 1
  • 13
  • 28
  • I don't think it would drain that much power, accelerometer would use approx 0.5 mA which is fine if you use it for an hour or two BUT be careful about GPS as it's power consumption would be near 60 mA or even more. See and find yourself - https://software.intel.com/en-us/android/articles/android-power-measurement-techniques – pxm Sep 02 '14 at 06:47
  • Thanks, its good information indeed... in my case, i need to monitor accelerometer 24 x 7. Thats why i m concerned about the impact. – Umair Sep 02 '14 at 07:04

1 Answers1

4

I think most android wear devices keeps the accelerometer on all the time to monitor steps, tilt-to-wake etc. However, I think most or all of this devices handles this in a low powered CPU (Sensor hub) to allow the main CPU to sleep most of the time when the screen isn't on.

If you want to monitor the accelerometer from an app, it would require the main CPU to be up and running at all times and cause a huge battery drain (20-40 mAh). I've tried this in an attempt to create a sleep tracker and drained about 70% battery over night.

You could consider batching which allows you to continuously monitor the accelerometer while allowing the main CPU to sleep most of the time. Basically you tell the sensor subsystem to gather data while the rest of the system sleeps and you just set an alarm to wakeup at a fixed interval (around 10 s for most android wear devices) to gather the latest batch of data.

  • Beautiful answer! I was having the same problem. Mind if I ask for some sample code on your sleep tracker? I'm trying to create something similar, and some heads up will be good :) – Mauker Mar 10 '16 at 14:05