So, the big idea at this point is to carefully describe the entire pinger workflow. I imagine it's not that complex, but I do not know how it works, so this is a very important step for figuring out what existing android code/libraries can be used to accelerate (and stabilize) the port process. It will also act as an informal behavior-driven-development definition of the pinger client application. If further development occurs on the existing app code-base (i.e. not the android version) then the workflow definition should be updated too, in order to guide the parallel development across the two platforms.
It could be as simple as this (which I'm totally making up, of course, cause I don't know how pinger currently works)
1. Initialize pinger app
2. Check for cached list of ping targets
2a. If empty, send GET https request to https://something.pinger.com/ips.csv
2b. Include client ID in http header
2c. Include access token in http header
2d. Receive CSV list of IPs
3. Iterate through fresh list of IPs.
3a. Send ping
3b. Cache latency [however it's done]
Etc etc