All of Above is correct. Android is a complete software stack comprising: an operating system (Linux kernel-based), key applications (browser, contacts, etc.), middleware (libraries and runtime), and a rich set of APIs for developers. The architecture is layered with all these components working together.