Hey guys/gals, I have had a revelation and/or breakthrough this afternoon. First the two cases...
1. Last night, for kicks, I used Navigation to "guide" me home from work (like 6 miles) and of course the Navigation app kept hanging at "searching for GPS." But then, A tweet notification came through and right afterwards the GPS locked on and I didn't think too much of it.
2. This evening I had GPS Status open when I was just starting to drive home and I had some notifications in the pane, and because I didn't want to read them right then (driving) I just pulled the pane down and hit "clear." Before this GPS Status was showing only 2 satellites after about 30 seconds or so, after I hit clear and swiped the pane back up, there were 10 satellites visible and locked on to 8 over a span of literally a second.
So my bright idea (and it might not be novel, and if not please point me to where else this might be being investigated) is that perhaps these issues with GPS lock (NOT the accuracy or holding lock issues, although potentially it could play into the holding locks issue) is related to processor load when the app that needs it starts. Notification pulling/pushing seems to be hanging the GPS process by probably bumping it out due to lower priority. It seems that the GPS chip is designed to rely on the main CPU for processing the data and running the algorithm as per Broadcom's statement
here, and if there is sufficient load on the processor, it sounds like it might be getting pushed aside as higher priority items claim the resources, working only after the resources get freed up (i.e. the notifications come in and are displayed). Also, this might explain the hit-or-miss nature of the GPS locks, as some phones will have different processing loads than others, and when the phone is new there are less applications downloaded (to run in the background) and so faster locks that degrade over time.
If this is the case, Samsung needs to assign the GPS process a higher priority and perhaps change the RFS filesystem for faster handling/logging of processes...
I am not saying this is the total issue, but I really think this is a significant chunk of it.
Now if I could just reason out the fluctuating accuracy and locks during changes in velocity (speed and direction)...