Android is a software stack that includes an operating system, middleware and applications for mobile devices. It uses the Java programming language and allows developers to create applications that have access to device hardware and software features like location services, background processes, notifications and more. The Android architecture includes core applications, an application framework, libraries, the Dalvik virtual machine, and the Linux kernel.