A low power circuit to measure large resistances
The constant-current approach for measuring that high resistances may not be a good idea. Because the reference current should be extremely low (i.e. in uA range). For example, 2uA current leads to a voltage drop of 2V across a 1M resistor. A voltage level of 2V is a nice value for measuring via ADC. But unfortunately, it's quite hard to make a precisely adjusted 2uA current source (If there's an easy way to make one then I'll be happy to know). If you increase the reference current to 50uA which is relatively easier to regulate then the voltage drop will be 50V! Please don't say "I can use voltage divider" because the divider resistors should be quite low since they shouldn't load the resistor-to-be-measured. And also using that low resistors will lead to a relatively higher dissipation.

You can use a voltage divider with precisely adjusted resistor. This can be an easy way to measure a resistor.

I would measure that high resistances with an oscillator. From T=RC, if an oscillator outputs a signal with a pulse-width of 2ms with a 20k resistor then the same oscillator's output pulse-width will be 100ms with a 1M resistor. Please note that these periods can be easily measured with a MCU. And also the oscillator will not draw too much current.