His useful comment for the tl:dl generation is that the DHCP stage is actually one of the most tedious bits.
The implications are that maybe you can do 'real' DHCP once, never issue a DHCP release, and then after that use static with the remembered details you can save a lot of time and therefore battery life. Or even do a bit of guesswork and pick an address off the dhcp range but still within local network subnet so you never have to worry about getting conflicts etc.
Most routers I've encountered seem to have a fairly predictable set of, say, 100 addresses within the 192.168.1.x subnet for example, like 192.168.1.100-192.168.1.199. If I saw a DHCP offer like 192.168.1.104 - I would try getting that address then pinging 192.168.1.221 - if it doesn't respond then jump to that IP as a static config.
HTH
G