Android is developed privately by Google and uses a Linux kernel version 2.6 or 3.x. It uses the Dalvik virtual machine and is built using C/C++ for lower level code and Java for applications. While based on Linux, Android has its own customizations to the kernel to suit mobile devices and lacks full support for Linux libraries and applications. Google has faced challenges integrating its code changes back into the main Linux kernel due to differences in priorities and processes between Google and Linux developers.