Require apps to have specifications
In the Android world, even having documentation is un-trendy. But if a person is going to use an app, they need to be able to read a statement of what the app will and won't do. And then the community has to audit the app against that statement so that apps that violate their specs can be shunned.
As an example, there are apps in the openstreetmap world that allow you to change the master OSM database, and given the nature of the apps, this more or less publishes where you are that minute. It's entirely reasonable for someone to decide to do that, and also to decide not to do that. I make this kind of edit sometimes, and not at other times, depending on the sensitivity of disclosing that information. I don't consider these apps to be tracking, because they are doing what they say they do and being clear with me.
I did come across an app, apparently no longer in f-droid, whose main purpose was to add addresses to OSM. While sort of documented, it had the absolutely dreadful behavior of observing gps/wifi/cell and sending those to one of the open-data rf emitter mapping projects. It did this whenever it was running, with no on/off, and no real notice. I think the notion was that the author thought that anyone out mapping addresses for OSM would also want to upload wifi locations, but it's a huge and incorrect leap to think people are ok with this while traveling to and from where they are doing addresses. So that app I would definitely tag with a "reports your location to third parties without notice or consent" anti-feature.
I would not object to e.g. StreetComplete on this basis; it can be told to scan for quests only when asked, and only answered quests will be uploaded. It's pretty easy to use it in such a way that location is not sent when it shouldn't be (except perhaps about map fetches, see #8).