you're thinking correctly. Imagine all locations (waypoints and track points) has pre-computed coordinates, and once per second, when new GPS location arrive, I just move these locations to new place by simple +X px, +Y px. That's all I do. No maps are rendered, no images are drawn ...
steps are
- 1. new GPS location
- 2. move all map items
- 3. call refresh on map
- 4. draw map tiles
- 5. draw map items
and only 1. and 2. points are done when you have screen off. You may test it on your own. Do you know trick with nmea files placed into Locus/cache/nmea directory? You may use them for GPS simulation. Then you may at home, simulate track record. Start record, turn off screen and when you turn it on, you'll see firstly your old location before you turned screen off, then big jump on current location and then finally start Locus draw a map ...
Anyway there exists some special methods for measuring which function too most CPU, so in spare time, I can check it ...
EDIT:
I've just checked it and
50% of power took simulator that read and parse NMEA data from SD card
15% took Altitude manager to compute Geoid height and optimize measured altitude
13% for my big suprise took track record widget even if screen was off and widget is on not-visible page of homescreen. Good to know and good place to optimize
5% took formatting texts for some text fields in top bar etc ...
and rest took handling of location by track record service and some more stuff around
so these 50% (by simulator) really do just from time to time, read a line from text file and parse it. Not much work and it's 50% of CPU that Locus consumed. So this mean that locus consume really really small CPU for this task.
Anyway you bring me to new task on tomorrow ... check widget
