I found some ways to simulate network delay on the Android Emulator, however, I'd like to do it on an Android application where the application is running on an actual phone. Is there a way to do this? I think I can execute shell commmands through the application but I am not sure if there is -netspeed there. I'd guess I'd like to emulate GSM, EDGE, etc.
The only plausible way I can think of would be setting up a local proxy on your computer and routing all phone traffic through that - while using a network emulation tool such as http://jagt.github.io/clumsy/index.html (for Windows)... But in all honesty, it really isn't worth it. Emulators should be enough for emulating bad performance.