This is a fairly open-ended question, but let me take a picture to describe how I see that interactions between / between applications work best.
One of the key aspects of messaging in Android is the concept of restricting all application components. Since all applications run in a separate process, and one “application” can consist of several applications (responsible for providing different types of activities or services), messaging methods are based on the idea of marshaling messages across process boundaries.
Intents
Your preferred messaging method, always try to use intent when possible. This is the most "native" way to send messages in Android.
Benefits
Intents , . , .
/ Intents, , .
Intents , extras . Intent, .
, , .
Application ( Singleton), , , , .
.
, IPC AIDL
. AIDL - , , , , , .
, . , .
, , AIDL, Android, / , .
AIDL IPC - , , , .
. , , IPC, , - , , Intents.
, , , , - . , - , . , , IPC.