Android (sistem operasi)
Pengembangan > Kernel Linux

Hingga November 2013, Android menggunakan kernel yang berbasis kernel Linux versi 3.x (versi 2.6 pada Android 4.0 Ice Cream Sandwich dan pendahulunya). Peranti tengah, perpustakaan perangkat lunak, dan API ditulis dalam C, dan perangkat lunak aplikasi berjalan pada kerangka kerja aplikasi, termasuk perpustakan kompatibel-Java yang berbasis Apache Harmony. Android menggunakan mesin virtual Dalvik dengan kompilasi tepat waktu untuk menjalankan 'dex-code' Dalvik (Dalvik Executable), biasanya diterjemahkan dari bytecode Java.
Arsitektur kernel Linux pada Android telah diubah oleh Google, berbeda dengan siklus pengembangan kernel Linux biasa. Secara standar, Android tidak memiliki X Window System asli ataupun dukungan set lengkap dari perpustakaan GNU standar. Oleh sebab itu, sulit untuk memporting perpustakaan atau aplikasi Linux pada Android. Dukungan untuk aplikasi simpel C dan SDL bisa dilakukan dengan cara menginjeksi shim Java dan menggunakan JNI, misalnya pada port Jagged Alliance 2 untuk Android.
Salah satu fitur yang coba disumbangkan oleh Google untuk kernel Linux adalah fitur manajemen daya yang disebut "wakelocks", tetapi fitur ini ditolak oleh pengembang kernel utama karena mereka merasa bahwa Google tidak menunjukkan niatnya untuk mengembangkan kodenya sendiri. Pada bulan April 2010, Google mengumumkan bahwa mereka akan menyewa dua karyawan untuk mengembangkan komunitas kernel Linux. Namun, Greg Kroah-Hartman, pengelola kernel Linux versi stabil, menyatakan pada bulan Desember 2010; ia khawatir bahwa Google tak lagi berusaha untuk mengubah kode utama Linux. Beberapa pengembang Android di Google mengisyaratkan bahwa "tim Android sudah mulai jenuh dengan proses ini", karena mereka hanyalah tim kecil dan dipaksa untuk melakukan pekerjaan yang mendesak demi keberlangsungan Android.
Pada Agustus 2011, Linus Torvalds menyatakan: "akhirnya Android dan Linux akan kembali pada kernel umum, tetapi mungkin untuk empat atau lima tahun kedepan". Pada Desember 2011, Greg Kroah-Hartman mengumumkan dimulainya Android Mainlining Project, yang bertujuan untuk mengembalikan beberapa pemacu, patch, dan fitur Android pada kernel Linux, yang dimulai dengan Linux 3.3. Setelah upaya sebelumnya gagal, Linux akhirnya menyertakan fitur wakelocks dan autosleep pada kernel 3.5. Antarmukanya masih sama, tetapi implementasi Linux yang baru memiliki dua mode suspend (penangguhan) berbeda: penangguhan ke penyimpanan (penangguhan tradisional yang digunakan oleh Android), dan penangguhan ke cakram (hibernasi, serupa dengan fitur yang ada pada desktop). Penyertaan fitur baru ini akan rampung pada Kernel 3.8, Google telah membuka repositori kode publik yang berisi karya eksperimental mereka untuk mendesain ulang Android dengan Kernel 3.8.
Memori kilat (flash storage) pada perangkat Android dibagi menjadi beberapa partisi, misalnya "/system" untuk sistem operasi, dan "/data" untuk pemasangan aplikasi dan data pengguna. Berbeda dengan distribusi desktop Linux, pemilik perangkat Android tidak diberikan akses root pada sistem operasi, dan partisi sensitif seperti /system bersifat hanya-baca. Namun, akses root dapat diperoleh dengan cara memanfaatkan kelemahan keamanan pada Android, cara ini sering digunakan oleh komunitas sumber terbuka untuk meningkatkan kinerja perangkat mereka, tetapi bisa juga dimanfaatkan oleh pihak yang tidak bertanggungjawab untuk menyebarkan virus dan perangkat perusak.
Terkait dengan masalah apakah Android bisa digolongkan ke dalam distribusi Linux masih diperdebatkan secara luas. Linux Foundation dan Chris DiBona, kepala sumber terbuka Google, mendukung hal ini. Sedangkan yang lainnya, seperti teknisi Google Patrick Brady, menentangnya, ia beralasan bahwa Android kurang mendukung sebagian besar perkakas GNU, termasuk glibc.