From Android Wiki
Intents are the standard high-level IPC mechanism in Android. You can use them internally to communicate between different activities in the same application; you also use them to communicate between applications. They are used to launch activities by using one of the startActivity calls, and are also the mechanism to start services and send broadcasts.
You can target an intent at a specific fully-qualified activity/service/receiver class name, or you can leave it to the system to choose an appropriate receiver based on the declared intent-filters among installed packages.
The list of installed applications in the launcher is not a simple listing of installed packages; instead, it is a list of all declared activities in package manifests that include intent-filters indicating that they will accept an intent with action “android.intent.action.MAIN” in the category “android.intent.category.LAUNCHER”.
Intents are also used to create shortcuts.
OpenIntents is an attempt to encourage some interoperability of intents between different Android apps.