Using Android Components and Resources
Android has built-in components for handling app features. Each component has an entry point, such as an activity or fragment, and a way for the system or user to start it. The system activates these components through asynchronous messages called intents. Your app also has resources that let the system gracefully optimize your UI for different device configurations. For example, you can store alternative UI strings in resource directories named with a language qualifier (such as res/values-fr/), which is applied to the string values when Android delivers them to the device.
Developers can use a variety of devices to develop apps, including consumer devices and dedicated development phones. Some developers choose to use custom firmware packages such as CyanogenMod or OMFGB.