Open ReyhanJB opened 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.
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, ...
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.
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.
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.