i have added a feature in my app that uses the proximity and accelerometer sensors (the second is to detect shakes). This is implemented in an always running service (if the user selects it of course). But I fear for the battery usage that my ap will have. I have NOT used any wake locks but i still get readings even when screen is off as i can see in my logs. The question is: what of the following is true?
- The two mentioned sensors are activated anyway by android system
the whole time (in which case me collecting the readings as well
does not affect battery life…i guess).
- Android system turns these sensors off most of the time (in which
case me keeping them always on through my service affects battery
If (2) is true: Is it possible to implement my own sleep cycle for the sensors or will the whole toggle process make things worse?
Amount of power taken by sensor varies from sensor to sensor, and device to device.
On average, your most power hungry sensors are the GPS, accelerometer and gyroscope. Leaving them On all the time will reduce the battery faster.So you should pause the sensor when the device is where-ever not necessary.
After that, the light sensor and compass are much less battery intensive, but if you use them for long enough even they’ll affect battery life.
besides this you can test your app for sometime how much it takes, or you can use getPower () to return the power in mA used by this sensor while in use.
There is no exact method for this actually.If your app have to use the sensor then use it when its needed.
u can reduce the power consumption by reading the sensor’s value at some competitively larger time like 50ms,
i.e. any android cell read the data at 5ms or 10ms depend on brand of cell phone and we can manually reduce that time to 50ms to 70ms.
it would increase the battery life and won’t affect on process as well.