Coroutines are alike threads: they set sequence of commands' execution with its own stack and variables. The main difference is that coroutines can delay its execution to wait for result of another coroutine.
What does it mean for Android developer? As any syntactic sugar - more readable code.