Boa maneira de obter a localização do usuário no Android

O problema: Obter a localização atual do usuário dentro de um limite o mais rápido possível e, ao mesmo tempo, economizar bateria. Por que o problema é um problema: Primeiro, o Android tem dois provedores; rede e GPS. Às vezes a rede é melhor e às vezes o GPS é melhor. Por "melhor", quero dizer...