Android is an open source software stack for mobile devices that includes an operating system, middleware, and key applications. It allows developers to write managed code in Java for a software stack based on the Linux kernel. The Android platform includes an integrated browser, SQLite for storage, media support for common formats, and a Dalvik virtual machine. Hardware features like cellular connectivity, Bluetooth, WiFi, cameras and sensors vary by device but the software is designed to work across different hardware configurations. Developers can access the Android SDK and tools to design, debug and test applications on an emulator or actual devices running Android.