I'm developing an Android app as a side project and today I learned about adb forward
and adb reverse
. Basically, they allow you to forward or reverse traffic to specific ports between an Android device and your development machine.
Let's say I need my app to fetch something from http://localhost:3000/some-data
. When the app is running on the phone localhost
refers to the phone itself, and my server is running in my dev machine. So, if I do this:
adb reverse tcp:3000 tcp:3000
Now when the app tries to access localhost:3000
it will actually reach out to my dev machine's 3000
port. Very useful if you're developing the app's backend as well (as I am).
Similarly, if I wanted to access a server inside the phone from my dev machine, I could run:
adb forward tcp:5000 tcp:5000
And now if I run curl http://localhost:5000
in my dev machine it will hit the server running on the phone. Pretty neat!