openbmap / radiocells-scanner-android

WLAN and cell tower scanner for Radiocells.org
https://www.radiocells.org
Other
55 stars 26 forks source link

Excessive use of battery #177

Open ReyhanJB opened 7 years ago

ReyhanJB commented 7 years ago

Running this app drained the battery of my device in few hours. The main reason is that it keeps scanning for cellular network, wifi hotspots, and location updates continuously in the background. Although it is kind of what the app is supposed to do, but there are several optimization to help the battery consumption of the app.

First, similar for what you did for scanning on low battery, the user should be able to decided if she wants the app runs in the background or not to collect data. For example, attached shows a scenario that the app runs only 3 minutes in foreground, but keeps GPS active for 44 minutes by running in background.

screenshot_20170106-160521

Second, as suggested in #124 and #57, different providers can be used based on user's desire and the battery level of the device. For example, if the phone is connected to a charger (the user drives the car while phone is charging on car dock) or it's charging level is above 80%, the app can use GPS location provider. If the battery level is below 20%, it can use passive providers. In other cases it can use network location provider.

Hope these suggestions help improving the power consumption of the app.

gdt commented 7 years ago

Unfortunately what this app is trying to do really is battery intensive. However I agree that there is a lot of room for improvement, both in reduced power use while functioning and stopping battery use when there isn't spare.

However, using network providers doesn't really work, because the point is to record signal strengths at reasonably precise locations.

Probably we should have tickets with specific suggested improvements, and then close this as dup.

ReyhanJB commented 7 years ago

I agree. It's kinda the nature of the app that is energy-greedy. But I think it should be decided by the user to trade the battery for accuracy, or kinda make the app smart to decide itself based on the battery status, charging type, state of the user, ...

gdt commented 7 years ago

I agree about user tradeoffs, but not about accuracy. This program makes measurements to upload, and uploading data based on network location violates the basic point of the database. So I think this should be limited to whether to scan/record or not.