Android is an open source software platform that includes an operating system, middleware and key applications. It is based on Linux and developed by Google. Developers write managed code using Java-like language and Google libraries. The architecture includes application, framework, and Android runtime layers. Key framework components include activity manager, resource manager and location manager. Developing Android apps requires knowledge of Java, XML, Android SDK and Eclipse IDE. Important tools include aapt, adb and dx. Application fundamentals include activities, services, broadcast receivers, content providers and intents. Activities present a visual UI, services run in the background, and broadcast receivers receive system broadcasts. The activity lifecycle includes active, paused and stopped states.